ARTICLE · 1107273
趋势通道主图//通达信源码
【声明】本文只分享通达信公式的编写思路与代码,用于学习交流,不构成任何投资建议。市场有风险,请独立判断、自负盈亏。
后面需要把一些专业术语换成了更通俗的讲法,方便大家理解。
源码里有一个综合信号(我习惯叫它"钻石信号",对应 第十三只眼),由多项条件组合而成,感兴趣可以对照代码看看它的触发逻辑。
今天做个简单更新。
截图如下:

源码如下:
DSSZY1:=EMA(CLOSE,3);
DSSZY2:=EMA(CLOSE,26);
DSSZY3:=DSSZY1-DSSZY2;
牵牛线:EMA(EMA(EMA(CLOSE,3),3),3)+DSSZY3,COLORWHITE;
寻牛线:MA(MA(LOW,3),3),COLORMAGENTA;
DSSZY4:=HHV(寻牛线,60);
DSSZY5:=BARSCOUNT(C)>5;
DSSZY6:=REF(C,1);
DSSZY7:=(H-DSSZY6+0.01)/DSSZY6*100;
DSSZY8:=(DSSZY6-L+0.01)/DSSZY6*100;
DSSZY9:=DSSZY7>=5 AND DSSZY5 AND C=H;
DSSZY10:=DSSZY8>=5 AND DSSZY5 AND C=L;
DSSZY11:=DSSZY7>=10 AND DSSZY5 AND C=H;
DSSZY12:=DSSZY8>=10 AND DSSZY5 AND C=L;
DSSZY13:=DSSZY7>=20 AND DSSZY5 AND C=H;
DSSZY14:=DSSZY8>=20 AND DSSZY5 AND C=L;
DSSZY15:=IF(INBLOCK('科创板'),DSSZY13,IF(INBLOCK('创业板') AND DATE>1200823,DSSZY13,IF(INBLOCK('ST板块'),DSSZY9,DSSZY11)));
DSSZY16:=IF(INBLOCK('科创板'),DSSZY14,IF(INBLOCK('创业板') AND DATE>1200823,DSSZY14,IF(INBLOCK('ST板块'),DSSZY10,DSSZY12)));
DSSZY17:=MA(CLOSE,1);
DSSZY18:=SMA(SMA(SMA(DSSZY17,2,1),2,1),2,1),NODRAW;
DSSZY19:=MA(DSSZY18,3),NODRAW;
DSSZY20:=MA((L+H+C)/3,5);
DSSZY21:=REF(CLOSE,1);
DSSZY22:=SMA(MAX(CLOSE-DSSZY21,0),6,1)/SMA(ABS(CLOSE-DSSZY21),6,1)*100;
上箱顶:HHV(MA(MA(LOW,3),3),60)LINETHICK3,COLORYELLOW;
下箱底:LLV(寻牛线,20)LINETHICK3,COLORFFBB00;
DRAWKLINE(HIGH,OPEN,LOW,CLOSE);
STICKLINE(DSSZY15,OPEN,CLOSE,2.6,0),COLOR0000E5;
STICKLINE(DSSZY15,OPEN,CLOSE,2.4,0),COLOR335555;
STICKLINE(DSSZY15,OPEN,CLOSE,1.8,0),COLOR338888;
STICKLINE(DSSZY15,OPEN,CLOSE,1.2,0),COLOR33AAAA;
STICKLINE(DSSZY15,OPEN,CLOSE,0.6,0),COLOR33CCCC;
STICKLINE(DSSZY15,OPEN,CLOSE,0.1,0),COLOR33EEEE;
STICKLINE(DSSZY16,C,O,2.5,0),COLOR009900;
STICKLINE(DSSZY16,C,O,1.5,0),COLOR00BB00;
STICKLINE(DSSZY16,C,O,0.8,0),COLOR00DD00;
STICKLINE(DSSZY16,C,O,0.1,0),COLOR00FF00;
起飞加速线:HHV(DSSZY20,60)DOTLINE,COLORLIRED;
DSSZY23:=CROSS(84,DSSZY22) AND 起飞加速线=REF(起飞加速线,1) AND C<REF(L,1);
DSSZY24:=CROSS(DSSZY19,DSSZY18) AND C<起飞加速线 AND C<REF(L,1);
DSSZY25:=7*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*30,4,1)-3*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*30,4,1),3,1) -SMA(SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*30,4,1) ,3,1),2,1);{DRAWTEXT_FIX(1,0.980,20,1,'★DSSZY55:天香聚友'),COLOR666666;}
DSSZY26:=78.89;
DSSZY27:=DSSZY18<REF(DSSZY18,1) AND DSSZY19>REF(DSSZY19,1);
DSSZY28:=1230923;
DSSZY29:=(REF(CLOSE,3)-CLOSE)/REF(CLOSE,3)*100>5;
DSSZY30:=FILTER(DSSZY29,10);
DSSZY31:=BARSLAST(DSSZY30);
DSSZY32:=REF(HIGH,DSSZY31+2);
DSSZY33:=REF(HIGH,DSSZY31+1);
DSSZY34:=REF(HIGH,DSSZY31);
DSSZY35:=MAX(DSSZY32,DSSZY33);
DSSZY36:=MAX(DSSZY35,DSSZY34);
DSSZY37:=(CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100>5;
DSSZY38:=DSSZY31<150;
DSSZY39:=(OPEN-DSSZY36)/DSSZY36*100<30;
DSSZY40:=(CLOSE-LLV(LOW,DSSZY31))/LLV(LOW,DSSZY31)*100<50;
DSSZY41:=(CLOSE-REF(OPEN,5))/REF(OPEN,5)*100<30;
DSSZY42:=VOL/MA(VOL,5)<3.5;
DSSZY43:=(CLOSE-REF(CLOSE,89))/REF(CLOSE,89)*100<80;
DSSZY44:=DSSZY37 AND DSSZY38 AND DSSZY39 AND DSSZY40 AND DSSZY41 AND DSSZY42 AND DSSZY43;
DSSZY45:=FILTER(DSSZY44,15);
DSSZY46:=MA(CLOSE,10);
DSSZY47:=MA(CLOSE,54);
DSSZY48:=(((CLOSE-DSSZY47)/DSSZY47)<0.1);
DSSZY49:=(((CLOSE-DSSZY46)/DSSZY46)<0.3);
DSSZY50:=(((DSSZY48=1) AND (DSSZY49=1))*0.2);
DSSZY51:=((((DSSZY50=0) AND (REF(DSSZY50,1)=0.2)) AND (REF((COUNT((DSSZY50=0.2),10)=10),1)=1))*-0.1);
DSSZY52:=DSSZY51=-0.1;
DSSZY53:=DSSZY45 OR DSSZY52;
DSSZY54:=DYNAINFO(7)/(REF(CLOSE,1))>1.05 AND (DYNAINFO(7)/O>1.05);
DSSZY55:=(VOL/REF(VOL,1)>1.2 AND COUNT(CLOSE>OPEN,1)) OR (LOW>REF(HIGH,1) AND COUNT(OPEN>CLOSE,1) AND VOL/REF(VOL,1)>1.2);
第十三只眼:=DSSZY53 AND DSSZY15 AND DSSZY55 AND DSSZY54,NODRAW;
DRAWTEXT(CROSS(DSSZY26,DSSZY25) AND C<起飞加速线 AND CROSS(DSSZY19,DSSZY18),H,'↙⊙高位回落'),COLORLIBLUE;
STICKLINE(DSSZY27 AND (DSSZY23 OR DSSZY24),C,O,2.5,0),COLORFF2200;
STICKLINE(DSSZY27 AND (DSSZY23 OR DSSZY24),C,O,1.5,0),COLORFF4400;
STICKLINE(DSSZY27 AND (DSSZY23 OR DSSZY24),C,O,0.8,0),COLORFF6600;
STICKLINE(DSSZY27 AND (DSSZY23 OR DSSZY24),C,O,0.1,0),COLORFF8800;
STICKLINE(DSSZY27 AND (DSSZY23 OR DSSZY24),C,O,0.5,0),COLORFFAA00;
IF(寻牛线>=REF(上箱顶,1),寻牛线,DRAWNULL),COLORRED,LINETHICK3;
IF(寻牛线<=REF(上箱顶,1),寻牛线,DRAWNULL),COLORGREEN,LINETHICK3;
IF(牵牛线>=REF(下箱底,1),牵牛线,DRAWNULL),COLORWHITE;
IF(牵牛线>=REF(上箱顶,1),牵牛线,DRAWNULL),COLORWHITE,LINETHICK2;
IF(牵牛线<=REF(下箱底,1),牵牛线,DRAWNULL)DOTLINE,COLORWHITE;
STICKLINE(CROSS(牵牛线,上箱顶) AND CROSS(C,上箱顶),OPEN,CLOSE,2,0),COLOR66EEEE;
STICKLINE(CROSS(牵牛线,上箱顶) AND CROSS(C,上箱顶),OPEN,CLOSE,1,0),COLORMAGENTA;
STICKLINE(CROSS(牵牛线,上箱顶) AND CROSS(C,上箱顶),OPEN,CLOSE,0,1),COLOR8B8BFF;
DRAWTEXT(CROSS(牵牛线,下箱底),下箱底,'↖低位回升'),COLORRED;
DRAWICON(CROSS(牵牛线,下箱底),L*0.99,5);
今涨停:IF(DATE<DSSZY28,ZTPRICE(REF(C,1),IF(CODELIKE('688'),0.2,IF(NAMEINCLUDE('S'),0.05,0.1))),ZTPRICE(REF(C,1),IF(CODELIKE('688') OR CODELIKE('300'),0.2,IF(NAMEINCLUDE('S'),0.05,0.1)))),NODRAW,COLORRED;
今跌停:IF(DATE<DSSZY28,DTPRICE(REF(C,1),IF(CODELIKE('688'),0.2,IF(NAMEINCLUDE('S'),0.05,0.1))),DTPRICE(REF(C,1),IF(CODELIKE('688') OR CODELIKE('300'),0.2,IF(NAMEINCLUDE('S'),0.05,0.1)))),NODRAW,COLORGREEN;
明涨停:IF(DATE<DSSZY28,C*IF(CODELIKE('688'),1.2,IF(NAMEINCLUDE('S'),1.05,1.1)),C*(IF(CODELIKE('688') OR CODELIKE('300'),1.2,IF(NAMEINCLUDE('S'),1.05,1.1)))),NODRAW,COLORMAGENTA;
明跌停:IF(DATE<DSSZY28,C*IF(CODELIKE('688'),0.8,IF(NAMEINCLUDE('S'),0.45,0.9)),C*(IF(CODELIKE('688') OR CODELIKE('300'),0.8,IF(NAMEINCLUDE('S'),0.45,0.9)))),NODRAW,COLORFFFF00;
DRAWICON(第十三只眼,LOW*0.99,7);
DRAWICON(CROSS(C,上箱顶) AND CROSS(C,起飞加速线)AND C>REF(C,1)*1.05,LOW*0.99,25);
代码怎么读(逐段翻译,零基础向)
牵牛线、寻牛线:分别是短期重心和低位参考线。
上箱顶 / 下箱底:把参考线在特定周期的高低点画出来,形成一个"通道"。
DSSZY15 / DSSZY16:识别"涨幅较大的阳线 / 阴线"的辅助条件,用来给 K 线染色(蓝柱强、绿柱弱)。
DRAWTEXT 标注:当短期线穿过下箱底,在低点标「低位回升」;当短期线拐头向下且价格回落,在高点标「高位回落」。——这只是状态提示,不是买卖指令。
今涨停 / 明涨停等:这是用 ZTPRICE 函数计算当日的涨停价、跌停价,方便你看价格离涨跌停还有多远,纯计算、无预测。
四、新手常踩的复制坑
源码编译不通过,大多是因为从公众号复制时出了两个小错:
手机端:"AND" 前后少了空格
电脑端:莫名其妙多了 "?" 符号 补上空格、删掉 "?" 就能通过。
觉得这篇有用的话,点个赞或在看告诉我——想看这类内容的人越多,我就越有动力把「通达信公式从入门到进阶」写成系列。关注我,下一篇接着讲怎么给指标加预警。