二、 交易系统 交易系统是大智慧在条件选股功能上的一个大的延伸,旨在建立一套完整的交易规则体系,系统可以通过此平台对我们的买入、卖出等操作发出明确的买卖信号指示。 1、 编辑交易系统公式 进入大智慧“公式编辑器” (1) 、点击“交易系统”选项,选择“新建”,可以建立一个亲的交易系统。 (2) 、选中一个具体的交易系统,双击名称或者点击“修改”,可能浏览并编辑该系统 的公式内容。 2、 交易提示编辑时常用的函数: (1)、前提:交易系统一共包含多头买入(卖出)、空头买入(卖出)四种情况,但是由于我们只允许多头买入、卖出,故我们这里不讨论空头情况。 (2)、函数
ENTERLONG:多头买入函数。
EXITLONG:多头卖出函数。 简单的交易系统模型应该如下表示:
ENTERLONG:条件A; EXITLONG:条件B; 注意:一个完整的交易系统必须有进出两个条件组成,也就是说是ENTERLONG、EXITLONG或者ENTERSHORT、EXITSHORT(空头买入、卖出函数)中其中一组组成。
3、 交易系统的编制方法
首先,要确定的是,交易系统是多个条件的组合。通过不同条件的叠加、修正,系统自动在满足我们组合条件的个股K线图中添加买卖信号。 (1)、均线交易系统 如果个股5日均线上穿20日均线时,我要买入;相反,个股5日均线下穿20日均线我就卖出,这样的一个思路我们怎么来编写交易系统呢? 很简单
5日均线上穿20日均线(买入条件):CROSS(MA(CLOSE,5),MA(CLOSE,20)) 5日均线下穿20日均线(卖出条件):CROSS(MA(CLOSE,20),MA(CLOSE,5)) 按照前面所讲,交易系统函数“ENTERLONG:条件A;EXITLONG:条件B;”的方式表达:
ENTERLONG:CROSS(MA(CLOSE,5),MA(CLOSE,20)); EXITLONG:CROSS(MA(CLOSE,20),MA(CLOSE,5)); 同时按照自己的需求选择正确的介入点,如果不作选择,系统将默认在满足条件时发出提示信号。 为了方便修改指标参数,也可以将5日均线、20日均线设定成参数:SHORT和LONG,并将其默认为5、20。参数自述中加上“短期(Parsm#1)均线上穿长期(Param#2)均线买入,长期均线上穿短期均线卖出。” 那么在使用该交易系统时,用鼠标右健点击发出的买卖提示点,选择“调整指标参数”,就可以很方便的修改里面的2条均线参数。 (2)、KDJ交易系统 我们知道如果在D小于20的区域发生了K线上穿过D线是很好的买入条件;相反,D>80并且好生了D线下穿过了K线,则是很好的卖出条件。如何编辑呢? 第一步:在公式编写栏中分别设定公式的名称、分析周期、参数的各项内容,并编写KD的表达式,并且将K、D表达为两个中间表达式。中间表达式用符号“:=”
RSB:=(CLOSE-LLV(LOW,N))/(HHV(HIGN,N)-LLV(LOW,N)0*100; K:=SMA(RSV,M1,1); D:=SMA(K,M2,1); 第二步:完成交易系统的结构
ENTERLONG:CROSS(K,D)AND K<20; EXITLONG:CROSS(D,K) AND K>80; 完整表达式:
RSB:=(CLOSE-LLV(LOW,N))/(HHV(HIGN,N)-LLV(LOW,N)0*100; K:=SMA(RSV,M1,1); D:=SMA(K,M2,1);
ENTERLONG:CROSS(K,D)AND K<20; EXITLONG:CROSS(D,K) AND K>80; 但是,假设在一个KD强势的市场中,如果股价从下方穿过了30日均线,并且当天的成交量有比较明显的放大,我会买入;我的卖出条件是股价跌下10日均线之下立即抛出。这个交易系统怎么编辑呢? 买入条件:
KDJ强势:
AA:=”KDJ,D”(9,3,3);(因为KDJ指标中3个参数默认值分别为9、3、3,故我们应在指标中增加默认值)。
A1:=AA>40; 成交量明显放大,量化为大于5日均量的一倍。
A2:=VOL/MA(VOL,5)>2; 股价从下方上穿过了30日均线。
A3:=CROSS(CLOSE,MA(CLOSE,30)); 完整的买入条件为
ENTERLONG:A1AND A2 AND A3; 卖出条件: 股价从上方下穿过了5日均线
A4:=CROSS(MA(CLOSE,5),CLOSE); EXITLONG:A4 AND COUNT(A1 AND A2 AND A3,20)=1; 注意其后的COUNT( )是用来限定卖出信号发生在买入条件发生的20天内。 那么,完整的公式为:
AA:=”KDJ,D”(9,3,3);
A1:=AA>40;
A2:=VOL/MA(VOL,5)>2;
A3:=CROSS(CLOSE,MA(CLOSE,30));
A4:=CROSS(MA(CLOSE,5),CLOSE);
ENTERLONG:A1AND A2 AND A3;
EXITLONG:A4AND COUNT(A1 AND A2 AND A3,20)=1; 公式编写实例 编写实例 3.1 指标公式:均线通道 新建公式“均线通道”(JXTD) 1.使用快捷键Ctrl+F打开“公式**器”。
2.点击“新建”按钮,打开“公式编辑器”
3.填写公式项 “公式名称”---JXTD, “公式描述”---“均线通道” 参数 (最小值)(最大值)(缺省值) #N: 1 100 26 -------------------------------------------------- VAR1:=MA(CLOSE,N);{对“VAR1”赋值} VAR2:=MA(CLOSE,2*N);{对“VAR2”赋值} VAR3:=MA(CLOSE,3*N);{对“VAR3”赋值} VAR4:=MA(CLOSE,4*N);{对“VAR4”赋值} VAR5:=MA((VAR1+VAR2+VAR3+VAR4)/4,5);{一条多条均线的平均线} 上轨:VAR5*1.08;{在均线“VAR5”上加上8%的幅度变成“上轨”} 下轨:VAR5*0.92;{在均线“VAR5”上减去8%的幅度变成“下轨”} ---------------------------------------------------- 4.指标类型:选“路径型”,还有大势型、超买超卖型、趋势型、能量型等如图
5.画线方法:副图、主图叠加、副图叠加线、副图叠加美国线四种;选中“主图叠加型”,副图是K线图下面的区域; 6.密码保护:010101 7.参数设置:#N:最小值为1,最大值为100,缺省值(默认)为26; 8.坐标线位置:在非“主图叠加”中,此编辑框处可写状态;输出线为副图中深红色横线显示,是副图坐标线; 9.额外Y轴分界:是指标敏感数值输出线,在副图中显示为白色; 10.引入指标公式:在引入原公式的基础上进行编辑; 11.插入函数:左上为函数类别,右上为函数表,下区为函数解释区及用法举例;
12.公式编辑区: 〖{}〗是解释,不输出,为了提示自己和别人,便于看懂公式; 〖:=〗赋值符,意为“相当于”; 〖:〗输出符,它前面的名称为输出名称,可以在副图中看到,它后面的为公式定义; 〖;〗分段符,表示一段完成; 〖,〗分节符; 〖()〗括号中为公式体。 13.测试公式:测试通过则自动保存;测试不能通过,则在翻译区提示错误所在。 14.用法注释:自编公式使用说明。 15.在K线图上,直接敲字母键“JXTD”调出自编的公式“均线通道”,查看结果; 16.修改公式:左键选中公式线后,点击右键,在弹出的对话框中,选中“修改指标”项,直接调出《公式编辑器》修改公式。如果左键选指标线不便,直接用右键选参数数值,也可调出公式编辑器。
17.鼠标动态提示:将鼠标放在函数上,等一会系统自动出现提示框,方便函数学习和应用,如图:
3.2 选股公式:均线通道 改公式“均线通道”(JXTD)为选股公式“均线通道” 1. 〖Ctrl〗+〖F〗打开“公式**器”; 2. 点击“条件选股公式”选项; 3. 点击“新建”按钮,打开“条件选股公式编辑器”; 4. 点击“引入指标公式”按钮,选最后一项“均线通道”,确定;
5.修改输出:公式输出项改为赋值项;即将〖:〗符改为〖:=〗符; 6.新建输出项:选股:CLOSE<下轨;{选出收盘价小于下轨的股票};如图
7.测试公式通过; 8. 〖Ctrl〗+〖T〗打开条件选股公式“均线通道”,进入公式选股操作程序;
3.3 五彩K线公式:均线通道 改公式“均线通道”(JXTD)为五彩K线公式“均线通道” 1. 〖Ctrl〗+〖F〗打开“公式**器”; 2. 点击“五彩K线公式”选项; 3. 点击“新建”按钮,打开“K线指示公式编辑器”; 4. 点击“引入指标公式”按钮,选“均线通道”确定; 五彩K线公式 公式名:JXTD 公式描述:均线通道 参数 (最小值)(最大值)(缺省值) #N: 1 100 26 -------------------------------------------------- VAR1:=MA(CLOSE,N);{对“VAR1”赋值} VAR2:=MA(CLOSE,2*N);{对“VAR2”赋值} VAR3:=MA(CLOSE,3*N);{对“VAR3”赋值} VAR4:=MA(CLOSE,4*N);{对“VAR4”赋值} VAR5:=MA((VAR1+VAR2+VAR3+VAR4)/4,5);{一条多条均线的平均线} 上轨:=VAR5*1.08;{在均线“VAR5”上加上8%的幅度变成“上轨”} 下轨:=VAR5*0.92;{在均线“VAR5”上减去8%的幅度变成“下轨”} CLOSE<下轨,COLORRED;{小于下轨提示买入红色} CLOSE>上轨,COLORYELLOW;{高于上轨提示卖出黄色} HIGH>上轨*1.06,COLORBLUE;{高于上轨6%提示清仓蓝色} LOW<下轨*0.94,COLORMAGENTA;{低于下轨6%提示加仓洋红色} -------------------------------------------------- 5.测试通过,退出; 6.〖Ctrl〗+〖K〗,打开“五彩K线指示”---“均线通道”; 7.查看效果,不满意就修改参数一直到满意为止;
3.4 交易系统公式 改公式“均线通道”(JXTD)为交易系统公式“均线通道” 1. 〖Ctrl〗+〖F〗打开“公式**器”; 2. 点击“交易系统公式”选项; 3. 点击“新建”按钮,打开“交易系统公式编辑器”; 4. 点击“引入指标公式”按钮,选“均线通道”确定; 公式名:JXTD 公式描述:均线通道 参数 (最小值)(最大值)(缺省值) #N: 1 100 26 -------------------------------------------------- VAR1:=MA(CLOSE,N);{对“VAR1”赋值} VAR2:=MA(CLOSE,2*N);{对“VAR2”赋值} VAR3:=MA(CLOSE,3*N);{对“VAR3”赋值} VAR4:=MA(CLOSE,4*N);{对“VAR4”赋值} VAR5:=MA((VAR1+VAR2+VAR3+VAR4)/4,5);{一条多条均线的平均线} 上轨:=VAR5*1.08;{在均线“VAR5”上加上8%的幅度变成“上轨”} 下轨:=VAR5*0.92;{在均线“VAR5”上减去8%的幅度变成“下轨”} {多头买入}ENTERLONG:CLOSE<下轨; {多头卖出}EXITLONG:CLOSE>上轨; ---------------------------------------------------
5.测试通过,退出; 6.〖Ctrl〗+〖E〗,打开“五彩K线指示”---“均线通道”; 7.查看效果,不满意就修改参数一直到满意为止;
8.删除指示:快捷键〖Ctrl〗+〖H〗;鼠标左键选中指示图标,按〖Delete〗,或者点击鼠标右键,在弹出的菜单中选“删除交易系统指示”。
3.5 颜色参数应用:“MACD”K线 公式名称:MACDK 简称:“MACD”K线 ---------------------------- DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG); DEA:EMA(DIF,MID); MACDDIF-DEA)*2,COLORSTICK; D1:=EMA(C,3)-EMA(C,8); D2:=EMA(O,3)-EMA(O,8); D3:=EMA(H,3)-EMA(H,8); D4:=EMA(L,3)-EMA(L,8); DRAWICON(CROSS(D1,DIF) AND DIF<0 ,D4-0.1,10); STICKLINE(D1>=D2,D1,D2,8,0),COLOR0055AA; STICKLINE(D1<=D2,D1,D2,8,0),COLOR006600; STICKLINE(D1>=D2,D1,D2,5,0),COLOR0077CC; STICKLINE(D1>=D2,D1,D2,3,0),COLOR0099DD; STICKLINE(D1>=D2,D3,D4,0,0),COLOR00BBFF; STICKLINE(D1<=D2,D1,D2,5,0),COLOR009900; STICKLINE(D1<=D2,D1,D2,3,0),COLOR00BB00; STICKLINE(D1<=D2,D3,D4,0,0),COLOR00EE00; ------------------------------ 示图 颜色参数不是函数,它描述待画图形的颜色,将其插入到每个指标公式后面,用逗号分隔开。 常用颜色参数有: COLORBLACK 黑色 COLORBLUE 蓝色 COLORGREEN 绿色 COLORCYAN 青色 COLORRED 红色 COLORMAGENTA 洋红色 COLORBROWN 棕色 COLORLIGHTGRAY 淡灰色 COLORGRAY 深灰色 COLORLIGHTBLUE 淡蓝色 COLORLIGHTGREEN 淡绿色 COLORLIGHTCYAN 淡青色 COLORLIGHTRED 淡红色 COLORLIGHTMAGENTA 淡洋红色 COLORYELLOW 黄色 COLORWHITE 白色 颜色描述符还可以自定义颜色,格式为COLOR+“RRGGBB”:RR、GG、BB表示红色、绿色和蓝色的分量,每种颜色的取值范围是00-FF,采用了16进制。 例如:MA5:MA(CLOSE,5),COLOR00FFFF表示纯红色与纯绿色的混合色:COLOR808000表示淡蓝色和淡绿色的混合色。 (参见《附件》--颜色代码表)
3.6 新增函数应用(horcalc) 函数:HORCALC(X) 说明: 数据项:100-HIGH,101-OPEN,102-LOW,103-CLOSE,104-VOL,105-涨幅 计算方式:0-累加,1-排名次 权重:0-总股本,1-流通股本,2-等同权重,3-流通市值 用法:HORCALC(板块名称,数据项,计算方式,权重) 例如:HORCALC('自选股',103,0,1);以自选股板块股票的总股本为权重,以收盘价为数源进行累加。 公式名称:zdkx 公式描述:自定指数K线 参数:(最小值)(最大值)(缺省值) #n: 1 100 10 --------------- 高:=HORCALC('湖北板块',100,0,1); 开:=HORCALC('湖北板块',101,0,1); 低:=HORCALC('湖北板块',102,0,1); 收:=HORCALC('湖北板块',103,0,1); 自定K线:DRAWKLINE(高,开,低,收); MA(自定K线,N); ---------------
公式说明: 1.用于制作自定义指数、自设板块指数K线。 2.先制作自定义板块,“Ctrl+z”,填写好板块名称和简称(数字); 3.“板块名称”须用单引号,如'自选股'、'庄股'; 4.起始位为1000点(下载到本地数据); 5.板块内不要含有太多的股票数量,以免影响速度;
3.7 新增函数应用(blocksetnum) 函数:BLOCKSETNUM(板块名称) 说明: 统计板块中股票数量 用法:BLOCKSETNUM(板块名称) 注意:板块名称要用单引号 例如:BLOCKSETNUM('ST板块'),返回“ST板块”数量。 公式名称:STPM 公式描述:个股在st板块内排名 -------------- 板块股数量:BLOCKSETNUM('ST板块'),NODRAW; ST涨幅排名:HORCALC('ST板块',105,1,2);
说明: NODRAW是不输出线型只输出数值命令,用于多指标不兼容坐标;
常用的语句 1)今收盘对于N日内最低收盘价的涨幅(%)(c-llv(c,n))/llv(c,n)*100; 2)今收盘价对于N日最高收盘价的跌幅(%)(HHV(C,N)-C)/HHV(C,N)*100; 3)股价在过去N日内运行空间的相对位置(C-LLV(L,N))/(HHV(H,N)-LLV(L,N))*100; 4)股价上方N1%至N2%处的筹码(%) aa:=winner(c+c*n2/100)*100; bb:=winner(c+c*n1/100)*100; aa-bb 5)股价下方N1%至N2%处的筹码(%) (winner(c-c*n1/100)-winner(c-c*n2/100))*100; 6)收盘价N%处的套牢盘100-(winner(c*N/100))*100; 7)收盘价N%处的获利盘winner(c*N/100)*100; 8)下影线(MIN(O,C)-L)/L*100; 9)上影线(h-max(o,c))/max(o,c)*100; 10)本周期的涨跌幅 (c-ref(c,1))/ref(c,1)*100; 11)振幅(h-l)/l*100; 12)均线金叉(M.N为均线周期)cross(ma(c,m),ma(c,n)) 13)均线多头排列 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); 14) 均线空头排列 a1:=ma(c,n1); a2:=ma(c,n2); a3:=ma(c,n3); a4:=ma(c,n4); count(a1<a4,3); 15)N日均线向下 aa:=ma(c,n); bb:=ref(aa,2); aa<BB 16)向前N日至M日出现过均线死叉(P1<P2) aa:=ma(c,p1); bb:=ma(c,p2); cc:=ref(cross(bb,aa),n); count(cc,m); 17)今日成交量大于N日以来的均量VOL>MA(VOL,N); 18)低位密集 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) A5 AND B4; 19)换手率VOL/CAPITAL*100; 20)N日盈亏 V1:=VOL/SUM(VOL,N); V2:=DMA(CLOSE,V1); V3: (CLOSE-V2)/V2*100;
大智慧数学函数的运用
1、ABS绝对值 求绝对值。 用法:ABS(X)返回X的绝对值。 例如:ABS(-34)返回34。请看下面指标: {真实量比} V1:=AMOUNT/10000; 对敲:FINANCE(33), POINTDOT,colorffcc66; Var1:=ref(c,1); var2:=(var1-l)/(h-l); var3:=v1*var2; var4:=V*var2; var5:=abs(var4);{返回var4} var6:=abs(var3);{返回var3} var7:=abs(v1-var6);{返回v1-var6差} 大单卖盘:abs(v-var5)/100,color00ffff;{返回v-var5差除100} 买盘:var3/100,colorff00ff; 成交金额:V1/1000,color00ff00; 买卖盘比%:abs(v-var3)/v*100,colorc0c0c0;{返回v-var3差} stickline(c>0,0,var6,5,0),colorffff00;{画天兰色柱} 换手:100*v/capital,colorred; STICKLINE(换手<3,var6,v1,5 ,0),colorred;{画红色柱} STICKLINE(换手>=3and 换手<7,var6,V1,5.5,0),coloryellow;{画黄色柱} STICKLINE(换手>=7,var6,V1, 4,0) ,color00ff00;{画绿色柱}
2、BETWEEN介于 介于两个数之间。 用法:BETWEEN(A,B,C),表示A处于B和C之间时返回1,否则返回0。 例如:BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5)),表示收盘价介于5日均线和10日均线之间。请看下面指标: {智慧探庄 参数:下%:1 100 5上%:1100 5} VAR1:=((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27)))*(100); VAR2:=SMA(VAR1,9,1); A:SMA(VAR2,5,1),Color00FFFF; B:SMA(A,3,1),ColorFF00FF; F:(3)*(A)-(2)*(B),Color00FF00; 趋势线:MA(CLOSE,20)-(MA(CLOSE,20))/(3),ColorFFFFFF; X:=((CLOSE)/(趋势线)-1)*(100); AA:=BETWEEN(X,下%,上%);{表示x介于参数下%,上%之间} 智慧探庄:IF((AA>0),5,80),ColorFFFF00; VAR3:=(MA(WINNER(CLOSE),5))*(100); 智慧出击:=(CROSS(VAR3,2.5))*(85); 出击:IF((智慧出击>0),60,0),Color0000FF; BB:IF(((智慧出击>0)or (出击>0)),2,20),Color008000,Stick;
3、LONGCROSS维持交叉函数 两条线维持一定周期后交叉。 用法:LONGCROSS(A,B,N)表示A在N周期内都小于B,本周期从下方向上穿过B时返回1,否则返回0。 例如:LONGCROSS(MA(CLOSE,5),MA(CLOSE,10),5),表示5日均线维持5周期后与10日均线金叉。
4、CEILING向上舍入 向数值增大方向舍入。 用法:CEILING(A)返回沿A数值增大方向最接近的整数。 例如:CEILING(12.3)求得13,CEILING(-3.5)求得-3。 5、FLOOR向下舍入 向数值减小方向舍入。 用法:FLOOR(A)返回沿A数值减小方向最接近的整数。 例如:FLOOR(12.3)求得12,FLOOR(-3.5)求得-4。CEILING与FLOOR用法一样,区别在于向上舍入和向下舍入。 下面指标用到了这几个函数: aa1:=(EMA(CLOSE,12)-EMA(CLOSE,26))*100+50; aa2:=EMA(aa1,9); aa3:=(HHV(HIGH,21)-CLOSE)/(HHV(HIGH,21)-LLV(LOW,21))*100-10; aa4:=(CLOSE-LLV(LOW,21))/(HHV(HIGH,21)-LLV(LOW,21))*100; aa5:=SMA(aa4,13,8); 走势:CEILING(SMA(aa5,13,8));{向上舍入 向数值增大方向舍入,aa5的13日均线求得8} aa6:=SMA(aa3,21,8); 买观注:STICKLINE(走势-aa6<-65,0,5,15,1); 买进:=LONGCROSS(aa1,aa2*1.05,15)AND aa1<40;{表示aa1维持aa2*1.05后与15日金叉} 卖观注:STICKLINE(走势-aa6>85,95,90,15,1); 卖出:STICKLINE(LONGCROSS(aa2,aa1*0.95,7)AND aa1>0,100,80,6,0),color00ff00;{表示aa2维持aa1*0.95后与7日死叉,画绿色柱线}
6、MAX最大值 求最大值。 用法:MAX(A,B)返回A和B 中的较大值。 例如:MAX(CLOSE-OPEN,0),表示若收盘价大于开盘价返回它们的差值,否则返回0。
7、MIN最小值 求最小值。 用法:MIN(A,B)返回A和B中的较小值。 例如:MIN(CLOSE,OPEN),返回开盘价和收盘价中的较小值。这2个函数通常成双成对使用,请看下面指标: Var1:=(HIGH+LOW+CLOSE)/3;{(最高价+最低价+收盘价)/3} Var2:=IF(HIGH=LOW,1,HIGH-MAX(OPEN,CLOSE));{条件函数(最高价=最低价,1,最高价-最大值(开盘价,收盘价))} Var3:=IF(HIGH=LOW,1,MAX(CLOSE,OPEN)-Var1);{条件函数(最高价=最低价,1,最大值(收盘价,开盘价)-Var1)} Var4:=IF(HIGH=LOW,1,MIN(OPEN,CLOSE)-LOW);{条件函数(最高价=最低价,1,最小值(开盘价,收盘价)-最低价)} Var5:=IF(HIGH=LOW,1,Var1-MIN(CLOSE,OPEN));{条件函数(最高价=最低价,1,Var1-最小值(收盘价,开盘价))} Var6:=VOL/IF(HIGH=LOW,4,HIGH-LOW);{成交量/条件函数(最高价=最低价,4,最高价-最低价)} Var7:=Var2*Var6; Var8:=Var3*Var6; Var9:=Var4*Var6; VarA:=Var5*Var6; STICKLINE(CLOSE>0,0,Var7+VarA,4,1),COLORRED;{画柱线(收盘价>0,0,Var7+VarA,4,1),红色柱} 买入量:Var7+VarA,POINTDOT,COLORRED;{红色点状线} STICKLINE(CLOSE>0,(Var8+Var9)*(-1),0,4,1),COLORFFCCCC;{画柱线(收盘价>0,(Var8+Var9)*(-1),0,4,1),淡青色柱} 卖出量:(Var8+Var9)*(-1),POINTDOT,COLORFFCCCC;{淡青色点状线}
8、MOD求模运算 求模运算。 用法:MOD(A,B)返回A对B求模。 例如:MOD(26,10)返回6。
9、INTPART取整 绝对值减小取整,即取得数据的整数部分。 用法:INTPART(A)返回沿A绝对值减小方向最接近的整数。 例如:INTPART(12.3)求得12,INTPART(-3.5)求得-3。下面的指标用到了这两个函数; RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;{(收盘价-最低值(最低价,9))/(最高值(最高价,9)-最低值(最低价,9))*100} K:=(SMA(RSV,3,1));{(移动平均(RSV,3,1))} D:=(SMA(K,3,1));{(移动平均(K,3,1))} KK:=INTPART(SMA(RSV,3,1));{取整(移动平均(RSV,3,1))} DD:=INTPART(SMA(K,3,1));{取整(移动平均(K,3,1))} N:KK+DD,LINETHICK2,COLORff00ff;{画粗粉色线} 精确涨停:IF(CROSS(N,50),90,50),,COLORYELLOW;{条件函数(交叉函数(N,50),90,50)画黄色线} 接近头部:IF(CROSS(160,N),95,160),,COLOR00ff00;{条件函数(交叉函数(160,N),95,160)画绿色线} 尾数:MOD(n,10),LINETHICK0,COLORWHITE;{求模运算(n,10)画白色线} N的尾数:IF(尾数=0,65,25),,COLORFFCC66;{条件函数(尾数=0,65,25)画青色线}
10、NOT求逻辑非。 用法:MOT(X)返回非X,即当X=0时返回1,否则返回0。 例如:MOT(ISUP)表示平盘或收阴。请看这个函数在指标中的用法: Var1:=(MA(CLOSE,80)-MA(CLOSE,13)/3); 神奇线:=MA((CLOSE-Var1)/Var1,1); 买点:IF(REF(神奇线,2)=LLV(神奇线,20) ANDREF(神奇线,2)<0.071AND REF(神奇线,2)REF(HIGH,2)AND LOW>REF(HIGH,1)) AND CLOSE>REF(CLOSE,1),0.5,0);{这句用到了MOT函数}
11、RANGE范围 介于某个范围之间。 用法:RANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0。 例如:RANGE(CLOSE,MA(CLOSE,5),MA(CLOSE,10))表示收盘价大于5日均线并且小于10日均线。请看下面指标: a1:=1; a2:=ma(c,30); a3:=(c-a2)/a2*100; a4:=ma(a3,3); a5:=a1-1.01*1000000; a6:=barslast(cross(-10,a4)=1); a7:=if(a4<-10 and a6>=5,a4,0),colorwhite; 机会:a7,colorstick,colorffff00;{画青色柱线} a8:=range(a5,(1-0.618)*1000,(1+1.9/100)*1000);{在这句中用到了mange函数,其格式含义请慢慢体会} drawtext(filter(a7=a4 and a8=0,8)=1,a7*1.2 ,'注意反弹'),coloryellow;
12、REVERSE求相反数 求相反数。 用法:REVERSE(X)返回-X。 例如:REVERSE(CLOSE)返回-CLOSE。请看指标: Var1:=(CLOSE-REF(OPEN,29))/REF(OPEN,29)*100; Var2:=HHV(HIGH,60); VarA:=(CLOSE-LLV(LOW,36))/(HHV(HIGH,36)-LLV(LOW,36))*100; VarB:=SMA(VarA,5,1); VarC:=SMA(VarB,3,1); 跌:Var2*0.382,colorwhite; 底部:REVERSE(IF(CROSS(VarB,VarC) AND VarC<10 AND Var1<-30,跌*2,-5)),color00ff00;{返回CROSS(VarB,VarC)} DRAWTEXT(REVERSE(CROSS(VarB,VarC)) AND VarC<10 AND Var1<-30,跌-5,'底部'),color00ff00;{返回CROSS(VarB,VarC)}
13、ATAN反正切值 用法:ATAN(X)返回X的反正切值。请看指标: lc1:=ma(c,9); jxjd:=atan((lc1-ref(lc1,1))/ref(lc1,1)*100)/3.1416*180;{返回((lc1-ref(lc1,1))的反正切值} smk:sma(jxjd,3,1),colorstick;{画柱线} smd:sma(smk,3,1);smk;
14、EXP指数 用法:EXP(X)为e的X次幂。 例如:EXP(CLOSE)返回e的CLOSE次幂。
15、LOG以10为底的对数 用法:LOG(X)取得X的对数。 例如:LOG(100)等于2。下面指标用到了这两个函数: Var1:=IF(VOL/CAPITAL>0.001,1,EXP(ABS(LOG(VOL/CAPITAL*100))));{返回e的(ABS(LOG(VOL/CAPITAL*100)))次幂} STICKLINE(Var1>2 AND VOL 相对地量:0,COLORFF00FF;
16、POW乘幂 用法:POW(A,B)返回A的B次幂。 例如:POW(CLOSE,3)求得收盘价的3次方。请看预测指标: Var2:=EMA(CLOSE,100)-EMA(CLOSE,50); Var3:=EMA(Var2,60); Var4:=(Var2-Var3)*2; ZX: IF( Var4>0.3,POW(Var4,3)*10/10+POW(Var4,2),0); ZY: EMA(ZX,3); LING: 0;
17、SQRT开平方 用法:SQRT(X)为X的平方根。 例如:SQRT(CLOSE)收盘价的平方根。请看指标: 底(-SQRT(SQRT(FLOOR(SQRT((MA(((1)/(WINNER(CLOSE)))*(100),4))/(10000)))))))*(5)),Color4455EE; STICKLINE((底<(-2)),0,底,1.5,1),Color2222FF;
18、SIN正弦值 用法:SIN(X)返回X的正弦值。
19、COS余弦值 用法:COS(X)返回X的余弦值。正弦波是自然界最常见的波形。正弦波和余弦波的波形是一样的,无非是相差π/2弧度(90度)的相位。 主要应用在技术分析中的周期分析上。那么在指标中画出正弦波应该是很容易了吧。看看这2个函数在指标中的运用: A:=COUNT(C,0)=1; B:=BARSLAST(A);{1,2,3,4,.....} 正弦值:SIN(B); 余弦值:COS(B); 正余平方和:POW(正弦值,2)+POW(余弦值,2); 正弦180度:SIN(3.1415926); 但是看起来不太光滑.究其原因,是因为正弦波的周期是2π,当X取值较大时(1,2,3,...)时,返回值就不太“精密”了,也就是说构成波形的点数不够。这个就好办了,我们可以把数列的值都减小N倍,再来看看效果。 A:=COUNT(C,0)=1; B:=BARSLAST(A)/N;{参数N:1999 10} 正弦值:SIN(B); 余弦值:COS(B); 调整参数N,就可以发现,N取值越大,波形就越光滑。当N取3时,就有不错的光滑度。当N取10时,就非常光滑了。N调整得越大,在2π周期中的点数就越多,一个完整波形的周期内所含的日期差(在日K线中)就越大了。
20、TAN正切值TAN(X)返回X 的正切值。正切值的绝对值,最小是0,最大趋向于无穷大。当正弦值接近1时,正切值接近于无穷大。请看: A:=COUNT(C,0)=1; B:=BARSLAST(A)/N;{参数N:1999 10} 正弦值:SIN(B); 余弦值:COS(B); TAN(B); 以下几个函数很少用到,做一下简单了解就行了。你可以挖掘这几个函数的运用,也许会有出乎意料的收获。
21、ASIN反正弦值 用法:ASIN(X)返回X的反正弦值。
22、SGN符号值 求符号值。 用法:SGN(X),当X>0,X<0分别顺1,0,-1。
23、ACOS反余弦值 用法:ACOS(X)返回X的反余弦值。
24、LN自然对数 求自然对数。 用法:LN(X)以e为底的对数。 例如:LN(CLOSE)求收盘价的对数。
25、SIN正弦值 用法:SIN(X)返回X的正弦值。
大智慧引用函数COUNT的运用 函数:COUNT(X,N)参数:X为数组,N为计算周期 说明:统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始。 示例:COUNT(CLOSE>OPEN,20);表示统计20周期内收阳的周期数。看下面的指标(自己取名吧),有几条语句用了COUNT函数: V1:=(MA(CLOSE,80)-MA(CLOSE,13)/3); 神奇线:MA((CLOSE-V1)/V1,1),coloryellow,linethick2; 买点:IF(CROSS(神奇线,0) ANDLOW/REF(HIGH,1)<1.012,0.5,0), STICK; 稳赚:IF(COUNT(神奇线>REF(神奇线,1),3)=3AND COUNT(神奇线<0,10)=10AND REF(神奇线,3)=LLV(神奇线,10),0.5,0); V2:=(CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100; V3:=(EMA(CLOSE, 6)-EMA(CLOSE, 12))*100; 猎庄:V3<13AND V2>9,stick,ColorFFFFFF,linethick2; YD:=(count(c=10 OR count(c=10) and count(H/L>1.048,13)>=7; DTJJ:=DMA(c,V/MA(V,13)/13); XJPL:=c/DTJJ<0.91; a1:=YD and XJPL; STICKLINE(a1,0,0.50,4,1),colorffcccc; 回调买入:0,colorffcccc; aa1:=cross(ref(c,3),ref(ma(c,20),3)); bb1:=count(c>ma(c,20),3)=3; cc1:=cross(c,ma(c,20)) and (c-ma(c,20))/ma(c,20)>0.03; 突破月线:if((aa1and bb1) or cc1,0.5,0),stick,linethick2,colorred; drawicon((aa1 and bb1) or cc1,0.6,1); 指标解析: V1:=(简单移动平均(收盘价,80)-简单移动平均(收盘价,13)/3); 神奇线:简单移动平均((收盘价-V1)/V1,1),coloryellow,linethick2;{画黄色粗线} 买点:条件函数(交叉函数(神奇线,0) AND 最低价/向前引用(最高价,1)<1.012,0.5,0),棒状线;{在坐标0--0.5处画棒状线} 稳赚:条件函数(统计总数(神奇线>向前引用(神奇线,1),3)=3AND 统计总数(神奇线<0,10)=10AND 向前引用(神奇线,3)=最低值(神奇线,10),0.5,0);{在坐标0--0.5处显示脉冲信号} V2:=(收盘价-向前引用(收盘价,1))/向前引用(收盘价,1)*100; V3:=(指数平滑移动平均(收盘价, 6)-指数平滑移动平均(收盘价,12))*100; 猎庄:V3<13AND V2>9,棒状线,ColorFFFFFF,linethick2;{默认在坐标0--1处画白色棒状线} YD:=(统计总数(收盘价<向前引用(开盘价,1),13)>=10OR 统计总数(收盘价<向前引用(收盘价,2),13)>=10)and 统计总数(最高价/最低价>1.048,13)>=7; DTJJ:=动态移动平均(收盘价,成交量/简单移动平均(成交量,13)/13); XJPL:=收盘价/DTJJ<0.91; a1:=YD and XJPL;{两个条件同时成立} 画柱线(a1,0,0.50,4,1),colorffcccc;{在坐标0--0.5处画宽度为4的青色空心棒状线} 回调买入:0,colorffcccc;{在指标图上方显示'回调买入'} aa1:=交叉函数(向前引用(收盘价,3),向前引用(简单移动平均(收盘价,20),3)); bb1:=统计总数(收盘价>简单移动平均(收盘价,20),3)=3; cc1:=交叉函数(收盘价,简单移动平均(收盘价,20))and (收盘价-简单移动平均(收盘价,20))/简单移动平均(收盘价,20)>0.03; 突破月线:条件函数((aa1and bb1) or cc1,0.5,0),棒状线,linethick2,colorred;{在坐标0--0.5处画红色粗棒状线} 画图标((aa1and bb1) or cc1,0.6,1);{在坐标0.6处显示红脸} 下面是几个运用COUNT函数的指标例句: (1)、n日内阴线多于阳线
count(open>close,n)/n<0.5; 注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等,达到确定阴线占全部K线个数的比例)。 (2)、n日内阳线多于阴线
count(open0.5; 注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等,达到确定阳线占全部K线个数的比例)。 (3)、n日内上涨多于下跌(第二天开盘高于前一天收盘) count(c>ref(c,1),n)/n>0.5; 注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等,达到确定其中比例)。 (4)、n日内上涨少于下跌(第二天开盘低于前一天收盘)
count(c>ref(c,1),n)/n<0.5; 注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等,达到确定其中比例)。 (5)、连续n日收阳线
up:=close>open; count(up,n)=n; 注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。n为指标参数,可在参数设定范围内设定参数范围。 (6)、连续n日内收阴线
up:=close<OPEN; count(up,n)=n; 注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。N为指标参数,可在参数设定范围内设定参数范围。 (7)、连续n天上涨
count(close>ref(close,1),n)=n; 注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。N为指标参数,可在参数设定范围内设定参数范围。 (8)、连续n天下跌
count(c 注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。N为指标参数,可在参数设定范围内设定参数范围。 以上的参数n只要添入你所需要的周期数即可,如5、10、30等日期就是一个完整的指标或选股指标。 股市的不随机规律,隐藏在统计概率之中。用这两个函数,可以统计很多概率性的规律。 比如,以两天的收盘价相比,昨天是下跌的,今天的下跌的概率是多少?看下面指标: {当日升跌概率} 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; 那么连跌两天之后,第三天收盘的各种概率是多少?看下面指标: A:=C<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,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; 规律就更明显了。 不要小看这些数据。虽然没有有些“高手”做出的成功率达百分之九十左右的公式那么夸张,但很有意义的。要知道股市中的随机因素太多,平衡性很强,稍稍的统计偏向,足可作为有用的参考。
大智慧引用函数FILTER、SUMBARS运用
1、函数:FILTER信号过滤 过滤连续出现的信号。 用法:FILTER(X,N),X满足条件后,删除其后N周期内的数据置为0。 例如:FILTER(CLOSE>OPEN,5),查找阳线,5天内再次出现的阳线不被记录在内。请看下面指标: 顶底背离:0,COLORYELLOW; A1:=BARSLAST(ref(cross("macd.diff"(12,26,9),"macd.dea"(12,26,9)),1)); B1:=ref(c,A1+1)>c andref("macd.diff"(12,26,9),A1+1)<"macd.diff"(12,26,9) andcross("macd.diff"(12,26,9),"macd.dea"(12,26,9)); MACD底背离:STICKLINE(FILTER(B1>0,5),0,0.75,3,0),COLOR00FF00;{5天内B1>0的条件不被记录在内,在当前周期内出现B1>0画绿色柱线} DRAWTEXT(FILTER(B1>0,5),0.57,'MACD底背离'),COLOR00FF00; A2:=BARSLAST(ref(cross("kdj.k"(9,3,3),"kdj.d"(9,3,3)),1)); B2:=ref(c,A2+1)>c and ref("kdj.k"(9,3,3),A2+1)<"kdj.k"(9,3,3)and cross("kdj.k"(9,3,3),"kdj.d"(9,3,3)); KDJ底背离:STICKLINE(FILTER(B2>0,5),0,1,3,0),COLORYELLOW;{5天内B2>0的条件不被记录在内,在当前周期内出现B>0画黄色柱线} DRAWTEXT(FILTER(B2>0,5),0.80,'KDJ底背离'),COLORYELLOW; A3:=BARSLAST(ref(cross("RSI.RSI1"(6,12,24),"RSI.RSI2"(6,12,24)),1)); B3:=ref(c,A3+1)>c andref("RSI.RSI1"(6,12,24),A3+1)<"RSI.RSI1"(6,12,24) andcross("RSI.RSI1"(6,12,24),"RSI.RSI2"(6,12,24)); RSI底背离:STICKLINE(FILTER(B3>0,5),0,0.5,3,0),COLORFFCC66;{5天内B3>0的条件不被记录在内,在当前周期内出现B3>0画青色柱线} DRAWTEXT(FILTER(B3>0,5),0.25,'RSI底背离'),COLORFFCC66; 2,COLORRED; C1:=BARSLAST(ref(cross("macd.dea"(12,26,9),"macd.diff"(12,26,9)),1)); D1:=ref(c,C1+1)"macd.diff"(12,26,9) andcross("macd.dea"(12,26,9),"macd.diff"(12,26,9)); MACD顶背离:STICKLINE(FILTER(D1>0,5),2,1.25,3,0),COLOR0066FF;{5天内D1>0的条件不被记录在内,在当前周期内出现D1>0画橘黄色柱线} DRAWTEXT(FILTER(D1>0,5),1.47,'MACD顶背离'),COLOR0066FF; C2:=BARSLAST(ref(cross("kdj.d"(9,3,3),"kdj.k"(9,3,3)),1)); D2:=ref(c,C2+1)"kdj.k"(9,3,3) andcross("kdj.d"(9,3,3),"kdj.k"(9,3,3)); KDJ顶背离:STICKLINE(FILTER(D2>0,5),2,1,3,0),COLORRED;{5天内D2>0的条件不被记录在内,在当前周期内出现D2>0画红色柱线} DRAWTEXT(FILTER(D2>0,5),1.2,'KDJ顶背离'),COLORRED; C3:=BARSLAST(ref(cross("RSI.RSI2"(6,12,24),"RSI.RSI1"(6,12,24)),1)); D3:=ref(c,C3+1)"RSI.RSI1"(6,12,24) andcross("RSI.RSI2"(6,12,24),"RSI.RSI1"(6,12,24)); RSI顶背离:STICKLINE(FILTER(D3>0,5),2,1.5,3,0),COLORFF00FF;{5天内D3>0的条件不被记录在内,在当前周期内出现D3>0画粉色柱线} DRAWTEXT(FILTER(D3>0,5),1.75,'RSI顶背离'),COLORFF00FF; 这是一个引用FILTER函数比较多的指标,请认真研究和体会一下语句的用法。 2、函数:SUMBARS累加到指定周期数 向前累加到指定值到现在的周期数。 用法:SUMBARS(X,A),将X向前累加直到大于等于A,返回这个区间的周期数。 例如:SUMBARS(VOL,CAPITAL),求完全换手到现在的周期数。 这个函数好用,在于它不但能精确地得到统计结果,而且能得到“模糊”的结果。 就以SUMBARS(VOL,CAPITAL)为例: 日期数:SUMBARS(VOL,CAPITAL);{返回成交量累加到流通盘的日期数} 验证:SUM(V,日期数)/CAPITAL;{把返回的日期数之内的成交量累计,再除以流通盘} 运行的结果中,我们可以看到,“验证”的输出,除了SUMBARS起算点附近之外,从来没有小于1的。可见SUMBARS只往多算,不往少算。请看下面指标: Var1:=(CLOSE-LLV(LOW,45))/(HHV(HIGH,45)-LLV(LOW,45))*100; Var2:=SMA(Var1,3,1); Var3:=SMA(Var2,3,1); VarB:=SUM(IF(CLOSE>REF(CLOSE,7),VOL,IF(CLOSE<REF(CLOSE,7),0-VOL,0)),0); VarC:=SUMBARS(VOL,CAPITAL);{求完全换手到现在的周期数} VarD:=IF(CLOSE>LLV(CLOSE,VarC),1,-1); VarE:=IF(VarB>LLV(VarB,VarC),1,-1); VarF:=VarD*VarE; Var10:=IF(VarF=-1,1,0); 关注:IF(Var10AND CLOSE=LLV(CLOSE,20) AND Var3<12,70,1),colorffcc66;{在图上0--70的坐标处显示青色脉冲信号} V1:=SUM(IF(CLOSE>REF(CLOSE,1),VOL,IF(CLOSE<REF(CLOSE,1),0-VOL,0)),0); V2:=SUMBARS(VOL,CAPITAL);{求完全换手到现在的周期数} V3:=IF(CLOSE>LLV(CLOSE,V2),1,-1); V4:=IF(V1>LLV(V1,V2),1,-1); V5:=V3*V4; V6:=IF(V5=-1,1,0); V7:=COUNT(V6=1,8)>2; V8:=AMOUNT/VOL/100; V9:=(3*HIGH+LOW+OPEN+2*CLOSE)/7; VA:=SUM(AMOUNT,13)/V8/100; VB:=DMA(V9,VOL/VA); VC:=(CLOSE-VB)/VB*100<-15; VD:=(CLOSE-MIN(REF(CLOSE,5)*0.865,REF(CLOSE,21)*0.772))/CLOSE<0.05; 长针:(VCAND VD AND V7)*60,coloryellow;{在图上0--60的坐标处显示黄色脉冲信号}
|