简介:一份通达信指标公式源码解读文档,面向股票技术分析爱好者、通达信软件用户及波段操作者。资源从公式核心变量N=15切入,逐段拆解DMH、DML等计算逻辑,说明“量”强弱指标的构建方式,并辅以指标线颜色、线条样式及具体用法注释,帮助读者理解如何用该指标捕捉抄底逃顶信号、识别背离清仓时机。文档强调“无未来、不漂移”,信号稳定,适合没有时间盯盘、偏好稳妥波段操作的用户参考。资源包共1个doc文件,大小515KB,内容紧凑,便于对照软件逐行学习。目前已有2608人学习/下载。通过这份解读,读者可以快速掌握指标公式的每段含义,理解0.8、0.2等阈值线与吸筹出货信号的关系,学会在量线下穿0.8且与股价背离时清仓规避风险;即使不熟悉公式编写,也能按文档说明直接用于实战筛选。
1. “无未来、不漂移”的抄底逃顶指标,值钱的不是买卖点
复盘时信号一个不差,实盘一买就套,这是绝大多数“神指标”的通病。病根往往不在买卖逻辑,而在公式里偷藏了未来函数——那些看似精准的底部和顶部,是行情走出来之后由软件“补画”上去的。标题里的“无未来,不漂移”六个字,才是一套通达信指标公式真正该较真的地方:信号一旦画在K线上,不管后面怎么走,不消失、不挪位、不新增。
这篇文章要解决三件事:怎么识别拖了后腿的未来函数;怎么用通达信公式语言写一套“三层确认”的抄底逃顶主图指标;以及实盘前用什么方法验证信号确实不漂移。适合被“信号消失”坑过的老股民,也适合刚想写自己第一套买卖公式、但还分不清 ZIG 和 REF 区别的新手。
2. 先看清“未来函数”和“漂移”:通达信公式里谁在作弊
2.1 未来函数是怎么做到“事后精准”的
通达信公式是逐根K线顺序计算的,正常情况下,第 N 根K线只能用第 N 根及之前的数据。未来函数做的事,是让第 N 根K线“看到”后面第 N+5 根、第 N+30 根才有的数据。这样一来,历史底部自然画得又准又漂亮——因为它不是预测出来的,是事后填进去的。
漂移是未来函数的外在表现。用带未来函数的公式看盘,信号会随着新K线出现而改变:昨天还标着的底部图标,今天收盘后就消失了,或者往后挪了两根K线。真正的实战指标必须先过这一关:同一个位置,今天看是这个信号,一个月后回看还是这个信号。做不到这点,后面的抄底逃顶逻辑再好也白搭。
2.2 通达信里最常见的四个作弊函数
以下四个函数是未来函数重灾区,也是指标源码里最常被藏起来的“猫腻”:
| 函数 | 中文名 | 作弊方式 | 常见伪装 |
|---|---|---|---|
| ZIG | 之字转向 | 按给定幅度向后确认转折点,绘制时会重绘历史 | 波浪理论、波段高低点 |
| PEAK / TROUGH | 前M个波峰/波谷 | 引用未来K线确认的峰谷值 | 压力支撑、顶底背离 |
| BACKSET | 向前赋值 | 把当前结果赋值给过去K线,历史信号整体后移 | 板块轮动标记、条件统计 |
| TROUGHBARS / PEAKBARS | 波峰波谷位置 | 返回未来才能确认的位置序号 | 距底部N天之类的描述 |
很多号称“主力追踪”的指标源码,本质就是 ZIG 套上均线再画几个图标。复盘看主力每次都抄在最低点,实盘里那个点根本不会出现。判断一个源码有没有问题,直接在公式编辑器里搜索有没有上述函数名,是最快的筛选方式。通达信公式管理器 6.06 之后的版本编译时会给出未来函数提示,但只提示直接调用的情况,嵌套在自定义函数里的检测不到。
2.3 隐蔽的漂移:XMA 和未收盘数据
比 ZIG 更隐蔽的是 XMA。XMA 是经过平滑的移动平均,它的当前值会包含未来若干周期的数据,因此每一根 K 线上的 XMA 值都会随行情推进而改变。用 XMA 画出来的均线,昨天看是金叉,今天回看那个金叉可能没有了。这是新手最容易踩的坑:从网上找的源码,看起来全是最普通的均线交叉,其实把 MA 换成 XMA,信号会整体重绘。
另一种隐蔽情况是引用未收盘数据。在日线周期里用 DYNAINFO(7)(实时价格)参与计算,盘中信号和收盘后信号就会不同。这类指标在 14:55 看的信号,收盘后回看可能完全不是一回事。真正的不漂移,必须让公式只依赖已经确认的收盘价、成交量这些静态数据。
2.4 不写代码也能验证漂移的笨办法
不用看懂每一行源码,也能判断一套公式是否干净。找一只波动大的股票,加载指标后用右键“标记”当前最新的一个买入信号,然后快进 20 到 30 根K线(切到更大周期或直接翻页)。回看刚才标记的位置:信号还在,说明大概率没用未来函数;信号消失、挪位,或者又冒出来两个新信号,基本可以判定是垃圾指标。
这个办法的局限在于只能抽查,不能做系统性验证。要系统验证,就得用第 4 章的“双版本对照法”。先把理论基础打牢,下一步是动手写一套干净的无未来指标。
3. 手写一套“触底—反转—看多”三层确认的抄底逃顶指标
3.1 为什么是三层信号,而不是一个买卖点
“傻瓜操作”不等于只画一个买卖点——那是把风险藏起来的做法。真正能用起来的信号,应该能区分三种行情状态:进入超卖区(触底)、出现反转K线(反转)、站回趋势线(看多)。这三种状态对应三个操作含义:触底是预警,反转是试探,看多才是加仓依据。把三者分开画在图上,新手也能看懂当前处于哪个阶段。
逃顶方向同理:超买区、转折阴线、跌破均线,三者递进。这套结构和热词里常刷到的“三步点睛(触底 反转 看多)指标”思路一致,但实现上全部用 REF 锁定确认条件,保证信号画出来就不再变动。
3.2 完整通达信源码:主图叠加直接用
打开通达信公式管理器,新建一个“主图叠加”公式,命名为“无漂移抄底逃顶”,粘贴以下源码:
{N: 参数,默认14,可调} N:=14; RSI6:=SMA(MAX(CLOSE-REF(CLOSE,1),0),6,1)/SMA(ABS(CLOSE-REF(CLOSE,1)),6,1)*100; MA14:=MA(CLOSE,N); 乖离率:=(CLOSE-MA14)/MA14*100; {第一层:触底——RSI与乖离率共振进入超卖区} 超卖区:=RSI6<20 AND 乖离率<-8; {第二层:反转——超卖区之后出现阳线确认} 转折阳线:=超卖区 AND CLOSE>OPEN AND REF(超卖区,1); {第三层:看多——收盘站上14日均线} 站上均线:=CLOSE>MA14 AND REF(CLOSE,1)<=REF(MA14,1); 转向看多:=REF(转折阳线,1) AND 站上均线; {逃顶三层} 超买区:=RSI6>80 AND 乖离率>8; 转折阴线:=超买区 AND CLOSE<OPEN AND REF(超买区,1); 跌破均线:=CLOSE<MA14 AND REF(CLOSE,1)>=REF(MA14,1); 转向看空:=REF(转折阴线,1) AND 跌破均线; {绘图} STICKLINE(超卖区,LOW*0.985,LOW*0.995,2,0),COLORBLUE; STICKLINE(超买区,HIGH*1.005,HIGH*1.015,2,0),COLORYELLOW; DRAWICON(转折阳线,LOW*0.975,1); DRAWICON(转折阴线,HIGH*1.025,2); DRAWICON(转向看多,LOW*0.965,3); DRAWICON(转向看空,HIGH*1.035,4);3.3 逐段说明:每个函数解决什么问题
第一段是参数和基础计算。N:=14是周期参数,控制均线周期;SMA(X,6,1)是通达信标准的 RSI 平滑算法,第一参数MAX(CLOSE-REF(CLOSE,1),0)取当日上涨幅度,分母取当日真实波幅,两者比值就是 RSI 的原始含义——过去 6 天里上涨力量占全部波动的比例。这里用的 RSI6 比常见 RSI14 更敏感,适合抄底逃顶这种偏向于抓转折点的场景。
乖离率:=(CLOSE-MA14)/MA14*100衡量收盘价偏离均线的百分比。RSI 负责看短期动能,乖离率负责看价格偏离,两者同时进入极值区,才判定超卖或超买,避免单一指标在震荡市里频繁触发。
第二段是三个判定条件。超卖区是一个布尔值(结果为 1 或 0),真正的信号看转折阳线:它要求当前是阳线,且上一根K线处于超卖区。注意REF(超卖区,1)这个写法——它把“确认”推迟了一根K线,换来的是信号不会再变。如果删掉 REF,改成“超卖区 AND CLOSE>OPEN”,那么盘中出现阳线时信号就画出来了,但收盘前价格回落取消阳线形态,信号就会消失,这就是最常见的盘中漂移。
第三段的绘图部分,STICKLINE把超卖区画成蓝色柱状,超买区画成黄色柱状,起预警作用;DRAWICON在确认信号的位置画数字图标。图标编号 1 到 4 对应底部反转、顶部反转、转多、转空,含义直接看图例。LOW*0.975这类写法只是把图标放在K线下方 2.5% 的位置,避免遮挡K线实体。
3.4 为什么这套信号天然不漂移
核心只有一点:所有判断条件都只能引用当前周期及之前已确认的行情数据。REF引用的是上一根K线的值,MA、SMA是顺序计算的历史平均值,CLOSE、OPEN、HIGH、LOW、VOL是静态行情,不存在任何“事后才知道”的分量。
对比上一节提到的 ZIG 和 XMA,这套代码里一个都没用。转折阳线一旦出现,它在历史K线上的位置取决于超卖区的位置,而超卖区取决于 RSI 和乖离率,这两个指标在收盘后是定值。后续行情无论怎么走,都不会反过来修改已经确定的 RSI 数值,所以信号位置被“焊死”了。这也解释了为什么很多源码作者不愿意公开这种写法——信号少、位置固定,没有“复盘精美”的滤镜。
指标的关键参数总结如下:
| 参数 | 默认值 | 调小的影响 | 调大的影响 |
|---|---|---|---|
| N(均线周期) | 14 | 信号更早出现,次数增多 | 信号滞后,次数减少 |
| RSI 超卖阈值 | 20 | 要求更极端,信号少而准 | 信号变多,假信号上升 |
| RSI 超买阈值 | 80 | 逃顶更早,可能卖飞 | 逃顶更晚,回撤变大 |
| 乖离率阈值 | 8 | 更灵敏,震荡市易触发 | 更迟钝,抓大波段 |
4. 实盘前验证这两条:确认信号不会“事后移动”
4.1 训练模式回放:把信号钉在行情里
通达信自带的训练模式是验证不漂移的最好工具。调出公式后,进入训练模式,选定一只股票,把光标移动到当前最新一根K线,记录下此时图上存在的全部买入信号位置(以转折阳线和转向看多为准)。然后按“下一根K线”逐步推进 20 根,每推进 5 根暂停一次,回头检查:
- 之前记录的信号位置是否还在原K线上
- 那些位置有没有新信号凭空冒出来
- 超卖区的蓝色柱有没有因为后续行情而减少或消失
如果三项检查都通过,说明公式在“信号固定性”上是合格的。任何一项不通过,直接把源码里出现问题的条件删掉,别舍不得。
4.2 双版本对照:用故意污染的版本看清差距
肉眼验证容易忽略细节,更可靠的是做一个对照实验。把第 3 章的代码复制一份,只改动一处——把MA全改成XMA,保存为“漂移对照版”:
MA14:=XMA(CLOSE,N); {注意:XMA会重绘,仅用于对照演示}把它和干净版同时叠加到同一只股票上。翻到历史一段明显的底部,记录两个版本各自画出的转折阳线位置。你会发现:干净版的图标钉在某根K线下方不动;对照版的图标会随着行情推进向前或向后挪动,甚至消失。这个实验把“未来函数”的抽象概念变成了肉眼可见的差异,印象会比读十篇文章都深。
对照实验正式跑完之后,把对照版删除,防止后续误用。
4.3 复盘信号时最容易误判的三个场景
| 场景 | 看起来像 | 真实原因 | 处理方法 |
|---|---|---|---|
| 底部连续出现多个阳线信号 | 信号不准 | 超卖区内的反弹K线都满足条件,属于同一波段 | 按突破均线后的第一个信号为准 |
| 超买后价格继续大涨 | 逃顶太早 | 乖离率阈值不够大,强趋势中RSI持续钝化 | 把乖离率调到 10 以上 |
| 信号位置没变但数量增多 | 指标变得不准 | 新一段行情产生了新的超卖区,旧信号并未漂移 | 用 FILTER 限制信号间隔(见 5.1) |
这三种误判在量化指标验证里非常典型。特别是第一种:底部区域的每根阳线都会触发转折信号,看起来像是“反复出现”,实际是同一个底部波段的多次确认。解决办法不是删除信号,而是在使用规则上规定“只取转向看多为正式进场点”,拐点信号只作参考。
验证完成后,这套指标已经可以进入使用。但“能用”和“好用”之间还差一步:把信号翻译成可执行的选股条件和更稳健的通道逻辑。
5. 把这套思路变成自己的武器:转选股、加通道、避脏写法
5.1 副图转选股公式:一分钟得到“今天出信号”的股票池
主图叠加公式不能直接用来选股,需要把输出改成一列“信号值”。复制第 3 章代码,把最后绘图部分的STICKLINE和DRAWICON全部删掉,文件类型改成“条件选股公式”,用以下代码收尾:
买入条件:=转向看多; 选股:FILTER(买入条件,5);FILTER(买入条件,5)的含义是:出现买入条件后,5 根K线内不再重复触发。这能过滤掉同一个底部波段里多次信号的情况。公式编译后,在“条件选股”里选择该公式,就能筛选出当日收盘站上均线且之前出现转折阳线的股票。选出来后,回到主图用三层信号确认当前处于哪一层,再决定是否纳入观察池。
5.2 用 ATR 动态通道替代固定乖离率阈值
固定乖离率<-8在低波动股票上很难触发,在高波动股票上又频繁触发。一个干净且不漂移的改进方式是换成 ATR 通道:用均线加减两倍 ATR 构成动态上下轨,替代固定百分比阈值。
ATR14:=MA(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),14); 通道下轨:=MA14-2*ATR14; 通道上轨:=MA14+2*ATR14; 强超卖:=CLOSE<通道下轨; 强超买:=CLOSE>通道上轨;ATR 计算只用最高价、最低价和昨收,全部是历史静态数据,不影响“不漂移”属性。把第 3 章超卖区里的乖离率<-8替换成强超卖,震荡市里信号会自然变少,趋势市里又能及时捕捉剧烈偏离的转折点。
5.3 三个让指标重新“变脏”的写法,碰都别碰
学会了写干净公式之后,更要守住底线。以下三个写法都会让辛苦搭好的不漂移指标倒退回去:
- 引入 ZIG 做趋势辅助。比如“收盘价突破 ZIG 的上一转折点”,表面看是多了一条趋势参考线,实际整个信号系统被 ZIG 的重绘拖下水。
- 盘中用 DYNAINFO 混合运算。DYNAINFO 返回的是实时行情,收盘后回放时数值与盘中不同,导致同一根K线在盘中、盘后信号不同。
- 用 TROUGHBARS 判断“距离底部N天”。这类函数给出的数字在底部真正形成之前是动态变化的,写在买卖条件里等于让信号随未来修正。
把这三条记住,再回头看网上的指标源码,一眼就能看出哪些是金矿哪些是坑。真正值得下功夫的写法和这套三层确认类似:信号数量不多,每个信号都能说清楚依据,并且经得起一个月后的回看。
本文还有配套的精品资源,点击获取