在探索数据与趋势的世界里,指标公式就如同神奇的钥匙,能帮我们打开洞察走势的大门。今天,就为大家详细剖析两款超实用的通达信指标公式源码——上突分时优化升级版和交割单照妖镜副图

指标类型 分时指标 适用软件 通达信
适用周期 日线 / 60分钟 未来函数 无未来函数
加密状态 源码未加密,可修改 源码行数 213
公式套数 2 套 包含 上突分时主图(180行) / 交割单照妖镜副图(33行)
一、指标效果截图

效果图 1
效果图 2
效果图 3
效果图 4
效果图 5
效果图 6
效果图 7
效果图 8

二、公式源码
以下源码未加密,复制 → 打开通达信 → Ctrl+F 调出公式管理器 → 新建 → 粘贴 → 测试公式 → 保存即可调用。多套公式请分别新建,名称不要重名。

1. 上突分时主图(主图 · 180 行)

IF(MACD.DEA< 0,CLOSE,DRAWNULL),COLORRED,LINETHICK9;
TOP1:=MAX(DYNAINFO(3),DYNAINFO(5));
TOP2:=MIN(DYNAINFO(3),DYNAINFO(6));
TOP3:=TOP1-TOP2;
TOP4:=TOP2+TOP3*7/8;
TOP5:=TOP2+TOP3*0.5/8;
DRAWICON(LONGCROSS(TOP5,CLOSE,2),CLOSE,1);
DRAWICON(LONGCROSS(CLOSE,TOP4,2),CLOSE,2);
TOP6:=DYNAINFO(4);
TOP7:=DYNAINFO(5);
TOP8:=DYNAINFO(6);
TOP9:=DYNAINFO(11);
TOP10:=CLOSE;
TOP11:=BARSCOUNT(TOP10);
TOP12:=SUM(VOL*CLOSE,0)/SUM(VOL,0);
TOP13:=MA(TOP10,TOP11);
TOP14:=TOP13+2*STD(TOP10,3);
TOP15:=TOP13-2*STD(TOP10,3);
DRAWICON(CROSS(TOP12,TOP13),TOP12,38);
TOP16:=TIME>93000;
TOP17:=TOP10/REF(CLOSE,1)>1.02;
TOP18:=TOP10/REF(CLOSE,1)< 0.98;
TOP19:=(HHV(TOP10,TOP11)-LLV(TOP10,TOP11))/TOP10< 0.05;
TOP20:=SMA(VOL,30,1);
TOP21:=(TOP20-LLV(LLV(TOP20,1),30))/(HHV(HHV(TOP20,1),30)-LLV(LLV(TOP20,1),30))>0.95;
TOP22:=TOP17 OR TOP18;
TOP23:=TOP22=0 AND TOP19 AND TOP21 AND CROSS(TOP12,TOP13);
DRAWTEXT(FILTER(TOP23,10),TOP12,3),COLORYELLOW;
TOP24:=TOP22=0 AND TOP19 AND TOP21 AND CROSS(CLOSE,TOP12) AND CROSS(CLOSE,TOP13);
DRAWTEXT(FILTER(TOP24,10),TOP12*0.99,4),COLORRED;
ZBT1:=VOL/CLOSE/3;
ZBT2:=SUM(IF(ZBT1>0.2 AND CLOSE>REF(CLOSE,1),ZBT1,0),0);
ZBT3:=SUM(IF(ZBT1>0.2 AND CLOSE< REF(CLOSE,1),ZBT1,0),0);
ZBT4:=ZBT2+ZBT3;
ZBT5:=1;
ZBT6:=ZBT2/ZBT3;
ZBT7:=EMA((-100)*(HHV(HIGH,34)-CLOSE)/(HHV(HIGH,34)-LLV(LOW,34)),4)+100;
ZBT8:=MAX(DYNAINFO(3),DYNAINFO(5));
ZBT9:=MIN(DYNAINFO(3),DYNAINFO(6));
ZBT10:=ZBT8-ZBT9;
ZBT11:=ZBT9+ZBT10*7/8;
ZBT12:=ZBT9+ZBT10*0.5/8;
ZBT13:=SUM(CLOSE*VOL,240)/SUM(VOL,240);
ZBT14:=BARSCOUNT(CLOSE);
ZBT15:=MA(CLOSE,ZBT14);
ZBT16:=ZBT15+2*STD(CLOSE,3);
ZBT17:=ZBT15-2*STD(CLOSE,3);
ZBT18:=TIME>93000;
ZBT19:=CLOSE/REF(CLOSE,1)>1.02;
ZBT20:=CLOSE/REF(CLOSE,1)< 0.98;
ZBT21:=(HHV(CLOSE,ZBT14)-LLV(CLOSE,ZBT14))/CLOSE< 0.05;
ZBT22:=SMA(VOL,30,1);
ZBT23:=(ZBT22-LLV(LLV(ZBT22,1),30))/(HHV(HHV(ZBT22,1),30)-LLV(LLV(ZBT22,1),30))>0.95;
ZBT24:=ZBT19 OR ZBT20;
ZBT25:=ZBT24=0 AND ZBT21 AND ZBT23 AND CROSS(ZBT13,ZBT15);
IF(MACD.DEA< 0,CLOSE,DRAWNULL),COLORRED,LINETHICK9;
ZBT26:=SUM(AMOUNT,BARSCOUNT(CLOSE))/SUM(VOL*100,BARSCOUNT(CLOSE));
ZBT27:=EXPMA(CLOSE/ZBT26,20);
ZBT28:=EXPMA(CLOSE/ZBT26,60);
ZBT29:=EXPMA(CLOSE/ZBT26,120);
ZBT30:=1;
ZBT31:=1.03;
ZBT32:=ZBT27>ZBT28 AND ZBT27>1.003 AND ZBT28>ZBT29 AND CLOSE>EXPMA(CLOSE,20) AND EXPMA(CLOSE,10)>EXPMA(CLOSE,20) AND EXPMA(CLOSE,20)>EXPMA(CLOSE,60);
DRAWICON(ZBT27>ZBT28 AND ZBT28>ZBT29 AND CLOSE>EXPMA(CLOSE,20) AND EXPMA(CLOSE,10)>EXPMA(CLOSE,20) AND EXPMA(CLOSE,20)>EXPMA(CLOSE,60) AND ZBT27=HHV(ZBT27,30) AND CROSS(ZBT27,1.003),CLOSE,25);
DRAWICON(CROSS(ZBT27,1.02),CLOSE,24);
DRAWICON(CROSS(ZBT27,1.04),CLOSE,26);
ZBT36:=SUM(IF(CLOSE>REF(CLOSE,1) AND VOL>4000,VOL/1000,0),0);
ZBT37:=SUM(IF(CLOSE< REF(CLOSE,1) AND VOL>4000,VOL/1000,0),0);
ZBT38:=SUM(IF(CLOSE>REF(CLOSE,1),VOL/1000,0),0);
ZBT39:=SUM(IF(CLOSE< REF(CLOSE,1),VOL/1000,0),0);
ZBT40:=ZBT38-ZBT36;
ZBT41:=ZBT39-ZBT37;
ZBT42:=ZBT36;
ZBT43:=ZBT37;
ZBT44:=ZBT40;
ZBT45:=ZBT41;
ZBT46:=ZBT36-ZBT37;
ZBT47:=ZBT40-ZBT41;
ZBT48:=ZBT38-ZBT39;
ZBT49:=CONST(MAX(ABS(ZBT42),MAX(ABS(ZBT43),MAX(ABS(ZBT44),ABS(ZBT45)))));
地:EMA(ZBT13,50)/0.97,COLORGREEN,LINETHICK2;
IF(地>REF(地,1),地,DRAWNULL),COLORRED,LINETHICK2;
平衡线:(ZBT13+地)/2,DOTLINE,COLORGREEN;
ZBT50:=COUNT(VOL>4000 AND CLOSE>REF(CLOSE,1),0);
黄次数:COUNT(VOL>DYNAINFO(16)*10 AND CLOSE>REF(CLOSE,1),0),NODRAW,COLORYELLOW;
DRAWICON(ZBT50>REF(ZBT50,1) AND 黄次数>REF(黄次数,1) AND CROSS(CLOSE,地),CLOSE,7);
DRAWICON(ZBT40>ZBT41 AND ZBT36>ZBT40 AND ZBT41>ZBT37,ZBT13,38);
H1:=MAX(DYNAINFO(3),DYNAINFO(5));
L1:=MIN(DYNAINFO(3),DYNAINFO(6));
P1:=H1-L1;
阻力:L1+P1*7/8,COLORLIMAGENTA,DOTLINE;
支撑:L1+P1*0.5/8,COLORCYAN,DOTLINE;
中:(支撑+阻力)/2,COLORLIGRAY,POINTDOT,LINETHICK2;
均价:SUM(V*C,0)/SUM(V,0),COLORYELLOW,DOTLINE,NODRAW;
现价:CLOSE,COLORWHITE,LINETHICK1,NODRAW;
DRAWTEXT(ISLASTBAR AND 现价,现价,STRCAT('←',CON2STR(现价,2))),COLORYELLOW;
STICKLINE(CROSS(支撑,现价),支撑,中,0,-1),COLORYELLOW;
STICKLINE(CROSS(现价,阻力),阻力,中,0,-1),COLORGREEN;
DRAWTEXT(LONGCROSS(支撑,现价,2),C*0.9982,' 买'),COLORYELLOW;
DRAWTEXT(LONGCROSS(现价,阻力,2),C*1.0018,' 卖'),COLORCYAN,LINETHICK2;
STICKLINE(C< 支撑,支撑,C,1,0),COLORYELLOW;
DRAWICON(CROSS(支撑,现价),(支撑-中)/5+支撑,26);
DRAWICON(CROSS(现价,阻力),阻力-(支撑-中)/5,15);
DRAWTEXT(CURRBARSCOUNT=8,阻力+0.003,'顶'),COLORYELLOW,LINETHICK2;
DRAWTEXT(CURRBARSCOUNT=8,支撑-0.003,'底'),COLORGREEN,LINETHICK2;
DRAWTEXT(CURRBARSCOUNT=8,(支撑+阻力)/2,'中'),COLORLIRED,LINETHICK2;
成交额:=V*C/100,NODRAW;
A2:=SUM((IF(((成交额/8>20) AND (CLOSE>(REF(CLOSE,1)))),成交额,0)),0);
A3:=SUM((IF(((成交额/8>20) AND (CLOSE< (REF(CLOSE,1)))),成交额,0)),0);
A6:=(A2+A3);
A7:=IF((ISLASTBAR),((100*A2)/A6),0);
A8:=IF((ISLASTBAR),((100*A3)/A6),0);
DD1:=1;
好股1:=STRCAT(STRCAT('机构买',CON2STR((100*A2)/A6,0)),'%');
好股2:=STRCAT(STRCAT('机构卖',CON2STR((100*A3)/A6,0)),'%');
好股3:=STRCAT(STRCAT('机构总买入',CON2STR((100*(A2-A3))/A6,0)),'%');
A000:=DRAWTEXT_FIX(DD1=1,0,0.02,0,好股1);
A001:=DRAWTEXT_FIX(DD1=1,0,0.13,0,好股2);
DRAWTEXT_FIX(DD1=1,0.842,1,0,好股3),COLORYELLOW;
现手买:BUYVOL*DYNAINFO(7)*100/10000 COLOR0000FF,NODRAW;
现手卖:SELLVOL*DYNAINFO(7)*100/10000 COLOR00FF00,NODRAW;
合:=ABS(现手买)+ABS(现手卖)COLOR80FFFF,NODRAW;
差:=ABS(现手买)-ABS(现手卖)COLOR80FFFF,NODRAW;
MPB1:=ABS(现手买)/合*100;
MPB2:=ABS(现手卖)/合*100;
TESTSKIP(NOT(现手买 OR 现手卖 OR 合 OR 差 OR MPB1 OR MPB2)!=0);
DRAWTEXT_FIX(1,0.560,0.89,0,STRCAT(STRCAT('',CON2STR(现手买,1)),'万')),COLORRED;
DRAWTEXT_FIX(1,0.800,0.89,0,STRCAT(STRCAT('',CON2STR(现手卖,1)),'万')),COLORGREEN;
DRAWTEXT_FIX(CURRBARSCOUNT=1 AND(差)>0,0.678,0.888,0,STRCAT(' ',STRCAT(CON2STR(差,1),'万'))) COLORRED;
DRAWTEXT_FIX(CURRBARSCOUNT=1 AND(差)< 0,0.678,0.888,0,STRCAT(' ',STRCAT(CON2STR(差,1),'万'))) COLORGREEN,LINETHICK2;
DRAWTEXT_FIX(CURRBARSCOUNT=1 AND(差)=0,0.678,0.888,0,STRCAT(' ',STRCAT(CON2STR(差,1),'万'))) COLOR80FFFF;
DRAWTEXT_FIX(1,0.800,0.98,0,STRCAT(STRCAT(' ',CON2STR(MPB2,1)),'%')),COLORGREEN;
DRAWTEXT_FIX(1,0.560,0.98,0,STRCAT(STRCAT('',CON2STR(MPB1,1)),'%')),COLORRED;
市盈率:=STRCAT('市盈率: ',CON2STR(C/FINANCE(33),2));
市销率:=STRCAT('市销率: ',CON2STR(C/(FINANCE(20)/FINANCE(1)),2));
市净率:=STRCAT('市净率: ',CON2STR(C/FINANCE(34),2));
净资收益率:=STRCAT('净资收益率: ',CON2STR(FINANCE(33)/FINANCE(34)*100,2));
毛利率:=STRCAT('毛利率: ',CON2STR((FINANCE(20)-FINANCE(21))/FINANCE(20)*100,2));
净利润率:=STRCAT('净利润率 ',CON2STR(FINANCE(30)/FINANCE(20)*100,2));
主营利润率:=STRCAT('主营利润率 ',CON2STR(FINANCE(23)/FINANCE(20)*100,2));
利润同比:=STRCAT('利润同比: ',CON2STR(FINANCE(43),2));
收入同比:=STRCAT('收入同比: ',CON2STR(FINANCE(44),2));
X1:=(FINANCE(11)-FINANCE(15))/FINANCE(10)*1.2;
X2:=(FINANCE(31)+FINANCE(17))/FINANCE(10)*1.4;
X3:=FINANCE(23)/FINANCE(10)*3.3;
X4:=FINANCE(19)/FINANCE(15)*0.6;
X5:=FINANCE(20)/FINANCE(15)*0.999;
Z值:=X1+X2+X3+X4+X5;
优质资产率:=STRCAT(' 优质资产率: ',CON2STR((FINANCE(19)-FINANCE(22)-FINANCE(27))/FINANCE(19),2));
现金负债比:=STRCAT(' 现金负债比: ',CON2STR(FINANCE(25)/FINANCE(15),3));
DRAWTEXT_FIX(ISLASTBAR,0.222,0.96,0,财务系数),COLORLIBLUE;
D1:=YEAR AND MONTH AND DAY;
AA1:=STRCAT(CON2STR(YEAR,0),'年');
AA2:=STRCAT(CON2STR(MONTH,0),'月');
AA3:=STRCAT(CON2STR(DAY,0),'日');
AA4:=STRCAT('星期',IF(WEEKDAY=1,'一',IF(WEEKDAY=2,'二',IF(WEEKDAY=3,'三',IF(WEEKDAY=4,'四',IF(WEEKDAY=5,'五',IF(WEEKDAY=6,'六','日')))))));
AA:=STRCAT(STRCAT(STRCAT(AA1,AA2),STRCAT(AA3,AA4)),'');
DRAWTEXT_FIX(D1,0.888,0.001,0,AA),COLORLIGRAY;
MZ0:=(BARSLAST(((HOUR=9) AND (MINUTE=31)))+1);
上穿分时:IF(((SETCODE< 2) AND (CONST(MZ0)< 241)),CONST(IF((TIME< 1000),HHV(CLOSE,0),SUM((IF((TIME=1000),1,0)*HHV(CLOSE,0)),0))),DRAWNULL),LINETHICK2,COLORLIRED;
底支:IF(((SETCODE< 2) AND (CONST(MZ0)< 241)),CONST(IF((TIME< 1000),HHV(CLOSE,0),SUM((IF((TIME=1000),1,0)*LLV(CLOSE,0)),0))),DRAWNULL),LINETHICK2,COLORLIGREEN;
STICKLINE(TIME=931 OR TIME=1000,上穿分时,底支,0,-1),COLORLIBLUE;
DRAWICON(分时上突,C,5);
股价支撑线:=MA(CLOSE,20);
底价线:股价支撑线-2*STD(CLOSE,20),NODRAW,COLORMAGENTA,LINETHICK2;
DRAWTEXT_FIX(ISLASTBAR,0.005,0.05,0,所属板块),COLORWHITE;
DRAWTEXT_FIX(ISLASTBAR,0.005,0.15,0,FGBLOCK),COLORWHITE;
E:=EMA(C,50),COLORRED,LINETHICK2;
开盘:='辅助公式.开盘价#DAY',DOTLINE,COLORWHITE;
DRAWTEXT_FIX(1,0.5,0.87,0,DYBLOCK)COLORMAGENTA;
万手额:=C*100;
DRAWTEXT_FIX(1,0.6,0.87,0,STRCAT('',STRCAT(VAR2STR(万手额,0),'万')))COLORGRAY;
成交额1:=DYNAINFO(10)/100000000;
DRAWTEXT_FIX(1,0.75,0.76,0,STRCAT('额:',STRCAT(VAR2STR(成交额1,2),'亿')))COLORCYAN;
开盘金额:=DYNAINFO(15)/10000;
DRAWTEXT_FIX(1,0.75,0.69,0,STRCAT('开:',STRCAT(VAR2STR(开盘金额,0),'万')))COLORCYAN;
流:=FINANCE(46)*C/100000000;
DRAWTEXT_FIX(1,0.75,0.83,0,STRCAT('流:',STRCAT(VAR2STR(流,2),'亿')))COLORLIGREEN;
换手Z:=成交额1/流*100,NODRAW;
DRAWTEXT_FIX(1,0.75,0.89,0,STRCAT('换:',STRCAT(VAR2STR(换手Z,2),'%')))COLORLIGREEN;

2. 交割单照妖镜副图(副图 · 33 行)

动态周期:=IF(VOL>MA(VOL,5)*2,3,5);
涨跌幅:=LN(CLOSE/REF(CLOSE,1));
背离信号:=洗涨基础>0.6 AND VOL>MA(VOL,5)*1.5 AND CLOSE<OPEN;
STICKLINE(洗涨概率值>0,0,洗涨概率值,2,0),COLORMAGENTA;
STICKLINE(洗跌概率值>0,0,洗跌概率值,2,0),COLORGREEN;
STICKLINE(洗洗基础>0,0,洗洗基础,2,0),COLORYELLOW;
STICKLINE(涨涨基础>0,0,涨涨基础,2,0),COLORRED;
STICKLINE(涨跌基础>0,0,涨跌基础,2,0),COLORCYAN;
STICKLINE(跌涨基础>0,0,跌涨基础,2,0),COLORLIRED;
STICKLINE(跌跌基础>0,0,跌跌基础,2,0),COLORBROWN;
DRAWTEXT_FIX(1,0.85,0.00,0,'┌───────────┐'),COLORWHITE;
DRAWTEXT_FIX(1,0.85,0.10,0,'│ 当前状态概率 │'),COLORWHITE;
DRAWTEXT_FIX(1,0.85,0.20,0,'├───────────┤'),COLORWHITE;
DRAWTEXT_FIX(1,0.85,0.30,0,STRCAT('│洗盘→上涨:', STRCAT(CON2STR(洗涨概率值*100,1), '%│'))),COLORMAGENTA;
DRAWTEXT_FIX(1,0.85,0.40,0,STRCAT('│洗盘→下跌:', STRCAT(CON2STR(洗跌概率值*100,1), '%│'))),COLORGREEN;
DRAWTEXT_FIX(1,0.85,0.50,0,STRCAT('│洗盘→持续:', STRCAT(CON2STR(洗洗基础*100,1), '%│'))),COLORYELLOW;
DRAWTEXT_FIX(1,0.85,0.60,0,STRCAT('│上涨→续涨:', STRCAT(CON2STR(涨涨基础*100,1), '%│'))),COLORRED;
DRAWTEXT_FIX(1,0.85,0.67,0,STRCAT('│上涨→转跌:', STRCAT(CON2STR(涨跌基础*100,1), '%│'))),COLORCYAN;
DRAWTEXT_FIX(1,0.85,0.75,0,STRCAT('│下跌→反转:', STRCAT(CON2STR(跌涨基础*100,1), '%│'))),COLORLIRED;
DRAWTEXT_FIX(1,0.85,0.87,0,'└───────────┘'),COLORWHITE;
DRAWTEXT_FIX(1,0.40,0.02,0,'★ '+当前形态+' | '+实时状态+' ★'),COLORWHITE;
DRAWICON(买点信号,LOW*0.98,1);
DRAWICON(卖点信号,HIGH*1.02,2);
DRAWTEXT_FIX(1,0.05,0.10,0,'洗涨→涨'),COLORMAGENTA;
DRAWTEXT_FIX(1,0.05,0.15,0,'洗跌→跌'),COLORGREEN;
DRAWTEXT_FIX(1,0.05,0.20,0,'洗洗→持'),COLORYELLOW;
DRAWTEXT_FIX(1,0.05,0.25,0,'涨涨→涨'),COLORRED;
DRAWTEXT_FIX(1,0.05,0.30,0,'涨跌→跌'),COLORCYAN;
DRAWTEXT_FIX(1,0.05,0.35,0,'涨洗→持'),COLORBLUE;
DRAWTEXT_FIX(1,0.05,0.40,0,'跌涨→涨'),COLORLIRED;
DRAWTEXT_FIX(1,0.05,0.45,0,'跌跌→跌'),COLORBROWN;
DRAWTEXT_FIX(1,0.05,0.50,0,'跌洗→持'),COLORGRAY;
DRAWTEXT_FIX(1,0.40,0.02,0,STRCAT('★ 当前主导形态: ', STRCAT(当前形态, ' ★'))),COLORWHITE;

三、安装与调用
通达信客户端按 Ctrl + F 打开「公式管理器」。
选中对应分组(技术指标公式 → 其他类型 / 条件选股公式),点「新建」。
公式名称填英文或拼音(不含空格、不超过 10 个字符),把源码粘进编辑区。
点「测试公式」,提示编译通过后「确定」保存。
K 线图界面输入公式名称调出;选股公式在「条件选股」里执行。
四、使用提醒
指标本质是把价格与成交量做数学加工,用来辅助判断趋势和买卖时机,不能预测未来。任何公式都有失效区间,请结合大盘环境、板块节奏与仓位管理使用。本文源码仅供学习研究,不构成投资建议。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。