编写指标公式技巧 复制内容到剪贴板 代码: 0001--主图显示代码及板块 一、显示板块 例一: DRAWTEXT(BARPOS=SYSPARAM(2),H,'\N所属板块:'+BLKNAME),ALIGN4,COLORYELLOW; 例二: DRAWTEXT(SYSPARAM(2)=BARPOS,C,'所属板块:'+BLKNAME),ALIGN4,COLORYELLOW; 例三: DRAWTEXT(SYSPARAM(2)=BARSCOUNT(C),H,'[所属版块]:'+BLKNAME),ALIGN4,COLORYELLOW; 二、显示代码及板块 S:=STKLABEL; DRAWTEXT(SYSPARAM(2)=BARPOS,C,S),ALIGN4,COLORYELLOW; DRAWTEXT(BARPOS=SYSPARAM(2),H,'\N 所属板块:'+BLKNAME),ALIGN4,COLORYELLOW;{N与所属板块之间空六格,以显示代码} 0031--均线多头排列 A1:=MA(C,N1); A2:=MA(C,N2); facilities A3:=MA(C,N3); A4:=MA(C,N4); COUNT(A1>A2 AND A2>A3 AND A3>A4,3); 0032--均线空头排列 A1:=MA(C,N1); A2:=MA(C,N2); A3:=MA(C,N3); A4:=MA(C,N4); COUNT(A1< A2 AND A2< A3 AND A3< A4,3); 0033--N日均线向下 AA:=MA(C,N); BB:=REF(AA,1); AA< BB 0034--N日均线向上 AA:=MA(C,N); BB:=REF(AA,1); AA>BB 0035--N日均线走平 AA:=MA(C,N); BB:=REF(AA,1); AA=BB 0036--向前N日至M日出现过均线死叉(P1< P2) AA:=MA(C,P1); BB:=MA(C,P2); CC:=REF(CROSS(BB,AA),N); COUNT(CC,M); 0037--今日成交量大于N日以来的均量 VOL>MA(VOL,N); 0038--低位密集 A1:=COST(85); A2:=COST(15); A3:=A1-A2; A4:=(A1+A2)/2; A5:=A3/A4*100<10; B1:=HHV(H,120); B2:=LLV(L,120); B3:=B1-B2; B4:=(A4-B2)< B3/2; A5 AND B4; 0039--换手率 VOL/CAPITAL*100; 0040--N日盈亏 V1:=VOL/SUM(VOL,N); V2:=DMA(CLOSE,V1); V3:(CLOSE-V2)/V2*100; 0041--曲线叠加 指标线的叠加,是为了方便观看和比较,没什么其他的意义。 一、对指标曲线的变化幅度放大 此法,一线变形,另一线不变,但变形线的走势与原线完全相似。 举例:C叠加V BC:=HHV(C,N)-LLV(C,N);.......; {.........为X曲线定义} XH:=HHV(X,N); XL:=LLV(X,N); XDH:=XH[SYSPARAM(3)]; XDL:=XL[SYSPARAM(3)]; BX:=100/(XDH-XDL); 曲线X:(X-XDL)*BX; Y:=.........;{.........为Y曲线定义} YH:=HHV(Y,N); YL:=LLV(Y,N); YDH:=YH[SYSPARAM(3)]; YDL:=YL[SYSPARAM(3)]; BY:=100/(YDH-YDL); 曲线Y:(Y-YDL)*BY; 三、固定位置叠加 此法应用不多,仅举例。 例一: 主图成交量(V叠加C) {M:960,1,2000} R0:=M/1000;R:=(L-R0*SYSPARAM(5))/V; R1:=LLV(R,SYSPARAM(3)-SYSPARAM(2));R2:=R1[SYSPARAM(3)]; R3:=LLV(L-R2*V,SYSPARAM(3)-SYSPARAM(2)); R4:=R3[SYSPARAM(3)];R5:=(R2*V+R4)*; STICKLINE(C>=REF(C,1),R5,R0*SYSPARAM(5),6,1)COLORRED; STICKLINE(C< REF(C,1),R5,R0*SYSPARAM(5),6,0)COLORCYAN; PARTLINE(V>=0,R0*SYSPARAM(5)) COLORWHITE; PARTLINE(R5>0,MA(R5,5)); PARTLINE(R5>0,MA(R5,10)); PARTLINE(R5>0,MA(R5,20)); 例二: INPUT:N(10,2,999); M:=SYSPARAM(3)-SYSPARAM(2); X:=C; Y:=SUM(IF(CLOSE>REF(CLOSE,1),VOL/CAPITAL,IF(CLOSE< REF(CLOSE,1),-VOL/CAPITAL,0)),0); XH:=HHV(X,M); XL:=LLV(X,M); XDH:=XH[SYSPARAM(3)]; XDL:=XL[SYSPARAM(3)]; BX:=100/(XDH-XDL); 收盘:C,LINETHICK0,; 收盘↑:PARTLINE(X>REF(X,1),(X-XDL)*BX),COLORRED; 收盘↓:PARTLINE(X< REF(X,1),(X-XDL)*BX),COLORCYAN; YH:=HHV(Y,M); YL:=LLV(Y,M); YDH:=YH[SYSPARAM(3)]; YDL:=YL[SYSPARAM(3)]; BY:=100/(YDH-YDL); TY:=(Y-YDL)*BY; OBV值:Y*1000,LINETHICK0,COLOR007BFF; OBV线↑:PARTLINE(Y>REF(Y,1),(Y-YDL)*BY),COLORYELLOW; OBV线↓:PARTLINE(Y< REF(Y,1),(Y-YDL)*BY),COLOR009F00; A1:=REF(TY,N)=HHV(TY,2*N+1); B1:=FILTER(A1,N); C1:=BACKSET(B1,N+1); HD:=FILTER(C1,N); A2:=REF(TY,N)=LLV(TY,2*N+1); B2:=FILTER(A2,N); C2:=BACKSET(B2,N+1); LD:=FILTER(C2,N); AA:=REF(TY,BARSLAST(HD)); BB:=REF(TY,BARSLAST(LD));A1:=REF(Y,BARSLAST(HD))*1000; B1:=REF(Y,BARSLAST(LD))*1000; T1:=BARSLAST(HD)< BARSLAST(LD) AND NOT(HD) ; T2:=BARSLAST(HD)>BARSLAST(LD) AND NOT(LD); PARTLINE(T1,AA),COLORMAGENTA,LINETHICK2; PARTLINE(T2,BB),COLORGREEN,LINETHICK2; DRAWNUMBER(T1=0 AND REF(T1,1)>0,REF(AA,1)+,A1,2); DRAWNUMBER(T2=0 AND REF(T2,1)>0,REF(BB,1)+,B1,2); DRAWNUMBER(ISLASTBAR AND T1>0,REF(AA,1)+,A1,2),COLORYELLOW; DRAWNUMBER(ISLASTBAR AND T2>0,REF(BB,1)+,B1,2),COLORMAGENTA; 0042--均线变色 MA05:MA(CLOSE,5); MA30:MA(CLOSE,30); IF(MA05< MA30,MA05,MA30),COLORGREEN; IF(MA05< MA30,MA30,MA05),COLORRED; IF(MA05>MA30,MA30,MA30),COLORBLUE; DRAWICON(CROSS(MA05,MA30),L*,4); DRAWICON(CROSS(MA30,MA05),H*,5); | |||
TOP | |||
大户室 贡献 1 ? 红币 356 ? 当前离线 | 2# 大 中 小 发表于 2007-3-3 16:58? 复制内容到剪贴板 代码: 0055--底背离 LLV(L,60)=L) AND NOT(LLV(DEA,60)=DEA); 0056--顶背离 HHV(H,60)=H) AND NOT(HHV(DEA,60)=DEA); 0057--N次金叉、死叉 0轴上二次金叉 COUNT(CROSS(DIF,DEA) AND DEA>0,20)=2 AND CROSS(DIF,DEA) AND DEA>0; 0轴上三次金叉 COUNT(CROSS(DIF,DEA) AND DEA>0,20)=3 AND CROSS(DIF,DEA) AND DEA>0; 0轴上四次金叉 COUNT(CROSS(DIF,DEA) AND DEA>0,20)=4 AND CROSS(DIF,DEA) AND DEA>0; 二次金叉 EXPLAIN(COUNT(CROSS(DIF,DEA),20)=2 AND CROSS(DIF,DEA); 二次死叉 COUNT(CROSS(DEA,DIF),20)=2 AND CROSS(DEA,DIF); 0058--5分钟副图显示15分钟K线 建公式:0015 C15:CLOSE; O15:OPEN; H15:HIGH; L15:LOW; 建公式:十五K线 C15:="#MIN15"; O15:="#MIN15"; H15:="#MIN15"; L15:="#MIN15"; TI:=OPENMINUTES(TIME)=10 OR OPENMINUTES(TIME)=25 OR OPENMINUTES(TIME)=40 OR OPENMINUTES(TIME)=55 OR OPENMINUTES(TIME)=70 OR OPENMINUTES(TIME)=85 OR OPENMINUTES(TIME)=100 OR OPENMINUTES(TIME)=115 OR OPENMINUTES(TIME)=130 OR OPENMINUTES(TIME)=145 OR OPENMINUTES(TIME)=160 OR OPENMINUTES(TIME)=175 OR OPENMINUTES(TIME)=190 OR OPENMINUTES(TIME)=205 OR OPENMINUTES(TIME)=220 OR OPENMINUTES(TIME)=235; HH15:=IF(TI,H15,C15); LL15:=IF(TI,L15,C15); STICKLINE(C15>O15,C15,O15,10,0),COLORRED; STICKLINE(C15>O15 AND H15>C15,HH15,C15,,0),COLORRED; STICKLINE(C15>O15 AND O15>L15,O15,LL15,,0),COLORRED; STICKLINE(C15<=O15,C15,O15,10,0),COLORGREEN; STICKLINE(C15<=O15 AND C15>L15,C15,LL15,,0),COLORGREEN; STICKLINE(C15<=O15 AND H15>O15,HH15,O15,,0),COLORGREEN; 注:以大陆股市为例,四小时,其他市场如超过四小时,可在中间语句“TI:=”中以15为系数顺序加足,如:OR 250 OR 265……等等。 0059--移动成本 不知道函数算法,计算误差在所难免。调整参数“%”可看到不同的移动成本。 | ||
立一个专门被用来引用(QUOTE)的公式区。 公式名称:QU A1:(OPEN+HIGH+LOW+CLOSE)/4; 说明:上面公式的运算,是代入开、高、低、收(当前周期K线数据)运算的。 公式B. 公式名称:AA AA:"#WEEK"; 说明:将下面公式的运算,代入开、高、低、收(周K线数据)运算。 (OPEN+HIGH+LOW+CLOSE) / 4 a fire hydrant 公式C. 公式名称:BB ep BB:"#MONTH"; 说明:将下面公式的运算,代入开、高、低、收(月K线数据)运算。 (OPEN+HIGH+LOW+CLOSE)/4 附注: 可供引用的周期类型有: MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH 分别表示将1,5,15,30,60分钟K线数据,以及日,周,月K线数据,代入被引用的公式,进行运算。 意义: 可将大周期内跑的数据,引用到小周期内来跑。将小周期内跑的数据,引用到大周期内来跑,就会有问题,因为时间横坐标不一样了。 公式(1):先建立即将被引用的表达式 将公式建立在:技术指针 ( ●主图叠加 ○主图 ) 公式名称:NH AA:=HIGH< REF(HIGH,1);{不输出的表达式,如果被引用还是会变成不输出的表达式} BB:=BARSLAST(AA=1); CC:REF(HIGH,BB); {输出的表达式,如果被引用还是会变成输出的表达式} 说明: 上面公式的运算,是以当周期时间数列数据运算的。 公式(2): 将公式建立在:技术指针 ( ●主图叠加 ○主图 ) 公式名称:NHH AA:"#WEEK";{不输出的表达式} BB:"#WEEK"; CC:"#WEEK";{输出的表达式} DRAWNUMBER(ISLASTBAR,CC,CC,2); 说明:上面公式的运算,是以周周期时间数列数据运算的。 | |||
TOP | |||
大户室 贡献 1 ? 红币 356 ? 当前离线 | 4# 大 中 小 发表于 2007-3-3 16:59? 复制内容到剪贴板 代码: 0064--未来数据、未知数据 写公式,首先要对已知数据(过去式)、未知数据(未完成式、现在进行式)有通盘的认知。 可将"未来"分为两种情况: 1、实时行情中:在一根K线。 以实时行情中的当前日K线为例。除了O之外,其它H、L、C全有未来之嫌。因为在收盘之前,拉高、打压是司空见惯的事,谁也不能保证H、L不会创出当天的新高和新低,更不用说C了。又如日线周期公式"C>REF(C,1);",前一分钟信号成立,后一分钟可能信号就不成立了。另外,如引用了周K 和月K数据,因为当前周K和月K还在变动之中,所以也是未来资料。 2、盘后中:在多根K线。 因为在盘后,日K中的四大要素O、H、L、C就没有未来之可能了。在盘后,除了周五之外,引用的周K指针也是未来数据。除了在月末,引用的月K指针也是未来数据。 总而言之,指针公式就分这两种: 线图信号的确定→全都用已知数据(过去式)来决定。 线图信号的确定→有用到未知数据(未完成式、现在进行式)来决定。 ZIG函数 ZX:ZIG(CLOSE,8); 最近这次峰点、谷点的确定,也常处在未完成式的状态中。 打个比喻,线图信号的确定→有用到未知数据(未完成式、现在进行式),例如,在实时盘中一根日K线的收盘价变来变去,指针线图当然随之而起舞。 ZIG函数只是把格局放大,N的日K组合而成的一根多日K线,这一根多日K线的收盘价变来变去,指针线图当然随之而起舞。 0065--主图KD 在主图上,坐标是以K线的价格为主。如何将在0与100中游走的KD指针附加上去,这是写作指针的基本逻辑观念的运用。 PARAM#1( N,9,2,100 ) PARAM#2( M1,3,1,40 ) PARAM#3( M2,3,1,40 ) RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100 LINETHICK0;{:=运算过程不显示值与图} K:SMA(RSV,3,1),LINETHICK0,COLORWHITE;{LINETHICK0只显值不显图} D:SMA(K,3,1),LINETHICK0,COLORYELLOW; HH:=SYSPARAM(4);{主图可见K线最高价} LL:=SYSPARAM(5);{主图可见K线最低价} KK:=K/100*(HH-LL)+LL; DD:=D/100*(HH-LL)+LL; PARTLINE(1=1,KK),COLORWHITE; {条件成立时,则显示图线形} PARTLINE(C>0,DD),COLORYELLOW; C;{显示收盘价的值与图线形} PARTLINE(C>=REF(C,1),C),COLORRED;{显示收盘价的图改成涨红跌绿联机图} PARTLINE(C< REF(C,1),C),COLORGREEN; 0066--描绘K线 例一:普通 将下列公式建立在:技术指针 ( ○主图叠加 ●主图 ) 公式名称:KL STICKLINE( ISUP , HIGH , LOW , , 0 ) , COLORRED ; STICKLINE( ISUP , CLOSE , OPEN , 8 , 1 ) , COLORRED ; STICKLINE( ISDOWN , HIGH , LOW , , 0 ) , COLORCYAN ; STICKLINE( ISDOWN , CLOSE , OPEN , 8 , 0 ) , COLORCYAN ; STICKLINE( ISEQUAL AND C>REF( C , 1 ) , HIGH , LOW , , 0 ) , COLORRED ; STICKLINE( ISEQUAL AND C>REF( C , 1 ) , CLOSE , OPEN , 8 , 0 ) , COLORRED ; STICKLINE( ISEQUAL AND C<=REF( C , 1 ) , HIGH , LOW , , 0 ) , COLORCYAN ; STICKLINE( ISEQUAL AND C<=REF( C , 1 ) , CLOSE , OPEN , 8 , 0 ) , COLORCYAN ; X:=BARSCOUNT( CLOSE ) ; {以下是描绘第一个交易日的K线,以补前面含盖的不足} STICKLINE( ISEQUAL AND X = 1 , HIGH, LOW, , 0 ) , COLORRED ; STICKLINE( ISEQUAL AND X = 1 , CLOSE , OPEN , 8 , 0 ) , COLORRED ; 说明: ISUP函数:相当于 IF( CLOSE>OPEN , 1 , 0 )。 ISEQUAL函数:相当于 IF( CLOSE=OPEN , 1 , 0 )。 ISDOWN函数:相当于 IF( CLOSE < OPEN , 1 , 0 )。 STICKLINE函数,画出来的对象有重叠覆盖性:→后画的对象可覆盖先画的对象。 例二:配色 STICKLINE( ISUP , HIGH , LOW , , 0 ),COLOR04FEFC ; STICKLINE( ISUP , CLOSE , OPEN , 8 , 0 ),COLOR0466FC ; STICKLINE( ISUP , CLOSE , OPEN , 3 , 0 ),COLOR04FEFC ; STICKLINE( ISDOWN , HIGH , LOW , , 0 ),COLORFCFE04 ; STICKLINE( ISDOWN , CLOSE , OPEN , 8 , 0 ),COLORFC6604 ; STICKLINE( ISDOWN , CLOSE , OPEN , 3 , 0 ),COLORFCFE04 ; STICKLINE( ISEQUAL AND C>REF( C , 1 ) , HIGH , LOW , , 0 ),COLOR04FEFC ; STICKLINE( ISEQUAL AND C>REF( C , 1 ) , CLOSE , OPEN , 8 , 0 ),COLOR0466FC ; STICKLINE( ISEQUAL AND C>REF( C , 1 ) , CLOSE , OPEN , 3 , 0 ),COLOR04FEFC ; STICKLINE( ISEQUAL AND C<=REF( C , 1 ) , HIGH , LOW , , 0 ),COLORFCFE04 ; STICKLINE( ISEQUAL AND C<=REF( C , 1 ) , CLOSE , OPEN , 8 , 0 ),COLORFC6604 ; STICKLINE( ISEQUAL AND C<=REF( C , 1 ) , CLOSE , OPEN , 3 , 0 ),COLORFCFE04 ; X:=BARSCOUNT( CLOSE ) ; {以下是描绘第一个交易日的K线,以补前面含盖的不足} STICKLINE( ISEQUAL AND X = 1 , HIGH, LOW, , 0 ),COLOR04FEFC ; STICKLINE( ISEQUAL AND X = 1 , CLOSE , OPEN , 8 , 1 ),COLOR0466FC ; STICKLINE( ISEQUAL AND X = 1 , CLOSE , OPEN , 3 , 1 ),COLOR04FEFC ; 0067--分时K线当天K线序号 范例:开盘第一根分时K线,指定一个值=1给它,其它为0。 XA:REF(DATE,1)<>DATE, STICK; 范例:每天的分时K线,指定它的当天K线序号给它 XA:=REF(DATE,1)<>DATE, STICK; XB:BARSLAST(XA=1) + 1 ,STICK; 应用:每天在分时K线,累计成交张数 XA:=REF(DATE,1)<>DATE , STICK; XB:=BARSLAST(XA=1) + 1 ,STICK; SV:SUM( VOL , XB ) ; 范例:标记今天分时K线的今天K线序号。过了午夜12点,就又要等早盘开盘后序号数字才会出现 XA:=CURRENTDATE=DATE ; XB:=REF(XA , 1)<>XA ; XC:HHVBARS(XB , 0) + XA ; 应用:13均线今天当下最后数值向后延申,画平台线。 XA:=CURRENTDATE=DATE ; XB:=REF(XA , 1)<>XA ; XC:=HHVBARS(XB , 0) + XA ; XD:=MA(C,13); XE:=REFX(XD , 300); XF:IF(XC>=0 , XE , 0) ,LINETHICK0,COLOR99FFFF; PARTLINE(XC>=1 , XF) ,COLOR99FFFF; 0068--系统参数函数 这组函数,应用在取得当前可视主图区内的一些数字信息,如下所示: 1.当前十字光标所在位置,那根K线的序号; 2.当前可视主图区,最初那根K线的序号; 3.当前可视主图区,最后那根K线的序号; 4.当前可视主图区,最高价; 5.当前可视主图区,最低价。 注:但须调出十字光标后,这组函数才能发生作用。否则回传的值是不确定的。 SYSPARAM(1) SYSPARAM(2) SYSPARAM(3) SYSPARAM(4) SYSPARAM(5) 函数:SYSPARAM(1) 说明: 回传当前 十字光标所在位置那根K线的序号 函数:SYSPARAM(2) 说明: 回传当前可视主图区 最初那根K线的序号 函数:SYSPARAM(3) 说明: 回传当前可视主图区 最后那根K线的序号 函数:SYSPARAM(4) 说明: 回传当前可视主图区 最高价 函数:SYSPARAM(5) 说明: 回传当前可视主图区 最低价 范例: 将公式建立在:技术指针 ( ●主图叠加 ○主图 ) SS:=SYSPARAM( 1 ) ; DD:=SUM( 1 , 0 ) ; CC:CLOSE * , LINETHICK0 , COLORYELLOW ; PARTLINE( SS>=DD , CC ) , COLORYELLOW ; 注: DD:SUM( 1 , 0 ) ; SS:SYSPARAM( 1 ) ; 上面两者,显然有明显的不同之处。 是一组变量型时间数列,代表K线的序号。 是隐含有N组常数型时间数列(N=这支股票的K线总数)。 DD:SUM(1,0) 以数学的二维空间F(X)=Y表示:Y=X SS:SYSPARAM(1) 以数学的二维空间F(X)=Y表示,其中A属正整数:Y=A SUM(1,0)=SYSPARAM(1)意指,下面两条线交叉成立的那一点: Y=X Y=A 范例: MA1:=MA(CLOSE,5); MA2:=MA(CLOSE,13); XA:=CROSS(MA1,MA2) ; XB:IF(XA=1,SUM(1,0),0);{条件成立时回传它的K线序号} | ||
TOP | |||
大户室 贡献 1 ? 红币 356 ? 当前离线 | 5# 大 中 小 发表于 2007-3-3 17:00? 复制内容到剪贴板 代码: [color=Indigo]0059--移动成本 不知道函数算法,计算误差在所难免。调整参数“%”可看到不同的移动成本。 | ||
大户室 贡献 1 ? 红币 356 ? 当前离线 | 6# 大 中 小 发表于 2007-3-3 17:00? 复制内容到剪贴板 代码: 0069--概率统计 COUNT,计数。SUM,总数、和。 当数组为逻辑运算判断的结果时,COUNT和SUM的返回值是一样的。一般习惯上,对于逻辑运算信号,用COUNT统计,返回其它数值的,用SUM统计。 当COUNT统计一般数值时,数组大于等于1时,计入;小于1时,不计入。这两个函数,主要用于统计。 用COUNT(CROSS(MA(C,5),MA(C,10)),0);就可以统计出全部的五天均线上穿十天均线的金叉数。 用SUM(CROSS(MA(C,5),MA(C,10)),0);和以上得出的结果应该是一样的。 股市的不随机规律,隐藏在统计概率之中。用这两个函数,可以统计很多概率性的规律。 比如,以两天的收盘价相比,昨天是下跌的,今天的下跌的概率是多少? A:=C< REF(C,1); B:=REF(A,1) AND C>REF(C,1);{昨天下跌,今天上涨} D:=REF(A,1) AND C=REF(C,1);{昨天下跌,今天平盘} E:=REF(A,1) AND C< REF(C,1);{昨天下跌,今天下跌} F:=COUNT(B,0)+COUNT(D,0)+COUNT(E,0); 上升概率:100*COUNT(B,0)/F; 下跌概率:100*COUNT(E,0)/F; 平盘概率:100*COUNT(D,0)/F; 从两市指数看,昨天下跌,今天下跌的概率始终大于50%。那么连跌两天之后,第三天收盘的各种概率是多少? A:=C< REF(C,1) AND REF(C,1)< REF(C,2); B:=REF(A,1) AND C>REF(C,1);{前两天下跌,今天上涨} D:=REF(A,1) AND C=REF(C,1);{前两天下跌,今天平盘} E:=REF(A,1) AND C< REF(C,1);{前两天下跌,今天下跌} F:=COUNT(B,0)+COUNT(D,0)+COUNT(E,0); 上升概率:100*COUNT(B,0)/F; 下跌概率:100*COUNT(E,0)/F; 平盘概率:100*COUNT(D,0)/F; 从指数的输出看,概率更明显了。连跌三天之后呢? A:=C< REF(C,1) AND REF(C,1)< REF(C,2) AND REF(C,2)< REF(C,3); B:=REF(A,1) AND C>REF(C,1);{前三天下跌,今天上涨} D:=REF(A,1) AND C=REF(C,1);{前三天下跌,今天平盘} E:=REF(A,1) AND C< REF(C,1);{前三天下跌,今天下跌} F:=COUNT(B,0)+COUNT(D,0)+COUNT(E,0); 上升概率:100*COUNT(B,0)/F; 下跌概率:100*COUNT(E,0)/F; 平盘概率:100*COUNT(D,0)/F; 规律就更明显了。 不要小看这些数据。虽然没有有些“高手”做出的成功率达百分之九十左右的公式那么夸张,但很有意义的。要知道股市中的随机因素太多,平衡性很强,稍稍的统计偏向,足可作为有用的参考。 这只是简单的例子,用这两个函数,可以做出很多的有用的统计数据。多数的交易系统的"胜率",可以由此统计出来。 统计: A:=CROSS(C,MA(C,3)); B:=CROSS(MA(C,3),C); D:B*(C-REF(C,BARSLAST(A))); 月:SUM(D,20); 季:SUM(D,60); 半:SUM(D,120); 年:SUM(D,250); 总和:SUM(D,0); 0070--五彩K线常用颜色 黑色 COLORBLACK 蓝色 COLORBLUE 棕色 COLORBROWN 青色 COLORCYAN 灰色 COLORGRAY 绿色 COLORGREEN 晶红 COLORMAGENTA 红色 COLORRED 白色 COLORWHITE 黄色 COLORYELLOW 0071--分析家公式设定注意事项 参数 最多四个参数,每个有最大和最小及缺省值,须有自己名称 注释 用大括号括起来放在被注释语句之后 bequiet公式名称 由字母或数字组成,在同类公式中必须唯一,最多九个字符 中间公式 使用":="来定义名字,不能与系统提供的函数同名 Param#1-4 对应于参数1-4,大小写敏感 坐标线位置 最多七个,用分号分隔 组合公式设置 小公式间用分号隔开 绘图参数使用 将其插入到指标公式的后面,用逗号分隔开 区分多条指标线 在指标公式前写上名称并加上一个冒号 指标线名字的使用 可以当函数名用 指标线绘制的极限 可同图显示16条指标线 五彩颜色参数使用 将其插入到指标公式的后面,用逗号分隔开 0072--交易系统公式交易类型 ENTERLONG 多头买入 ENTERSHORT 空头买入 EXITLONG 多头卖出 EXITSHORT 空头卖出 0073--可供引用的周期类型 MIN1 1分钟线 MIN60 60分钟线 MIN5 5分钟线 DAY 日线 MIN15 15分钟线 WEEK 周线 MIN30 30分钟线 MONTH 月线 0074--引用表达式 引用指标公式 公式名称.指标线名称(参数表) 引用交易系统公式 SYSTEM.公式名称.交易类型(参数表) 引用条件选股公式 EXPLORER.公式名称(参数表) 跨周期引用公式 各种类型公式名称#周期类型(参数表) 引用任意股票的数据 股票代码$数据名称 引用扩展数据 EXTDATA(N) 分析家N=1-11 飞狐N=1-13 引用横向统计日线数据(1-N) ESTDATA(N)?? 引用类函数第二个变量参数 类函数名称(第一参数,变量名或变量表达式) 0075--符号一览表 符号 名称 举例 符号 名称 举例 + 加 X + Y && 并且 X>Y && Y>Z - 减 X - Y || 或者 X>Y || Y>Z * 乘 X * Y $ 修饰符号 000014$CLOSE / 除 X / Y ( 括号 HIGH/(CLOSE+OPEN) < 小于 X < Y ) 反括号 HIGH/(CLOSE+OPEN) > 大于 X > Y , 逗号 MA(Clo,3) <= 小于等于 X <= Y : 输出 输出:CLOSE+OPEN >= 大于等于 X >= Y := 赋值 变量1:=HIGH = 等于 X = Y " 双引号 "000014$OPEN" {} 注释符号 {注释部分} . 点号 | ||
大户室 贡献 1 ? 红币 356 ? 当前离线 | 7# 大 中 小 发表于 2007-3-3 17:01? 复制内容到剪贴板 代码: 0077--扩展数据 函数:EXTDATA(N) 描述:取得日线扩展数据(1-13); 分析家N取1--11 类别:扩展数据 参数:N取1--13 说明:在[扩展数据管理]中定义并计算数据(本函数仅在日线分析周期有效)。 有些数据,非常重要,可是随着时间的推移,就再也找不到了。比如说某个股一天之中的总成交次数,又比如说某个股在上个月的1号,涨幅排名是第几?这些信息,要么以后就查不到了,要么在公式中也无法引用。而扩展数据库能解决这些问题。扩展数据库能够随日线保存这些数据,而且是计算好了的结果,所以引用时速度也很快。 扩展数据有两个用处:1、保存计算值。2、保存计算值的排名结果。目前飞狐的扩展数据,可以最多做13个。太多了好象也没有多大意思,因为扩展数据计算历史数据有点慢,而且也较占空间。历史的数据量大,当然慢了。可是计算好之后,以后只要更新当天的,速度还是较快的。计算扩展数据,某个股,一个交易日,一次只能得到一个结果数据,而且所选之指标,也应该是唯一的。 想保存所有分笔成交记录?扩展数据是做不到的。 缺省数据:某一天,或者说个股停盘等原因,没有计算结果,系统就将缺省数据保存到扩展数据库中。 在进行排序时,有两种排序方式,一种为0-N自然排序,一种为1-1000归一化排序,区别在于:自然排序按自然数来排列名次,排名在第几结果就是几,第一名,返回0;第二名,返回1;第N名,返回N-1。而归一化排序时将排序归一化到0-1000之间,第一位为0,最后一位为1000,采用公式" 排名*1000/参加排名的股票数"来进行计算。归一化排序的好处是,不随股票数目的增加而对排序结果有较大的影响。 怎么引用扩展数据?EXTDATA(N);N指引用第几组扩展数据,从1到13。比如把分笔成交次数的扩展数据建立在第一组中,引用时,就用 EXTDATA(1);这个公式,在某个股中,就输出此股在当天的总成交次数。扩展数据,有横向的性质,特别是用排名时。同时又是纵向的,只要有数据,以前的日子里,也可以返回所得值。而且从理论上说,扩展数据库是可以永远保存的。由于计算量较大,目前扩展数据不支持即时刷新。不过可以手工刷新。 0078--峰点公式 为了能找到合适的COND,用于举例子,先介绍一组概念: 高点:在2N+1根K线中,中间这根K线的H,要大于等于左右N根K线的H。在N+1根K线中,有等高点出现,取最先出现的。 低点:在2N+1根K线中,中间这根K线的L,要小于等于左右N根K线的L。在N+1根K线中,有等低点出现,取最先出现的。 峰点:高点和低点,合称为峰点。 这个定义,意合于技术分析的老祖宗道氏:"只要平均指数的最高点超过了前期的最高点,它就处于牛市时期;当最低点低于前期的最低点时,它处于熊市时期。"这里我们撇开向上、向下分形和分形峰状点等概念,以免把概念复杂化。 也为了不让公式一来就过于复杂,我们先取N为2来做公式。简介到后面,可以看到,N是可以作为峰点公式的参数进行调整的。 公式名称:FENG2 公式说明:供引用 公式内容: {峰点参数暂定为2} A:=REF(H,2);{中间K线的最高价} B:=A>=REF(H,4) AND A>=REF(H,3) AND A>=REF(H,1) AND A>=H;{中间K线的最高价大于等于两边共四根K线的最高价} D:=BACKSET(B,3);{将当前位置和之前2个周期的数值设为1} HD:FILTER(D,2);{找到高点后,过滤掉其后2周期内可能出现的等高点。输出高点} A2:=REF(L,2);{中间K线的最低价} B2:=A2<=REF(L,4) AND A2<=REF(L,3) AND A2<=REF(L,1) AND A2<=L;{中间K线的最低价小于等于两边共四根K线的最低价} D2:=BACKSET(B2,3);{将当前位置和之前2个周期的数值设为1} LD:FILTER(D2,2);{找到低点后,过滤掉其后2周期内可能出现的等低点。输出低点} {后面有些例子,就从这个公式中引用信号。} 用法: DRAWICON(COND,PRICE,TYPE),当COND条件满足时,在PRICE位置画TYPE号图标。15种图标编码为1-15(1-3为小脸,4-5为上下箭头,6-7为红绿小旗,8-9为三角形,10-12为信号灯,13-15为O、X、四方形)。TYPE为字符串时可显示用户自制BMP 图。 示例:DRAWICON(CLOSE>OPEN,LOW,4)表示当收阳时在最低价位置画4号图标。 DRAWICON(C>O, L, 'MyBMP')表示当收阳时在最低价位置画FmlDLL子目录下的自制图标。 1、COND条件,一般是指判断的结果,不是0就是1。如用其它数据,大于等于1的,条件满足;小于1,条件就不满足。 2、TYPE图标,现在已经有12种,用下面的公式,在000829上可以全部显示出来。当TYPE取大于等于12的数时,都显示黄球。 当TYPE取0时,显示的是笑脸(这个公式中没有做进去,自己可以试一下)。 B:=""; D:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1); A:=D>REF(D,1); DRAWICON(REF(A,1),*H,1); DRAWICON(REF(A,2),*H,2); DRAWICON(REF(A,3),*H,3); DRAWICON(REF(A,4),*H,4); DRAWICON(REF(A,5),*H,5); DRAWICON(REF(A,6),*H,6); DRAWICON(REF(A,7),*H,7); DRAWICON(REF(A,8),*H,8); DRAWICON(REF(A,9),*H,9); DRAWICON(REF(A,10),*H,10); DRAWICON(REF(A,11),*H,11); DRAWICON(REF(A,12),*H,12); DRAWICON(REF(A,13),*H,13); DRAWICON(REF(A,14),*H,100);{主图叠加} 当红球和绿球连续显示时,立体感会强一些。 DRAWICON(C>=MA(C,30),MA(C,30),10); DRAWICON(C< MA(C,30),MA(C,30),11);{主图叠加} 3、PRICE是用于定位图标的位置的。一般用*H,或者*L等。现在可用ALIGN(0-5)指定对齐位置。 用这个公式来试(主图叠加) B:=""; D:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1); A:=D>REF(D,1); E:=REF(H,1); DRAWICON(A,E,10),ALIGN0; DRAWICON(A,E,11),ALIGN1; DRAWICON(A,E,12),ALIGN2; DRAWICON(A,E,3),ALIGN3; DRAWICON(A,E,4),ALIGN4; DRAWICON(A,E,5),ALIGN5; 可以初步得出结论: ALIGN0:信号出现在PRICE的正中; ALIGN1:信号出现在PRICE下边(十分靠近); ALIGN2:信号出现在PRICE上边(十分靠近); ALIGN3:信号出现在主图的中间; ALIGN4:信号出现在主图的最上边; ALIGN5:信号出现在主图的最下边; 在高低点上作图标,可以使高低点更明确了。 A:=""; B:=""; DRAWICON(A,L,11),ALIGN1; DRAWICON(B,H,10),ALIGN2;{主图叠加} 4、可以自由调用图到显示位置,大大增强了输出的效果。你只要看到好看的图,可以随时抓拍过来,做成BMP文件,放到FmlDLL子目录下,就可以调用了。 A:=""; B:=""; DRAWICON(A,L,'PIG'),ALIGN1; DRAWICON(B,H,'PIG'),ALIGN2;{主图叠加。如果你没有文件,则不可显示。} DRAWICON(1,MA(C,5),'S28'); DRAWICON(1,MA(C,10),'S31'); DRAWICON(1,MA(C,20),'S14'); DRAWICON(1,MA(C,30),'S25');{主图叠加。如果你没有文件,则不可显示。} 举个例子: A:=""; B:=""; DRAWICON(A,L,11),ALIGN1; DRAWICON(B,H,10),ALIGN2; D:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1); E:=D>REF(D,1); F:=BACKSET(E,REF(BARSLAST(B),1)+2); G:=F>REF(F,1); DRAWLINE(G,H,E,H,1),pointdot,linethick1,coloryellow;{主图叠加} 这根线有些趋势线的意思了。由于趋势线的主观性颇强,只有多设参数才能满足多数人的要求。 DRAWLINE画出的线,应该比手工画出的线精确一些(DRAWLINE画线的灵敏度,要比手工画线低,所以说DRAWLINE画出的线精确,就未必对)。 主要用于画斜线,水平线我们一般可以另想办法。因为在图中显示直线,并非DRAWLINE的"专利"。 比如: A:=""; B:=""; D:=BACKSET(ISLASTPERIOD,BARSLAST(A)+1); E:=D>REF(D,1); F:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1); G:=F>REF(F,1); 前高:REF(H,BARSLAST(G)); 前低:REF(L,BARSLAST(E));{主图叠加} 说明:在图形上显示数字 用法: DRAWNUMBER(COND,PRICE,NUMBER,PRECISION),当COND条件满足时,在PRICE位置书写数字NUMBER(可以为常数或数组序列),PRECISION为小数显示位数(取值范围0-3)。可ALIGN0-5定义对齐方式。 示例:DRAWNUMBER(CLOSE/OPEN>,HIGH,(CLOSE-REF(C,1))/REF(C,1)*100,2)表示当日涨幅大于8%时在最高价位置显示涨幅(相对开盘价的百分比)。 这个函数的特色是,在NUMBER位置可以放变量。 NUMBER,数字。DRAWNUMBER是DRAWTEXT的"兄弟",也可以用ALIGN(0-5)来定义水平位置,方法相同。 A:=""; B:=""; DRAWICON(A,L,11),ALIGN1; DRAWICON(B,H,10),ALIGN2; D1:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1); E1:=D1>REF(D1,1);{离目前最近的一个高点} D2:=BACKSET(E1,REF(BARSLAST(B),1)+2); E2:=D2>REF(D2,1);{倒数第二个高点} DRAWTEXT(E1,H*,'高点价:'),COLORGREEN,ALIGN2; DRAWNUMBER(E1,H*,H,2),COLORGREEN,ALIGN1; DRAWTEXT(E2,H*,'高点价:'),COLORYELLOW,ALIGN2; DRAWNUMBER(E2,H*,H,2),COLORYELLOW,ALIGN1;{主图叠加} A:=""; B:=""; DRAWICON(A,L,11),ALIGN1; DRAWICON(B,H,10),ALIGN2; D1:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1); E1:=D1>REF(D1,1);{离目前最近的一个高点} D2:=BACKSET(E1,REF(BARSLAST(B),1)+2); E2:=D2>REF(D2,1);{倒数第二个高点} D3:=BACKSET(E2,REF(BARSLAST(B),1)+2); E3:=D3>REF(D3,1);{倒数第三个高点} DRAWTEXT(E1,H*,'☆TEXT:'),COLORRED,ALIGN0; DRAWTEXT(E2,H*,'★TEXT:'),COLORGREEN,ALIGN1; DRAWTEXT(E3,H*,'▓TEXT:'),COLORYELLOW,ALIGN2;{主图叠加} 描述:绘制折线段 类别:绘图 说明:在图形上绘制折线段 用法: POLYLINE(COND,PRICE),当COND条件满足时,以PRICE位置为顶点画折线连接。 示例:POLYLINE(HIGH>=HHV(HIGH,10),HIGH)表示在创10天新高点之间画折线。 POLY,多个的。 支持POINTDOT、LINETHICK、COLOR、SHIFT这四个描述函数。 A:=""; B:=""; DRAWICON(A,L,11),ALIGN1; DRAWICON(B,H,10),ALIGN2; POLYLINE(A,L),POINTDOT,COLORGREEN; POLYLINE(B,H),LINETHICK2,COLORMAGENTA;{主图叠加} 参数可调整的峰点公式: A:=REF(H,N)=HHV(H,2*N+1);{当前位置N天之前的最高价是最近2*N+1根K线中的最高价} B:=FILTER(A,N); {当高点附近有等高的K线出现时,会影响后续高点的判断,所以要过滤} D:=BACKSET(B,N+1);{将当前位置及前N周期的数值设为1,所以要用N+1} HD:=FILTER(D,N); {当高点附近有等高的K线出现,取第一个,过滤掉后面N个周期之内出现的} A2:=REF(L,N)=LLV(L,2*N+1);{求低点的过程与求高点的过程同理} B2:=FILTER(A2,N); D2:=BACKSET(B2,N+1);{参数N:1,3,999} LD:=FILTER(D2,N);{主图叠加} DRAWICON(HD,H,10),ALIGN2;{在高点附近显示红球} DRAWICON(LD,L,11),ALIGN1;{在低点附近显示绿球} 可以说,这个公式用了未来函数BACKSET,但是用在日K线中,盘后是没有未来数据的,因为引用的全是已经发生过的不可变的数据了。 至于即时盘中的未来数据,那是说不到底的事,基本所有的公式,都有即时盘中未来数据。 红球绿球作为峰点标志,在显示K线不多的情况下,还比较清楚。但当K线数较多时,因为球的大小是不变的,所以看起来比较乱。故可用以下公式: A:=REF(H,N)=HHV(H,2*N+1); B:=FILTER(A,N); D:=BACKSET(B,N+1); HD:=FILTER(D,N); A2:=REF(L,N)=LLV(L,2*N+1);B2:=FILTER(A2,N); D2:=BACKSET(B2,N+1);LD:=FILTER(D2,N); STICKLINE(REF(HD,1),REF(H,1),REF(H,1),18,0),COLORMAGENTA; STICKLINE(REF(LD,1),REF(L,1),REF(L,1),18,0),COLORGREEN; 函数:HHVBARS(X,N) 描述:上一高点位置 类别:引用 参数:X为数组,N为计算周期 返回:返回数组 说明:求N周期内X最高值到当前周期数,N=0表示从第一个有效值开始统计 示例:HHVBARS(HIGH,0)求得历史新高到当前的周期数 HHV、HHVBARS这两个函数一起用,可以找到当前N天中的最高点。 A:=BACKSET(ISLASTPERIOD,HHVBARS(H,N)+1); B:=COUNT(A,N)=1;{取得前N个周期内的最高点位置} REF(H,BARSLAST(B)); DRAWICON(B,H,1),ALIGN2;{主图叠加。N:30,1,9999} 函数:LLVBARS(X,N) 描述:上一低点位置 类别:引用 参数: 无 返回: 无 说明:求N周期内X最低值到当前周期数,N=0表示从第一个有效值开始统计 示例:LLVBARS(HIGH,10)求得10日最低点到当前的周期数 当前N天之内的最高点和最低点就一目了然了: A:=BACKSET(ISLASTPERIOD,HHVBARS(H,N)+1); B:=COUNT(A,N)=1;{取得前N个周期内的最高点位置} REF(H,BARSLAST(B)); DRAWICON(B,H,1),ALIGN2; A2:=BACKSET(ISLASTPERIOD,LLVBARS(L,N)+1); B2:=COUNT(A2,N)=1;{取得前N个周期内的最低点位置} REF(L,BARSLAST(B2)); DRAWICON(B2,L,2),ALIGN1;{主图叠加。N:30,1,9999} 这个公式求前期高低点,在600036等次新股上试调整参数就露马脚了,并不完善。问题出在HHVBARS起算点等原因上。 下面这个公式可以说是完美解决方案: HH:HHV(H,N),LINETHICK2; LL:LLV(L,N),LINETHICK2;{主图叠加,参数N:30,1,9999} 当N个周期之内,有两个最高价,即有等高的情况出现,HHVBARS会返回哪个最高价到当前的周期数呢? 用副图公式观察一下,N取10: HHVBARS(H,N); 我们可以得出结论,返回的是前一个最高价到当前的周期数。同样,当在N个周期之内,有两个等低的最低价出现时,LLVBARS会返回前一个最低价到当前的周期数。 | ||
TOP | |||
大户室 贡献 1 ? 红币 356 ? 当前离线 | 8# 大 中 小 发表于 2007-3-3 17:01? 复制内容到剪贴板 代码: 0079--窄幅整理 (HHV(C,20)-LLV(C,20)/C<; 0080--N天前到M天前之间的最高价 REF(HHV(H,20),40); 0081--某时间段最高价 HH:=IF(YEAR=1998 AND MONTH>=8 AND MONTH<=12,H,0); HHV(HH,0);{此例求1998年8月1日到1998年12月31日间的最高价} 0082--二十日内是否有过涨停 TT:=C/REF(C,1)>; COUNT(TT,20)>0; 0083--放量创新高 AA:=MA(V,5); BB:=REF(AA,2); CC:=HHV(C,30); AA/BB>2 AND C=CC; 0084--突破长期平台整理 V1:=MA(V,5); V2:=V/REF(V1,1); PZ1:=MA(C,150); PZ2:=HHV(H,150); PZ3:=LLV(L,150); PZ4:=(PZ2-PZ1)/PZ1; PZ5:=(PZ1-PZ3)/PZ1;柯林斯 PZ:=REF(PZ4,1)< AND REF(PZ5,1)<; TP1:=HHV(H,150); TP:=H=TP1; V2>=2 AND PZ AND TP 0085--尾盘大单拉升或打压 AA:=TIME>=145500; BB:=SUM(V,0)/240; | ||
大户室 贡献 1 ? 红币 356 ? 当前离线 | 9# 大 中 小 发表于 2007-3-3 17:02? 复制内容到剪贴板 代码: 0090--添加自己的特色指针子选单 方法如下: 在C:\CHIEFOX\SYSTEM\下建立文件,例如其内容如下: [特色指针] 追涨体系=0,RSI;0,KDJ; 条件选股=0,BIAS;3,K110;2,BIAS 打开记事本,输入上面文字后,存盘时记得扩展名由TXT→改为INI 批注: 各指针间以分号相隔。 指针名称逗号前的数字表示公式类型: 0:技术指针,1:条件选股 2:交易系统 3:五彩K线 再启动看看: 功能选单:特色→特色指针,将会出现子选单"追涨体系"、"条件选股"。 0091--5日均线转折价 将公式建立在:技术指针( ○主图 ●主图叠加 ) 公式名称:KKK27 参数PARAM( N,5,2,300 ) MMA:MA( CLOSE , N ) ; RMA:=REF( MMA , 1 ) ; MMB:=MA( CLOSE , N-1 ) ; RMB:=REF( MMB , 1 ) ; 均线今转折:( RMA * N ) - ( RMB * ( N-1) ) , LINETHICK5 , POINTDOT ; 均线明转折:( MMA * N ) - ( MMB * ( N-1 ) ) , LINETHICK5 , POINTDOT ; 说明: 1. REF( X , N ) 函数:将线图 X 向右平移 N 周期。 2. X , SHIFT N 函数:将线图 X 向右平移 N 周期。(这两者之间的差别验证看看就知道了) 3.天动 收盘站在转折价之上→均线将走正斜率。 收盘等于转折价→均线将走零斜率。 收盘落入转折价之下→均线将走负斜率。 5日均线 使CROSS(CLOSE , MA( CLOSE , 5 ) )成立转折价 将公式建立在:技术指针( ○主图 ●主图叠加 ) 公式名称:KKK40 参数PARAM( N,5,2,300 ) MMA:MA (CLOSE , N ) ; TT:=MA( C , N-1 ) ; DD:=REF( TT , 1 ) ; PARTLINE( CLOSE>0, DD ) , CROSSDOT , COLOR6A9BFF ; PARTLINE( CLOSE>0 , TT ) , CROSSDOT , COLORFFAB60 ; EXPLAINEX( CLOSE>0 , '均线今转折 ' , DD , 2 , 0 ) , COLOR6A9BFF; EXPLAINEX( CLOSE>0 , '均线明转折 ' , TT , 2 , 0 ) , COLORFFAB60 ; 说明: BB=MA( C , 4 ) RB=REF( BB , 1 ) 令 今转折价为 CC CC=(4*RB) / 5 + (CC) / 5 5*CC=4*RB + CC ; 4*CC=4*RB CC=RB 同理可证: 令 明转折价为MM MM=BB 5日均线 使CROSS(CLOSE , MA( CLOSE , 5 ) )成立 转折价(含周均线) 将公式建立在:技术指针( ○主图 ●主图叠加 ) 先建立即将被引用的表达式 公式名称:KKK45 参数PARAM( N,5,2,300 ) MMA:MA (CLOSE , N ) ; TT:MA( C , N-1 ) ; DD:REF( TT , 1 ) ; 将公式建立在:技术指针( ○主图 ●主图叠加 ) 公式名称: 参数PARAM( N,5,2,300 ) MMA:""(N) ; MMW:"#WEEK"(N) ; TT:=""(N) ; DD:=""(N) ; WT:="#WEEK"(N) ; WD:="#WEEK"(N) ; PARTLINE( CLOSE>0, DD ) , CROSSDOT , COLOR6A9BFF ; PARTLINE( CLOSE>0 , TT ) , CROSSDOT , COLORFFAB60 ; PARTLINE( CLOSE>0, WD ) , CROSSDOT , COLOR88FB66 ; PARTLINE( CLOSE>0, WT ) , CROSSDOT , COLORB982FD; EXPLAINEX( CLOSE>0 , '均线今转折 ' , DD , 2 , 0 ) , COLOR6A9BFF; EXPLAINEX( CLOSE>0 , '均线明转折 ' , TT , 2 , 0 ) , COLORFFAB60 ; EXPLAINEX( CLOSE>0 , '\N均线今周转折 ' , WD , 2 , 0 ) , COLOR88FB66 ; EXPLAINEX( CLOSE>0 , '均线下周转折 ' , WT , 2 , 0 ) , COLORB982FD ; 0092--平均真实波幅 ATR BANDS METASTOCK FORMULAS ATR BANDS STDHA := MOV(C,20,E)+2*ATR(20) ; STDLA := MOV(C,20,E)-2*ATR(20) ; STDHA; STDLA 真实波幅TRUE RANGE是以下三者最大的一项: (A). 当天最高价至最低价的幅度。 (B). 当天最高价至昨天收盘价的幅度。 (C). 当天最低价与昨天收盘价的幅度。 公式名称:KKK43 将公式建立在:技术指针 ( ○主图 ●主图叠加 ) RC:=REF( C , 1 ) , LINETHICK0 ; XA:=IF( RC>H , RC , 0 ) ; XB:=IF( H>=RC AND RC>L , H , 0 ) ; XC:=IF( RC<=L , H , 0 ) ; XD:=XA+XB+XC ; YA:=IF( RC>H , L , 0 ) ; YB:=IF( H>=RC AND RC>L , L , 0 ) ; YC:=IF( RC<=L , RC , 0 ) ; YD:=YA+YB+YC ; ATR:=SMA( (XD - YD) , 20 , 1 ) ; STDHA:EMA( C , 20 ) + 2*ATR ; STDLA:EMA( C , 20 ) - 2*ATR ; 0093--SYSPARAM(1)函数的说明 SYSPARAM(1)函数:主要应用在,线图会随十字游标的移动而变化。 公式名称:KKK12 将公式建立在:技术指针 ( ○主图 ●主图叠加 ) SS:=SYSPARAM( 1 ) ; 生命中不能承受之轻下载 DD:=SUM( 1 , 0 ) ; CC:CLOSE * , LINETHICK0 , COLORYELLOW ; PARTLINE( SS>=DD , CC ) , COLORYELLOW ; 注: DD:SUM( 1 , 0 ) ; SS:SYSPARAM( 1 ) ; 上面两者,显然有明显的不同之处。 1. DD是一条变量型时间数列→代表K线的序号下标。 2. SS是一组包含N 条的常数型时间数列( N=这支股票的K线总数)。 0094--真实波幅AND平均真实波幅。 真实波幅TRUE RANGE是以下三者最大的一项: (A). 当天最高价至最低价的幅度。 (B). 当天最高价至昨天收盘价的幅度。 (C). 当天最低价与昨天收盘价的幅度。 将公式建立在:技术指针( ○主图 ●主图叠加 ) 公式名称:KKK36 收盘价:CLOSE , POINTDOT , LINETHICK6 ; RC:REF( C , 1 ) , LINETHICK0 ; XA:=IF( RC>H , RC , 0 ) ; XB:=IF( H>=RC AND RC>L , H , 0 ) ; XC:=IF( RC<=L , H , 0 ) ; XD:XA+XB+XC ; YA:=IF( RC>H , L , 0 ) ; YB:=IF( H>=RC AND RC>L , L , 0 ) ; YC:=IF( RC<=L , RC , 0 ) ; YD:YA+YB+YC ; ATR:SMA( ( XD - YD ) , 14 , 1 ) , LINETHICK0 ; 真实波幅TRUE RANGE是以下三者最大的一项: (A). 当天最高价至最低价的幅度。 (B). 当天最高价至昨天收盘价的幅度。 (C). 当天最低价与昨天收盘价的幅度。 将公式建立在:技术指针( ○主图 ●主图叠加 ) 公式名称:KKK36 收盘价:CLOSE , POINTDOT , LINETHICK6 ; RC:REF( C , 1 ) , LINETHICK0 ; XA:=IF( RC>=H , RC , 0 ) ; XB:=IF( RC< H , H , 0 ) ; XD:XA+XB ; YA:=IF( RC>L , L , 0 ) ; YB:=IF( RC<=L , RC , 0 ) ; YD:YA+YB ; TR:SMA( ABS( XD - YD ) , 14 , 1 ) , LINETHICK0 ; | ||
TOP | |||
大户室 贡献 1 ? 红币 356 ? 当前离线 | 10# 大 中 小 发表于 2007-3-3 17:02? 复制内容到剪贴板 代码: 0095--条件成立当日低点向后划水平线直到水平线跌破。 条件A,例如CROSS( K , 80 ), 在 条件A 成立的当天取当根K棒的“最低价X”作为“水平直线”的起点,然后一直随着未来的K棒自动向右延伸,“直到”有一天的“收盘价小于”当初条件成立时的那个“最低价X”时,这一条“水平直线”便到了终点。 将下面公式建立在:技术指针( ○主图 ●主图叠加 ) 公式名称:KKK29 参数PARAM( N,9,1,100 ) 参数PARAM( M1,3,2,40 ) 参数PARAM( M2,3,2,40 ) RSV:=( CLOSE-LLV(LOW,N) ) / ( HHV(HIGH,N)-LLV(LOW,N) ) * 100 ; K:=SMA( RSV , M1 , 1 ) , COLORRED ; D:=SMA( K , M2 , 1 ) , COLORYELLOW ; AA:=CROSS( K , 80 ) ; BB:=BARSLAST( AA=1 ) ; DD:=REF( LOW , BB ) ; EE:=CROSS( DD , CLOSE ) ; FF:=SUM( EE , BB ) ; GG:=( REF( FF , 1 )=0 AND FF=1 ) ; HH:=( REF(DD,1)=DD ) ; PARTLINE( HH=1 , DD ) ; DRAWLINE( AA=1 , DD , GG=1 , DD , 0 ) , COLORC080FF ; 0096--分析周期切换→均线参数自动切换(1) 日线 MA5,MA10,MA20,MA30,MA72 周线 MA6,MA12,MA24,MA72 其它周期参数,自行类推。 将公式建立在:技术指针( ○主图 ●主图叠加 ) 公式名称: (完成品) XA:=IF( DATAPERIOD=6 , 5 , 0 ) ; XB:=IF( DATAPERIOD=6 , 10 , 0 ) ; XC:=IF( DATAPERIOD=6 , 20 , 0 ) ; XD:=IF( DATAPERIOD=6 , 30 , 0 ) ; XE:=IF( DATAPERIOD=6 , 72 , 0 ) ; TT:=SUM( 1 , 0 ) ; A1:=ISLASTBAR ; A2:=BACKSET( A1=1 , TT-4 ) ; A3:=BARSLAST( A2=1 ) ; X1:=A3 + 1 ; MA5:MA( C , XA ) * X1 ; B1:=ISLASTBAR ; B2:=BACKSET( B1=1 , TT-9 ) ; B3:=BARSLAST( B2=1 ) ; X2:=B3 + 1 ; MA10:MA( C , XB ) * X2 ; C1:=ISLASTBAR ; C2:=BACKSET( C1=1 , TT-19 ) ; C3:=BARSLAST( C2=1 ) ; X3:=C3 + 1 ; MA20:MA( C , XC ) * X3 ; D1:=ISLASTBAR ; D2:=BACKSET( D1=1 , TT-29 ) ; D3:=BARSLAST( D2=1 ) ; X4:=D3 + 1 ; MA30:MA( C , XD ) * X4 ; E1:=ISLASTBAR ; E2:=BACKSET( E1=1 , TT-71 ) ; E3:=BARSLAST( E2=1 ) ; X5:=E3 + 1 ; MA72:MA( C , XE ) * X5 ; YA:=IF( DATAPERIOD=7 , 6 , 0 ) ; YB:=IF( DATAPERIOD=7 , 12 , 0 ) ; YC:=IF( DATAPERIOD=7 , 24 , 0 ) ; YD:=IF( DATAPERIOD=7 , 72 , 0 ) ; A11:=ISLASTBAR ; A22:=BACKSET( A11=1 , TT-5 ) ; A33:=BARSLAST( A22=1 ) ; Y1:=A33 + 1 ; MB6:MA( C , YA ) * Y1 ; B11:=ISLASTBAR ; B22:=BACKSET( B11=1 , TT-11 ) ; B33:=BARSLAST( B22=1 ) ; Y2:=B33 + 1 ; MB12:MA( C , YB ) * Y2 ; C11:=ISLASTBAR ; C22:=BACKSET( C11=1 , TT-23 ) ; C33:=BARSLAST( C22=1 ) ; Y3:=C33 + 1 ; MB24:MA( C , YC ) * Y3 ; D11:=ISLASTBAR ; D22:=BACKSET( D11=1 , TT-71 ) ; D33:=BARSLAST( D22=1 ) ; Y4:=D33 + 1 ; MB72:MA( C , YD ) * Y4 ; 说明: 只显示后面15(预设)天的线图(不使用VBS): 将下列公式建立在:技术指针 ( ●主图 ○主图叠加 ) 公式名称: 参数PARAM( N、15、1、300 ) AA:=ISLASTBAR ; BB:=BACKSET( AA=1 , N ) ; Y:=BARSLAST( BB=1 ) ; X:=Y + 1 ; OO:OPEN * X ; MM:MA( CLOSE , 5 ) * X ; 将公式建立在:技术指针( ○主图 ●主图叠加 ) 公式名称:KKK25 (半成品) XA:=IF( DATAPERIOD=6 , 5 , 0 ) ; XB:=IF( DATAPERIOD=6 , 10 , 0 ) ; XC:=IF( DATAPERIOD=6 , 20 , 0 ) ; XD:=IF( DATAPERIOD=6 , 30 , 0 ) ; XE:=IF( DATAPERIOD=6 , 72 , 0 ) ; MA5:MA( C , XA ) ; MA10:MA( C , XB ) ; MA20:MA( C , XC ) ; MA30:MA( C , XD ) ; MA72:MA( C , XE ) ; YA:=IF( DATAPERIOD=7 , 6 , 0 ) ; YB:=IF( DATAPERIOD=7 , 12 , 0 ) ; YC:=IF( DATAPERIOD=7 , 24 , 0 ) ; YD:=IF( DATAPERIOD=7 , 72 , 0 ) ; MB6:MA( C , YA ) ; MB12:MA( C , YB ) ; MB24:MA( C , YC ) ; MB72:MA( C , YD ) ; 注: 当前分析周期类型: DATAPERIOD ; DATAPERIOD 函数 → 回传值的范围介于 0 -- 10 之间 。分别代表 当前分析周期类型。 0 → 分笔成交 1 → 1 分钟线 2 → 5 分钟线 3 → 15分钟线 4 → 30分钟线 5 → 60分钟线 6 → 日线 7 → 周线 8 → 月线 9 → 年线 10 → 多日线 小技巧: 在图形分析窗口可用 键盘精灵 切换分析周期。 0097--分析周期切换→均线参数自动切换(2) 日线 MA5,MA10,MA20,MA30,MA72 周线 MA6,MA12,MA24,MA72 其它周期参数,自行类推。 将公式建立在:技术指针( ○主图 ●主图叠加 ) 公式名称: (完成品) XA:=( DATAPERIOD=6 )*5 ; XB:=( DATAPERIOD=6 )*10 ; XC:=( DATAPERIOD=6 )*20 ; XD:=( DATAPERIOD=6 )*30 ; XE:=( DATAPERIOD=6 )*72 ; {常数型 时间数列 ,将之代入 MA函数 会正确} MA5:MA( C , XA ) ; MA10:MA( C , XB ) ; MA20:MA( C , XC ) ; MA30:MA( C , XD ) ; MA72:MA( C , XE ) ; YA:=( DATAPERIOD=7 )*6 ; YB:=( DATAPERIOD=7 )*12 ; YC:=( DATAPERIOD=7 )*24 ; YD:=( DATAPERIOD=7 )*72 ; MB6:MA( C , YA ) ; MB12:MA( C , YB ) ; MB24:MA( C , YC ) ; MB72:MA( C , YD ) ; 将公式建立在:技术指针( ○主图 ●主图叠加 ) 公式名称:KKK25 (半成品) XA:=IF( DATAPERIOD=6 , 5 , 0 ) ; XB:=IF( DATAPERIOD=6 , 10 , 0 ) ; XC:=IF( DATAPERIOD=6 , 20 , 0 ) ; XD:=IF( DATAPERIOD=6 , 30 , 0 ) ; XE:=IF( DATAPERIOD=6 , 72 , 0 ) ; {有点变量型时间数列的味道,因为IF函数在做怪,将之代入MA函数会失真} MA5:MA( C , XA ) ; MA10:MA( C , XB ) ; MA20:MA( C , XC ) ; MA30:MA( C , XD ) ; MA72:MA( C , XE ) ; YA:=IF( DATAPERIOD=7 , 6 , 0 ) ; YB:=IF( DATAPERIOD=7 , 12 , 0 ) ;breaking news YC:=IF( DATAPERIOD=7 , 24 , 0 ) ; YD:=IF( DATAPERIOD=7 , 72 , 0 ) ; MB6:MA( C , YA ) ; MB12:MA( C , YB ) ; MB24:MA( C , YC ) ; MB72:MA( C , YD ) ; 注: 当前分析周期类型: DATAPERIOD ; PP:( DATAPERIOD=6 ) ; { PP为常数型时间数列 } 0098--调用某某公式内的时间数列线 公式名称:BB SS:=HIGH< REF( HIGH , 1 ) ; {不输出的表达式,如果被引用还是会变成不输出的表达式} RR:REF( HIGH , 6 ) ; {输出的表达式,如果被引用还是会变成输出的表达式} 公式名称: BBQ TT:"" ; {不输出的表达式} PP:"" ; {输出的表达式} 1. 调用公式BB内的SS时间数列。调用公式BB内的RR时间数列。 2. 当SS线内存有预设参数时,例如有两个参数,可视情况写成PP:""(N,M) 。 3. 例如 K:=""( 10 , 4 , 0 ) ; → 调用公式 KD 内的 K 时间数列 。 3. 例如 D:=""( 10 , 4 , 4 ) ; → 调用公式 KD 内的 D 时间数列 。 4. 例如 K:="" ; → 使用公式 KD 预设的参数 ,( 9 , 3 , 0 )。 4. 例如 K:="" ; → 使用公式 KD 预设的参数 ,( 9 , 3 , 3 )。 公式名称:KD 参数PARAM( N,9,1,100 ) 参数PARAM( M1,3,2,40 ) 参数PARAM( M2,3,2,40 ) RSV:=( CLOSE-LLV( LOW , N ) ) / ( HHV( HIGH , N )-LLV( LOW , N ) )*100 ; K:SMA( RSV , M1 , 1 ) ; {K数列内包含了两个参数因子:N,M1} D:SMA( K , M2 , 1 ) ; {D数列内包含了三个参数因子:N,M1,M2} (1) 多头: 周线9K>9D时选出日线9K>9D的股票 (2) 空头: 周线9K<9D时选出日线9K<9D的股票 公式A. 先建立即将被引用的表达式 建立一个专门被用来引用(QUOTE)的公式区。 将公式建立在:技术指针( ●主图 ○主图叠加 ) 公式名称:KDD 参数PARAM( N,9,1,100 ) 参数PARAM( M1,3,2,40 ) 参数PARAM( M2,3,2,40 ) RSV:=( CLOSE-LLV(LOW,N) ) / ( HHV(HIGH,N)-LLV(LOW,N) ) * 100 ; K:SMA( RSV , M1 , 1 ) , COLORRED ; D:SMA( K , M2 , 1 ) , COLORYELLOW ; 公式B. 将公式建立在:技术指针( ●主图 ○主图叠加 ) 公式名称:KDD1 K:"" ; D:"" ; WK:"#WEEK" ; WD:"#WEEK" ; 公式B. 将公式建立在:条件选股 公式名称:KDD2(多头) K:="" ; D:="" ; WK:="#WEEK" ; WD:="#WEEK" ; K>D AND WK>WD 公式C. 将公式建立在:条件选股 公式名称:KDD3(空头) K:="" ; D:="" ; WK:="#WEEK" ; WD:="#WEEK" ; K< D AND WK< WD 0099--三角函数AND角度线 ∠A 的对边长度 = A ∠B 的对边长度 = B ∠C 的对边长度 = C → 斜边 ù= 1 度 = ( ù / 180 ) 弧度 ∠B = 度 = ( 1 / 8 ) * ù 弧度 ∠B = 45 度 = ( 1 / 4 ) * ù 弧度 SIN( B ) = B / C COS( B ) = A / C TAN( B ) = B / A → B = A * TAN( B ) 将公式建立在:技术指针( ○主图 ●主图叠加 ) 公式名称:KKK30 AA:=SUM( 1 , 0 ) - 1 ; BB22: AA * TAN( ( 1 / 8 ) * ) ; BB45: AA * TAN( ( 1 / 4 ) * ) ; 将公式建立在:技术指针( ○主图 ●主图叠加 ) 公式名称: 参数PARAM( N、45、0、80 )→预设为45度。 AA:=SUM( 1 , 0 ) - 1 ; BB: AA* TAN( N * ( / 180 ) ) ; 0100--个股和大盘联动K线 渗入“总报酬率”的观念,就可画出个股和大盘联动K线。 公式名称:KKK4 将公式建立在:技术指针 ( ○主图 ●主图叠加 ) 参数PARAM( N,30,1,300 ) 参数PARAM( M,1,0,1 ) AA:=SUM( 1 , 0 ) ; BB:=IF( AA=1 , 1 , 0 ) ; TT:=ISLASTBAR ; DD:=BACKSET( TT=1 , N + 1 ) ; EE:=BACKSET( TT=1 , N ) , LINETHICK0 ; FF:=IF( DD>EE , 1 , 0 ) ; GG:=IF( M=1 , FF , BB ) ; PP:=BARSLAST( GG=1 ) , LINETHICK0; ; X:=REF( INDEXC , PP ) ; Y:=REF( CLOSE , PP ) ; OO:( INDEXO / X ) * Y , LINETHICK0 ; HH:( INDEXH / X ) * Y , LINETHICK0 ; LL:( INDEXL / X ) * Y , LINETHICK0 ; CC:( INDEXC / X ) * Y , LINETHICK0 ; CC%:( INDEXC / X ) - 1 , LINETHICK0 ; { 基准日至今,大盘总报酬率 } DC%:( CLOSE / Y ) - 1 , LINETHICK0 ; { 基准日至今,个股总报酬率 } STICKLINE( CC>OO , HH , LL , , 0 ) , COLORRED ; STICKLINE( CC>OO , CC , OO , 7 , 1 ) , COLORRED ; STICKLINE( CC<=OO , HH , LL , , 0 ) , COLORCYAN ; STICKLINE( CC<=OO , CC , OO , 7 , 0 ) , COLORCYAN ; 说明: colorful 1. 从后面算来(第N+1日) 为基准日。例如,N=10; 2. 求算从后面算来(N日)→个股和大盘指数的联动K线: (每日大盘开盘指数/基准日当天的大盘收盘指数)*基准日当天的收盘价 (每日大盘最高盘指数/基准日当天的大盘收盘指数)*基准日当天的收盘价 (每日大盘最低盘指数/基准日当天的大盘收盘指数)*基准日当天的收盘价 (每日大盘收盘指数/基准日当天的大盘收盘指数)*基准日当天的收盘价 3. 公式的用意是: 以基准日为基准至今:大盘总报酬率多少,个股的总报酬率就多少。联动在一起。 | ||
本文发布于:2023-07-14 12:40:02,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/fan/90/177148.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |