通达信周线选股公式/通达信编写公式方法3

来源:百度文库 编辑:神马文学网 时间:2024/04/20 12:37:23
分解说明:
VAR1:=(((HHV(HIGH,36) - CLOSE) / (HHV(HIGH,36) - LLV(LOW,36))) * 100);
VAR2:=SMA(VAR1,5,1);
VAR3:=SMA(VAR2,8,1);
H1:EMA(CLOSE,8),LINETHICK1;
H2:EMA(H1,20),LINETHICK1;
VAR4:=(CROSS(VAR2,VAR3) AND (VAR3 < 20));
VAR5:=((CLOSE > (LLV(CLOSE,60) + (0.3 * LLV(CLOSE,60)))) AND VAR4);
VAR6:=IF((CLOSE > 1000),VAR4,VAR5);
M1:EMA(CLOSE,60);
M2:EMA(CLOSE,89);
M3:EMA(CLOSE,233),LINETHICK1;
M4:EMA(CLOSE,583),LINETHICK1;
STICKLINE((H1 > H2),H1,H2,1,0.8);
STICKLINE((H1 < H2),H1,H2,1,0.8);
第一步{从后往前找}找到下面这行"买"的输出语句。然后看这条语句的基本条件。
DRAWTEXT((CROSS(H1,H2) AND (CLOSE < EMA(CLOSE,60))),(LOW * 0.92),'买');
查看结果:输出文字 交叉 条件,条件直接输出语 句 输出位置 文字
DRAWTEXT(VAR6,(HIGH * 1.08),'卖');
知道"基本条件"为 H1,H2,那么与此没有任何关系的语句从后往前删除。删的办法有两种:一是直接删掉;二是先用{}括上,待没问题时再一次性删除。加蓝色的为找到的不输出语句。
第二步{删除没用条}后,剩下的有用语句:
H1:EMA(CLOSE,8),LINETHICK1; {加蓝的为修饰类函数,原则一律删除。}
H2:EMA(H1,20),LINETHICK1;
DRAWTEXT((CROSS(H1,H2) AND (CLOSE < EMA(CLOSE,60))),(LOW * 0.92),'买');
第三步{去掉修饰符} 分别去掉:指标线粗细、显示文字、文字位置函数和文字
H1:EMA(CLOSE,8);
H2:EMA(H1,20);
CROSS(H1,H2) AND CLOSE < EMA(CLOSE,60);
第四步{个别加等号} 条件选股只能输出一条语句,上面这三行为全部输出,所以,作为"条件"的前两行还必须在冒号后面加上等号,表达不输出。结果:
H1:=EMA(CLOSE,8);
H2:=EMA(H1,20);
CROSS(H1,H2) AND CLOSE < EMA(CLOSE,60);
例二、找出笑脸和买入信号
以本人发过的《跟庄建仓》为例。
A01:=DYNAINFO(7);
A03:=BARSCOUNT(CLOSE);
A04:=(SMA((CLOSE / HHV(HIGH,120)),3,1) * 100);
A05:=IF((A03 > 20),A04,0);
A06:=IF((LOW > A01),0,IF((HIGH < A01),1,(((A01 - LOW) + 0.009) / ((HIGH - LOW) + 0.009))));
A07:=DMA(A06,(VOL / CAPITAL)) * 60;
A09:=IF((((A07 > 0) AND (A07 > REF(A07,1))) AND (A05 <= 88)),A07,0);
Var1:=3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV( LOW,27))*100,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HH V(HIGH,27)-LLV(LOW,27))*100,5,1),3,1);
Var2:=EMA(Var1,8);
Var3:=3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*10 0,5,1)-2*SMA(SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55) )*100,5,1),3,1);
趋势:=EMA(Var3,3)-10;
FILLRGN(趋势>80,趋势,80);
DRAWICON(CROSS(趋势,0),0,1);
FILLRGN((A09 > 0 AND (趋势<20 OR 趋势>REF(趋势,1)AND 趋势<50)),0,A09),colorFFFF00;
机构建仓通达信条件选股公式区:0,LINETHICK0,colorFFFF00;
Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
STICKLINE(趋势<=13,0,20,5,0),colorcc9900;
DRAWTEXT(FILTER(趋势<=13,15),30,'准备现金'),colorcc9900;
STICKLINE(趋势<=13 AND Var4>13,0,50,5,0),color0099ff;
Var5:=FILTER((趋势<=13 AND Var4>13),10);
DRAWTEXT(Var5,60,'买入'),color0099ff;
STICKLINE(趋势>=90 AND Var4,0,30,5,0),colorgray;
Var6:=FILTER(趋势>=90,10);
DRAWTEXT(Var6,40,'清仓'),colorgray;
Var7:=LLV(LOW,30);
Var8:=HHV(HIGH,30);
Var9:=EMA((CLOSE-Var7)/(Var8-Var7)*4,4)*25;
STICKLINE(Var9>90,100,105,10,2),COLORRED;
STICKLINE(CROSS(Var4,-40),10,55,6,0),COLORRED;
Var10:=(Var9-LLV(Var9,4))/(HHV(Var9,4)-LLV(Var9,4) )*100;
DRAWTEXT(IF(CROSS(Var9,Var10) AND Var9>87,95,0),88,'险'),Color00FF00,ALIGN1;
DRAWICON(CROSS(90,Var9),95,9);
Var11:=SMA(ABS(L-REF(L,1)),3,1)/SMA(MAX(L-REF(L,1) ,0),3,1)*100;
Var12:=HHV(Var11,30)*8;
火焰山:EMA(IF(LOW<=Var7 AND 趋势<40,(Var11+Var12),0),3)/618,COLORRED,linethick2;
STICKLINE(火焰山>0,0 ,火焰山*1.2,8,0 ),COLORRED;
Var13:=(MA(C,1)+MA(C,3)+MA(C,5)+MA(C,7)+MA(C,9))/5 ;
Var14:=(MA(C,2)+MA(C,4)+MA(C,6)+MA(C,8)+MA(C,10))/ 5;
趋势线: 趋势,colorff0000;
Var16:=MAX(EMA(Var13,2)-EMA(Var14,5),0)*200;
Var17:=EMA(Var16,5);
波浪峰:Var17,stick,colorff00ff;
STICKLINE(Var17Var18:=MA(趋势线,8);
if(CROSS(Var2,Var18) AND Var2<15,50,0),COLORRED;
DRAWTEXT(CROSS(趋势线,Var2)AND 趋势线>REF(趋势线,1)AND 趋势线<50,50,'追涨'),COLORFF0000;
分析:这个公式输出语句非常多,但多数都是用于趋势判断的。所以不用管它。仍按我们既定的思路进行。
第一步{从后往前找},先删除发出信号关键语句之后的(红色为输出语句,它以下的语句已经删去,蓝色为等待下步删除的)
A01:=DYNAINFO(7);
A03:=BARSCOUNT(CLOSE);
A04:=(SMA((CLOSE / HHV(HIGH,120)),3,1) * 100);
A05:=IF((A03 > 20),A04,0);
A06:=IF((LOW > A01),0,IF((HIGH < A01),1,(((A01 - LOW) + 0.009) / ((HIGH - LOW) + 0.009))));
A07:=DMA(A06,(VOL / CAPITAL)) * 60;
A09:=IF((((A07 > 0) AND (A07 > REF(A07,1))) AND (A05 <= 88)),A07,0);
Var1:=3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV( LOW,27))*100,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HH V(HIGH,27)-LLV(LOW,27))*100,5,1),3,1);
Var2:=EMA(Var1,8);
Var3:=3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*10 0,5,1)-2*SMA(SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55) )*100,5,1),3,1);
趋势:=EMA(Var3,3)-10;
FILLRGN(趋势>80,趋势,80);
DRAWICON(CROSS(趋势,0),0,1);
FILLRGN((A09 > 0 AND (趋势<20 OR 趋势>REF(趋势,1)AND 趋势<50)),0,A09),colorFFFF00;
机构建仓区:0,LINETHICK0,colorFFFF00;
Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
STICKLINE(趋势<=13,0,20,5,0),colorcc9900;
DRAWTEXT(FILTER(趋势<=13,15),30,'准备现金'),colorcc9900;
STICKLINE(趋势<=13 AND Var4>13,0,50,5,0),color0099ff;
Var5:=FILTER((趋势<=13 AND Var4>13),10);
DRAWTEXT(Var5,60,'买入'),color0099ff;
第二步{删除没用条}后
Var3:=3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*10 0,5,1)-2*SMA(SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55) )*100,5,1),3,1);
趋势:=EMA(Var3,3)-10;
DRAWICON(CROSS(趋势,0),0,1);
Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
Var5:=FILTER((趋势<=13 AND Var4>13),10);
DRAWTEXT(Var5,60,'买入'),color0099ff;
第三步{去掉修饰符后}:
趋势:=EMA(Var3,3)-10;
CROSS(趋势,0);
Var4:=(趋势-REF(趋势,1))/REF(趋势,1)*100;
Var5:=FILTER((趋势<=13 AND Var4>13),10);
Var5;
第四步{个别加等号}本公式中的"条件"语句都是不输出的,所以此项省略,但因是要笑脸和买入两个信号,所以还必须把它们连结起来:
Var3:=3*SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55))*10 0,5,1)-2*SMA(SMA((C-LLV(L,55))/(HHV(H,55)-LLV(L,55) )*100,5,1),3,1);
趋势:=EMA(Var3,3)-10;
Var4:=(趋势-REF(趋势通达信选股公式编写,1))/REF(趋势,1)*100;
Var5:=FILTER((趋势<=13 AND Var4>13),10);
CROSS(趋势,0)or Var5;
第九讲 函数的综合运用
第一部分:引用已有公式中的数据
基本引用例一
"macd. diff", "macd.dea";
基本格式: 指标名称 语句名称 (注意:必须用双引号引上)
加入参数例二
"kdj. k" (9,3,3) ;
基本格式:指标名称 语句名称 参数 (指标名称和语句名称之间用隔点.隔开)
加入参数例三
周m:"macd. diff #WEEK";
引用周线:指标名称 语句名称 周函数 (注意:周函数前加#字号)
月K:"kdj.k#MONTH";
引用月线同上,只是换成月函数。
-
应用实例:主图 顶底背离
A1:=BARSLAST(ref(cross("macd.diff"(12,26,9),"macd. dea"(12,26,9)),1));
B1:=ref(c,A1+1)>c and ref("macd.diff"(12,26,9),A1+1)<"macd.diff"(12,26,9) and cross("macd.diff"(12,26,9),"macd.dea"(12,26,9));
MACD底背离:STICKLINE(FILTER(B1>0,5),0,0.75,3,0),COLOR00FF00;
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;
DRAWTEXT(FILTER(B2>0,5),0.80,'KDJ底背离'),COLORYELLOW;
A3:=BARSLAST(ref(cross("RSI.RSI1"(6,12,24),"RSI.RS I2"(6,12,24)),1));
B3:=ref(c,A3+1)>c and ref("RSI.RSI1"(6,12,24),A3+1)<"RSI.RSI1"(6,12,24) and cross("RSI.RSI1"(6,12,24),"RSI.RSI2"(6,12,24));
RSI底背离:STICKLINE(FILTER(B3>0,5),0,0.5,3,0),COLORFFCC66;
DRAWTEXT(FILTER(B3>0,5),0.25,'RSI底背离'),COLORFFCC66;
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) and cross("kdj.d"(9,3,3),"kdj.k"(9,3,3));
KDJ顶背离:STICKLINE(FILTER(D2>0,5),2,1,3,0),COLORRED;
DRAWTEXT(FILTER(D2>0,5),1.2,'KDJ顶背离'),COLORRED;
C3:=BARSLAST(ref(cross("RSI.RSI2"(6,12,24),"RSI.RS I1"(6,12,24)),1));
D3:=ref(c,C3+1)"RSI.RSI1"(6,12,24) and cross("RSI.RSI2"(6,12,24),"RSI.RSI1"(6,12,24));
RSI顶背离:STICKLINE(FILTER(D3>0,5),2,1.5,3,0),COLORFF00FF;
DRAWTEXT(FILTER(D3>0,5),1.75,'RSI顶背离'),COLORFF00FF;
第二部分 逐步增加函数
以均线为例,主图:
基本句型
MA5:MA(C,5);
MA10:MA(C,10);
MA30:MA(C,30);
MA60:MA(C,60);
增加颜色(注:在没有颜色输出符号时,系统会自动加上颜色)
MA5:MA(C,5),COLORBLUE;
MA10:MA(C,10),COLORF00FF0;
MA30:MA(C,30),COLORFFFF00;
MA60:MA(C,60),COLORYELLOW;
将10日均线变成小圆圈线
MA5:MA(C,5),COLORBLUE;
MA10:MA(C,10),COLORF00FF0,CIRCLEDOT;
MA30:MA(C,30),COLORFFFF00;
MA60:MA(C,60),COLORYELLOW;
将60日均线加粗
MA5:MA(C,5),COLORBLUE;
MA10:MA(C,10),COLORF00FF0,CIRCLEDOT;
MA30:MA(C,30),COLORFFFF00;
MA60:MA(C,60),COLORYELLOW,LINETHICK3;
在5日均线金叉10日均线处显示符号
MA5:MA(C,5),COLORBLUE;
MA10:MA(C,10),COLORF00FF0,CIRCLEDOT;
MA30:MA(C,30),COLORFFFF00;
MA60:MA(C,60),COLORYELLOW,LINETHICK3;
金叉:=CROSS(MA5,MA10);
DRAWICON(金叉,L,1);
DRAWTEXT(金叉,L,'金叉');
STICKLINE(金叉,H,L,6,0); (注:这三种显示方式用其中一种就行)
30日均线向上时显示红色,否则为绿色
MA5:MA(C,5),COLORBLUE;
MA10:MA(C,10),COLORF00FF0,CIRCLEDOT;
MA30:MA(C,30),COLORFFFF00;
MA60:MA(C,60),COLORYELLOW,LINETHICK3;
金叉:=CROSS(MA5,MA10);
DRAWICON(金通达信分时选股公式叉,L,1);
DRAWTEXT(金叉,L,'金叉');
STICKLINE(金叉,H,L,6,0);
PARTLINE(MA30>=REF(MA30,1),MA30),COLORRED;
PARTLINE(MA30(注:最后两行为划分段线,大智慧没有此项功能,大智慧2和分析家 同花顺用下面这行)
PARTLINE(MA30,MA30>=REF(MA30,1),RGB(255,0,0),MA30通达信用下面这两行:
IF(MA30>=REF(MA30,1),MA30,DRAWNULL),COLORRED;
IF(MA30第十讲:常用函数示例
系统中的函数非常多,其中的一些函数只有在特定的语句中才会用得到。本文介绍几个能经常用到函数,方便大家在以后编写时使用。
1、COUNT 统计总数
原理:COUNT (X,N),统计N周期中满足条件X的周期数,若N=0则从第一个有效值开始。
例如:COUNT(C以前曾列举过这个函数,今天单独拿出来,是想进一步说明它的应用原理。以上面这个例子,单独使用是没有任何意义的。如语句:金叉 AND COUNT(C那么怎么才能发挥它的作用呢?还必须在它的后面加上我们要求的条件。如:10周期内收阴的周期数大于7,完整的表达式:金叉AND COUNT(C7; 再举几个例子:
成交量连续5天上升:COUNT(VOL>(VOL,1),5)=5;
如果求通达信选股公式5天内只能1天上升:COUNT(VOL>(VOL,1),5)=1;
如果在5天内成交量大于5日均量有2天以上呢COUNT(VOL>MA(VOL,5),5)>=2;