指标源码
N8:=STRCAT(CON2STR(YEAR,0),' 年 ');
Y8:=STRCAT(CON2STR(MONTH,0),' 月 ');
R8:=STRCAT(CON2STR(DAY,0),' 日 ');
MA13:MA(C,13),COLOR0066FF,LINETHICK2;
STICKLINE(C>MA13,L,H,0,0),COLORRED;
STICKLINE(C>MA13,O,C,3,0),COLOR000088;
STICKLINE(C>MA13,O,C,2,0),COLOR0000AA;
STICKLINE(C>MA13,O,C,0.1,0),COLOR0000CC;
STICKLINE(C>MA13,O,C,0,0),COLOR0000FF;
BIAS1:=MA((C-MA(C,13))/MA(C,13),3)*100,COLORWHITE,LINETHICK0;
BIAS3:=MA((C-MA(C,34))/MA(C,34),3)*100,COLORFF00FF,LINETHICK0;
关注区:=COUNT(BIAS3<0,8)>=8 AND COUNT(BIAS3>0,34)>13 AND COUNT(BIAS3<0,55)>30 OR BIAS3<-15,LINETHICK0;
STICKLINE(关注区,C,O,3,0),COLOR8977FF;
STICKLINE(关注区,L,H,0,0),COLOR8977FF;
SJ8:=STRCAT(STRCAT(N8,Y8), R8);
LC:=REF(C,1),LINETHICK0;
RSI:=((SMA(MAX((C-LC),0),13,1)/SMA(ABS((C-LC)),13,1))*100);
STICKLINE((RSI<20),L,H,0.1,0),COLORFF6600;
STICKLINE((RSI<20),O,C,8,0),COLORCC5000;
DRAWTEXT(CROSS(RSI,20-0.0005),L*0.97,'短线'),COLORAA99AA;
STICKLINE(CROSS(RSI,20-0.0005),C,O,3,0),COLOR888888;
STICKLINE(CROSS(RSI,20-0.0005),C,O,2,0),COLORAAAAAA;
STICKLINE(CROSS(RSI,20-0.0005),C,O,1,0),COLORCCCCCC;
STICKLINE(CROSS(RSI,20-0.0005),C,O,0.1,0),COLORFFFFFF;
STICKLINE(CROSS(RSI,20-0.0005),L,H,0,0),COLORFFFFFF;
RSV:=(((C-LLV(L,9))/(HHV(H,9)-LLV(L,9)))*100);
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
NB:=((C>LC) AND C>O);
KK:=HHV(K,5);
DD:=HHV(D,5);
D1:=REF(D,1);
K1:=REF(K,1);
STICKLINE(((DD>75) AND CROSS(D,K)),C,O,3,0),COLOR008800;
STICKLINE(((DD>75) AND CROSS(D,K)),C,O,2,0),COLOR00AA00;
STICKLINE(((DD>75) AND CROSS(D,K)),C,O,1,0),COLOR00CC00;
STICKLINE(((DD>75) AND CROSS(D,K)),C,O,0.1,0),COLOR00FF00;
STICKLINE(((DD>75) AND CROSS(D,K)),L,H,0,0),COLOR00FF00;
STICKLINE((((D1<30) AND CROSS(K,D)) AND NB),C,O,3,0),COLOR0011FF;
STICKLINE((((D1<30) AND CROSS(K,D)) AND NB),C,O,2,0),COLOR0044FF;
STICKLINE((((D1<30) AND CROSS(K,D)) AND NB),C,O,1,0),COLOR0077FF;
STICKLINE((((D1<30) AND CROSS(K,D)) AND NB),C,O,0.1,0),COLOR0099FF;
STICKLINE((((D1<30) AND CROSS(K,D)) AND NB),L,H,0,0),COLOR0099FF;
DRAWTEXT_FIX(C>0,0.5,0,0,SJ8),COLOR00FFFF;
DRAWBMP((((D1<30) AND CROSS(K,D)) AND NB),L*0.99,'BUY1'),COLORFFAAFF;
DRAWBMP(((DD>75) AND CROSS(D,K)),H*1.03,'SELL1'),COLOR00CC00;
QN1:=MA(C,13);
QN:=ATAN((QN1-REF(QN1,1)))*180/2;
STICKLINE(QN>1 AND QN1>REF(QN1,1),QN1,REF(QN1,1),5,0),COLOR00FFFF;
STICKLINE(QN<1 AND QN1<REF(QN1,1),QN1,REF(QN1,1),5,1),COLORGREEN;
QN2:=MA(C,21);
QN3:=ATAN((QN2-REF(QN2,1)))*180/2;
STICKLINE(QN3>1,QN2,REF(QN2,1),5,0),COLORFF00FF;
STICKLINE(QN3<1,QN2,REF(QN2,1),5,1),COLORFF0000;
HH0:=CONST(HHV(H,120))*1;
LL0:=CONST(LLV(L,120))*1;
MM0:=CONST((HH0+LL0)/2);
HH1:=IF(CONST(C)<MM0,LL0-(HH0-LL0)*0.4,LL0-(HH0-LL0)*0.4),COLORRED;
LL1:=LL0;
HLMAX:=MAX(HH1,LL1);
HLMIN:=MIN(HH1,LL1);
HLMN1:=(HLMAX+HLMIN)/2;
HLMN2:=(HLMAX-HLMIN);
HLMN3:=HHV(V,250)/2;
HLMN4:=HHV(V,250);
VZ:=(V-HLMN3)*HLMN2/HLMN4+HLMN1;
预测量:IF(CURRBARSCOUNT=1 AND PERIOD=5,VOL*240/FROMOPEN,VOL),COLORFF00FF,NODRAW;
STICKLINE(CURRBARSCOUNT=1 AND PERIOD=5,(0-HLMN3)*HLMN2/HLMN4+HLMN1,(预测量-HLMN3)*HLMN2/HLMN4+HLMN1,2,-1),COLORLIGRAY;
STICKLINE(C>=O,VZ,(0-HLMN3)*HLMN2/HLMN4+HLMN1,1,1),COLOR000099;
STICKLINE(C<O,VZ,(0-HLMN3)*HLMN2/HLMN4+HLMN1,1,0),COLOR999900;
今日保护价:(REF(C,2)+REF(C,1)+O)/3,COLOR00FFFF,NODRAW;
顶点:IF(CURRBARSCOUNT<=60,CONST(IF(ISLASTBAR=1,HHV(H,BARSLAST(CURRBARSCOUNT=60)),1)),DRAWNULL),COLORRED,DOTLINE;
低点:IF(CURRBARSCOUNT<=60,CONST(IF(ISLASTBAR=1,LLV(L,BARSLAST(CURRBARSCOUNT=60)),1)),DRAWNULL),COLORMAGENTA,DOTLINE;
STICKLINE(CCI>=200 AND H>=顶点,O,C,3,0),COLORBLUE;
STICKLINE(CCI<=100 AND L<=低点,O,C,3,0),COLORYELLOW;
DRAWTEXT(ISLASTBAR,顶点,'顶点'),COLORRED;
DRAWTEXT(ISLASTBAR,低点,'低点'),COLORMAGENTA;
A:=(3*C+L+O+H)/6;
X:=(20*A+19*REF(A,1)+18*REF(A,2)+17*REF(A,3)+16*REF(A,4)+15*REF(A,5)+14*REF(A,6)+13*REF(A,7)+12*REF(A,8)+11*REF(A,9)+10*REF(A,10)+9*REF(A,11)+8*REF(A,12)+7*REF(A,13)+6*REF(A,14)+5*REF(A,15)+4*REF(A,16)+3*REF(A,17)+2*REF(A,18)+REF(A,20))/210;
主力成本:EMA(X,13),COLORFF00FF,LINETHICK0;
一、整体结构概述
这段源码是 通达信“傻瓜操盘主图指标” TDX00492。它把 均线、BIAS、RSI、KDJ、CCI、成交量(预测量)以及主力成本 等多种技术指标综合到同一张主图上,并在满足特定条件时通过 文字、颜色、BMP 图标 给出买入、卖出、关注区、短线等信号。下面逐段说明其作用及原理。
二、代码逐段解析
| 代码行 | 含义与实现 | 关键参数/变量 |
|---|---|---|
N8:=STRCAT(CON2STR(YEAR,0),' 年 ');Y8:=STRCAT(CON2STR(MONTH,0),' 月 ');R8:=STRCAT(CON2STR(DAY,0),' 日 '); |
把当前日期的 年、月、日 拼接成字符串,供后面在图上显示。 | YEAR,MONTH,DAY 为系统变量 |
MA13:MA(C,13),COLOR0066FF,LINETHICK2; |
13日简单均线(收盘价的 13 日均值),用蓝紫色(COLOR0066FF)绘制,线宽 2。 |
MA(C,13) |
STICKLINE(C>MA13,…) |
当收盘价在 13 日均线上方时,用 红色系(从深红到亮红共 5 层)绘制 K 线 的 上影线、实体、下影线,形成 “红 K”。 | C>MA13 为条件 |
BIAS1:=MA((C-MA(C,13))/MA(C,13),3)*100,COLORWHITE,LINETHICK0;BIAS3:=MA((C-MA(C,34))/MA(C,34),3)*100,COLORFF00FF,LINETHICK0; |
BIAS(乖离率): ① BIAS1 为 收盘价相对 13 日均线的 3 日均值,白色。 ② BIAS3 为 收盘价相对 34 日均线的 3 日均值,紫红色。 |
BIAS1,BIAS3 常用于判断 超买超卖。 |
关注区:=COUNT(BIAS3<0,8)>=8 AND COUNT(BIAS3>0,34)>13 AND COUNT(BIAS3<0,55)>30 OR BIAS3<-15,LINETHICK0; |
关注区 的判定条件: • 最近 8 天里 BIAS3 连续负(即价格在 34 日均线之下)≥8 天; • 过去 34 天中 BIAS3 为正 的天数 >13 天; • 过去 55 天中 BIAS3 为负 的天数 >30 天; • 或者 BIAS3 低于 -15(极端负乖离)。满足任一条件即形成 紫色 的“关注区”。 |
COUNT 计数函数 |
STICKLINE(关注区,…) |
关注区出现时,用 紫色(COLOR8977FF)绘制 K 线实体及上下影线,提示潜在的反转或整理区间。 |
|
SJ8:=STRCAT(STRCAT(N8,Y8), R8); |
拼接完整日期字符串 “YYYY 年 MM 月 DD 日”。 | |
LC:=REF(C,1),LINETHICK0; |
前一天的收盘价 LC,用于后续 RSI、KDJ 等计算。 |
|
RSI:=((SMA(MAX((C-LC),0),13,1)/SMA(ABS((C-LC)),13,1))*100); |
13 日 RSI(Relative Strength Index)——经典的超买超卖指标。 | SMA 为平滑移动平均 |
STICKLINE((RSI<20),…) |
当 RSI < 20 时,用 橙色(COLORFF6600)在 K 线上下影线处绘制细条,表示 超卖。 |
|
DRAWTEXT(CROSS(RSI,20-0.0005),L*0.97,'短线'),COLORAA99AA; |
当 RSI 上穿 20(CROSS(RSI,20-0.0005)),在 最低价 下方 3% 处写 “短线”,提示 短期反弹。 |
|
STICKLINE(CROSS(RSI,20-0.0005),…) |
RSI 上穿 20 时,用 灰-白(从深灰到亮白)绘制 K 线实体,形成 “金针” 形态。 | |
RSV:=(((C-LLV(L,9))/(HHV(H,9)-LLV(L,9)))*100);K:=SMA(RSV,3,1);D:=SMA(K,3,1); |
KDJ 指标(9 日 RSV → K → D),这里使用 3‑日 平滑。 | LLV,HHV 为最近 9 日最低/最高价 |
NB:=((C>LC) AND C>O); |
NB(Narrow Body)定义:收盘价高于昨日收盘且 收阳线(C>O),用于过滤买入信号。 |
|
KK:=HHV(K,5);DD:=HHV(D,5); |
最近 5 天 K、D 的最高值,用来判断 KDJ 的高位死叉(即 卖出)信号。 | |
D1:=REF(D,1);K1:=REF(K,1); |
前一天的 D、K 值,用于 交叉判断。 | |
STICKLINE(((DD>75) AND CROSS(D,K)),…) |
当 D>75(已处于 超买 区域)且 D 下穿 K(死叉),绘制 绿色(COLOR00FF00)的 卖出 K 线,提示 做空。 |
|
STICKLINE((((D1<30) AND CROSS(K,D)) AND NB),…) |
条件:前一日 D<30(超卖)且 K 上穿 D(金叉)并且 NB(收阳),绘制 蓝色(COLOR0099FF)的 买入 K 线,提示 做多。 |
|
DRAWBMP((((D1<30) AND CROSS(K,D)) AND NB),L*0.99,'BUY1'),COLORFFAAFF;DRAWBMP(((DD>75) AND CROSS(D,K)),H*1.03,'SELL1'),COLOR00CC00; |
当出现买入/卖出信号时,在 最低价(买入)或 最高价(卖出)位置显示 BMP 图标(需要提前在通达信目录下放置 BUY1.bmp、SELL1.bmp)。 |
|
QN1:=MA(C,13);QN:=ATAN((QN1-REF(QN1,1)))*180/2; |
均线角度:13 日均线的 角度(度),用于判断 趋势的倾斜程度。ATAN 返回弧度,乘以 180/π 转化为度,再除以 2 只是把刻度放大,便于绘图。 |
|
STICKLINE(QN>1 AND QN1>REF(QN1,1),…) |
当 均线向上倾斜(角度 >1° 且均线上升)时,用 黄色(COLOR00FFFF)绘制 角度线(从上一根均线位置画到当前均线),提示 上升趋势。 |
|
STICKLINE(QN<1 AND QN1<REF(QN1,1),…) |
当 均线向下倾斜(角度 <1° 且均线下降)时,用 绿色 绘制下降角度线。 | |
QN2:=MA(C,21);QN3:=ATAN((QN2-REF(QN2,1)))*180/2; |
同理,21 日均线 的角度,用 紫红(COLORFF00FF)和 红色(COLORFF0000)分别表示上升/下降。 |
|
HH0:=CONST(HHV(H,120))*1;LL0:=CONST(LLV(L,120))*1; |
120 日(约半年)最高价 HH0、最低价 LL0,用于后面 成交量比例 的比例尺。 |
|
MM0:=CONST((HH0+LL0)/2); |
中轴,未直接使用,仅作参考。 | |
HLMAX,HLMIN,HLMN1,HLMN2,HLMN3,HLMN4 |
用来把 成交量 映射到 K 线图下方 的垂直坐标,形成 成交量柱状图(类似分时图的成交量)。HLMN3 = HHV(V,250)/2 为 250 天最高成交量的一半,用于 比例。 |
|
VZ:=(V-HLMN3)*HLMN2/HLMN4+HLMN1; |
把 成交量(V)转化为在图上显示的 垂直坐标。 |
|
预测量:IF(CURRBARSCOUNT=1 AND PERIOD=5,VOL*240/FROMOPEN,VOL),COLORFF00FF,NODRAW; |
预测量:在 5 分钟周期(PERIOD=5)且 当日第一根 K 线(CURRBARSCOUNT=1)时,用 当日成交量 × 240 / 开盘分钟数 估算全日成交量;其它情况直接使用 VOL。 |
FROMOPEN 为当日已过去的分钟数 |
STICKLINE(CURRBARSCOUNT=1 AND PERIOD=5,…) |
在 5 分钟周期的第一根 K 线处绘制 灰紫色 的预测成交量柱。 | |
STICKLINE(C>=O,VZ,(0-HLMN3)*….,1,1),COLOR000099;STICKLINE(C<O,VZ,(0-HLMN3)*….,1,0),COLOR999900; |
成交量柱的颜色: • 收阳线( C>=O)→ 蓝色(COLOR000099)• 收阴线( C<O)→ 暗黄色(COLOR999900) |
|
今日保护价:(REF(C,2)+REF(C,1)+O)/3,COLOR00FFFF,NODRAW; |
今日保护价 =(前天收盘 + 昨天收盘 + 今日开盘)÷3,作为 短期支撑/阻力 参考,只在图上显示数值,不画线。 | |
顶点:IF(CURRBARSCOUNT<=60,CONST(IF(ISLASTBAR=1,HHV(H,BARSLAST(CURRBARSCOUNT=60)),1)),DRAWNULL),COLORRED,DOTLINE;低点:… |
顶点、低点:在最近 60 根 K 线 内,找出 最高价 与 最低价,用 红色点线 标记,供 CCI 判定使用。 | |
STICKLINE(CCI>=200 AND H>=顶点,O,C,3,0),COLORBLUE;STICKLINE(CCI<=100 AND L<=低点,O,C,3,0),COLORYELLOW; |
CCI(Commodity Channel Index)≥200 且 最高价≥顶点 时,K 线整体 蓝色(强势上涨),提示 可能进入超买; CCI≤100 且 最低价≤低点 时,K 线整体 黄色(弱势下跌),提示 可能进入超卖。 |
|
A:=(3*C+L+O+H)/6;X:=(20*A+19*REF(A,1)+…+REF(A,20))/210; |
加权均价(6 个因素的加权平均),再用 210 日加权移动平均(类似 EMA)得到 X,用于计算 主力成本。 | |
主力成本:EMA(X,13),COLORFF00FF,LINETHICK0; |
主力成本:对 X 做 13 日指数移动平均,用紫红色绘制(在主图上为 细线),反映 机构/主力资金的平均持仓成本。 |
小结:该指标把 均线、乖离率、RSI、KDJ、CCI、成交量、主力成本 等七大类技术指标融合在一起,形成 “趋势 + 买卖点 + 成交量 + 主力成本” 的完整主图信号体系。
三、信号说明(使用技巧)
| 信号 | 触发条件 | 颜色/形态 | 含义(仅作技术参考) |
|---|---|---|---|
| 关注区 | 关注区=1(见上文公式) |
紫色实体+影线 | 股价在 34 日均线 下方持续弱势,可能出现 反弹或整理。 |
| 短线 | RSI 上穿 20(CROSS(RSI,20-0.0005)) |
“短线”文字 + 金针(灰白) | RSI 进入 20 以下 超卖区后回升,提示 短期反弹。 |
| 买入 | D1<30(前一日 D<30)且 CROSS(K,D) 且 NB(收阳) |
蓝色 K 线 + BUY1 BMP |
KDJ 超卖金叉 + 收阳,视为 短线买入 信号。 |
| 卖出 | DD>75(D>75)且 CROSS(D,K) |
绿色 K 线 + SELL1 BMP |
KDJ 超买死叉,提示 短线卖出。 |
| CCI 超买 | CCI>=200 且 H>=顶点 |
蓝色 K 线整体 | CCI 极端超买,可能进入 快速拉升(慎追)。 |
| CCI 超卖 | CCI<=100 且 L<=低点 |
黄色 K 线整体 | CCI 极端超卖,可能进入 快速下跌(慎空)。 |
| 均线角度 | QN>1(上升角度)QN3>1(21 日均线上倾) |
黄/紫红角度线 | 提示 均线呈上升趋势,可作为 趋势过滤。 |
| 主力成本 | 主力成本(EMA(X,13)) |
紫红细线 | 机构/主力的 平均持仓成本,若价格 上穿 可视为 中线走强,若 下穿 则需警惕。 |
| 顶点/低点 | 最近 60 根 K 线的最高/最低价 | 红点线 | 作为 CCI 判定的参考价。 |
| 预测量 | 5 分钟周期的第一根 K 线 | 灰紫色柱 | 预估 当日总成交量,帮助判断 日内成交量是否异常。 |
| 今日保护价 | 每天计算一次 | 仅数值显示(无图形) | 短期 支撑/阻力,可用于 止损/止盈 参考。 |
注意:以上所有 “买入/卖出” 信号均为 技术面 的量化条件,并不构成 买卖建议。实际使用时,请结合 基本面、板块热点、仓位管理 以及 个人风险偏好 做出决策。
四、使用方法(在通达信软件中)
- 打开通达信 → 进入 “公式管理器”(快捷键
F3→公式管理器)。 - 新建指标
- 点击 “新建”,选择 “主图指标”(因为代码里用了
MA13、STICKLINE等主图绘图函数)。 - 给指标起个名字,例如 “TDX00492 傻瓜操盘”。
- 点击 “新建”,选择 “主图指标”(因为代码里用了
- 粘贴源码
- 将上文的全部源码复制、粘贴到 “源码” 文本框中。
- 检查是否有语法错误(通达信会在底部提示错误信息),如有错误请确认是否漏掉 “;”、括号不匹配等。
- 编译 → 保存。
- 加载到行情图
- 在任意股票的 K 线图(建议使用 日线 或 5 分钟)上右键 → “叠加指标” → 找到 “TDX00492 傻瓜操盘” 并确认。
- 指标会直接在主图上绘制均线、颜色块、文字、BMP 图标以及成交量柱。
- 自定义设置(可选)
- 右键点击指标名称 → “指标属性” → 可以调整 线型、颜色、是否显示 等。
- 如果不想显示 BMP(因为需要提前准备
BUY1.bmp、SELL1.bmp),可以在代码中把对应的DRAWBMP行删除或注释掉。 - 若想只在 5 分钟 周期显示 预测量,保留
PERIOD=5的判断即可;在其它周期该部分会自动隐藏。
温馨提示
- BMP 图标:默认代码引用
'BUY1'、'SELL1'两个位图。请在通达信安装目录下的 “Bmp” 文件夹(或自定义的图片路径)中放入BUY1.bmp(买入箭头)和SELL1.bmp(卖出箭头),否则会显示 “?”。- 运行速度:该指标一次性计算了 RSI、KDJ、CCI、均线角度、成交量比例 等多组数据,若在 1 分钟 或 tick 级别使用,可能会导致卡顿。建议在 日线及以上 或 5/15/30 分钟 周期使用。
- 复盘:可以在 “历史回忆” 模式下打开该指标,查看历史上出现的 买入/卖出/关注区 是否符合个人的交易系统,以作参考。
五、风险提示与使用建议
- 仅作技术参考:该指标提供的买入/卖出信号是 历史统计 的 技术形态,不保证未来一定有效。
- 综合判断:建议把 TDX00492 与 均线多头/空头排列、成交量放大、板块热点 等因素结合,形成 “趋势 + 动量 + 成交量 + 主力成本” 四维过滤。
- 仓位管理:即使是“短线”或“超买/超卖”信号,也要根据 止损/止盈 规则控制仓位,避免单笔交易亏损过大。
- 回测验证:在 “通达信回测系统” 或 “Python/Zipline” 中对 TDX00492 的信号进行 历史回测,统计 胜率、盈亏比、最大回撤 等指标,再决定是否实盘使用。
- 避免盲目追逐:CCI≥200、RSI<20、KDJ 超买/超卖 均属于 极端信号,往往伴随 大幅波动,请务必配合 大势、行业 判断,慎用追涨杀跌。
六、结语
- TDX00492 把 均线、BIAS、RSI、KDJ、CCI、成交量、主力成本 等多种常用技术指标集于一身,形成 “一条线 + 颜色块 + 文字 + 图标” 的完整主图信号体系。
- 熟悉每一段代码的含义后,你可以在 通达信 中轻松 加载、修改 这套指标,甚至把它 改编为符合自己交易系统 的版本(例如加入 MACD、布林带、止损线 等)。
- 使用时请始终保持 风险意识,做好 仓位、止损 的规划,切勿把单一指标作为唯一的买卖依据。祝你在技术分析的路上交易顺利、收益稳健!