简介:通达信短线出击副图选预警指标源码以doc文档形式发布,面向股票技术分析爱好者与通达信公式学习者,用于解决短线买卖点信号识别与副图可视化预警需求。资源标签为“教程”,着重讲解公式源码构成与教学应用场景,而非仅提供现成代码。包体为单个doc文档,压缩后共1个文件、118KB,内含完整源码及MA10、MA54、偏离率、平台突破等关键变量解析,便于对照学习。目前已有273人学习,适合希望理解短期均线偏离度与平台突破量化逻辑的投资者。通过该文档,读者可直接复制源码导入通达信软件,实现副图选股预警与贴图分析,同时了解指标编写思路,掌握从均线偏离计算到多条件组合确认的完整判断流程,并可在实盘中进一步调整参数与预警条件。
1. 通达信「短线出击」副图指标:从看盘箭头、条件选股到实时预警的三合一用法
拿到「通达信短线出击副图选股预警」这份源码,多数人的第一反应是装成副图指标,然后盯着彩色柱子和一处「出击」箭头看。但这个标题真正的价值在于三合一:同一套信号逻辑,既在副图上画出提示,又能直接跑条件选股,还能挂进实时预警。换句话说,它不是让你盯着图找感觉,而是把「什么时候该盯盘、今天选谁、盘中怎么提醒」串成一条可执行的链路。下面按这类公式最常见的骨架来讲:先拆信号原理,再做选股和预警改造,最后把未来函数、信号闪烁、选股漏票这些坑逐条排掉。自己写公式的老手能拿到参数边界,刚拿到第一份源码的新手也能照着验证它靠不靠谱。
2. 拆解短线出击副图公式源码:快线交叉、动量与量能三要素的选型原理
2.1 三要素选型:为什么短线信号要同时看方向、力度和成交量
把市面上能搜到的同类「短线出击」源码放在一起比对,骨架高度一致:快慢两条均线判断方向,一个动量值判断力度,一个量能条件判断有没有人参与。三者缺一个,都会在特定行情里翻车,所以看懂这三要素的选型理由,比抄代码更重要。
先说方向判断。快线用 5 周期、慢线用 10 周期是短线最常见组合,对应一周到两周的持仓视角。这里多数作者选 EMA 而不是 MA,原因很直接:EMA 对近期价格加权更大,滞后更小。短线进场吃的是「早半步」的利润,MA 要等价格迈过均线才拐头,信号普遍晚一到两根K线;代价是 EMA 在横盘时更容易反复交叉,所以后面必须靠动量条件来过滤。
动量项常见写法是 (CLOSE-REF(CLOSE,K))/REF(CLOSE,K)*100,K 取 3 或 5。它衡量的是「今天相对 K 天前涨跌了多少百分比」,本质是加速度而不是速度。均线交叉只能说明方向变了,不能说明变化有多大;加上动量大于 0 这个条件,能把「贴着均线来回蹭」的无效交叉挡掉一大半。还有一个隐藏作用:防止追高。均线金叉经常发生在大涨之后,价格已经离均线很远,动量大于 0 只保证方向,不保证位置,所以更完整的写法会加「偏离均线幅度」过滤,但那样强势股信号会全部消失,短线出击这类定位一般不这么干。
最后是量能确认:VOL/MA(VOL,M) 大于某个阈值,M 取 20,阈值取 1.2 或 1.5。这个条件解决的是「无量上涨」的假突破。价格可以靠少数几笔买单拉起来,但没量配合的突破次日很难延续;量比超过 1.2 意味着当天参与热度明显高于近一个月均值,信号含金量高一些。三个条件串起来,方向、力度、参与度都满足才画箭头,这是短线出击这类公式的核心逻辑。
为什么全放在副图而不是主图,也有讲究。副图不遮挡K线,红绿柱直接挂在零轴上下,一眼能看出动量在放大还是收缩;主图要和均线、K线组合,画线太多反而干扰买卖点判断。副图只需要回答一个问题:现在动量方向对不对,力度够不够。
2.2 最小可用的短线出击副图骨架:柱线、变色与出击标记
下面这份骨架是这一类源码的常见写法,参数全部提到公式头部,方便做参数测试:
{======== 短线出击·副图骨架 ========} {公式类型:副图指标,用于日线或60分钟线} N1:=5; {快线周期} N2:=10; {慢线周期} M:=20; {量能基准周期} K:=3; {动量回溯周期} 快线:EMA(CLOSE,N1),COLORWHITE; 慢线:EMA(CLOSE,N2),COLORYELLOW; 动量:=(CLOSE-REF(CLOSE,K))/REF(CLOSE,K)*100; 量比:=VOL/MA(VOL,M); 买点:=CROSS(快线,慢线) AND 动量>0 AND 量比>1.2; STICKLINE(动量>0,0,动量,2,0),COLORRED; STICKLINE(动量<=0,0,动量,2,0),COLORGREEN; DRAWICON(买点,LOW*0.98,1); DRAWTEXT(买点,LOW*0.96,'出击'),COLORWHITE;先说两条输出线:快线和慢线。冒号前面是输出名,后面是表达式,这是通达信公式语言的基本规则。凡是需要画在副图上的曲线,用冒号输出;凡是只做中间计算、不画出来的量,用 := 赋值。很多改造翻车就翻在这一个符号上,第 3 章会专门展开。
动量和量比这两行没有冒号输出,副图上不会单独出现它们的曲线,量比只是用来过滤买点条件。买点这一行把三个条件用 AND 串起来:快线上穿慢线、动量大于 0、量比大于 1.2。CROSS(A,B) 表示 A 从下方穿过 B 的那根K线才为真,不会连续多天为真,所以单看这个公式,买点不会在连续上涨里重复出现;真正让信号重复的是「横盘反复穿越」,这个留给 FILTER 解决。
STICKLINE 画的是动量柱:按动量值相对零轴的高度画柱线,动量为正画红色、为负画绿色,视觉上一眼能区分多头和空头动量区。括号里的 2 是柱宽,0 是空心参数,改成 1 就是实心柱,视觉更重。DRAWICON 在买点当天的低价附近画一个图标,1 号图标在多数版本里是向上箭头,不同版本图标表略有差异,可以点编辑器里的「图标」预览换编号。DRAWTEXT 再补一个「出击」文字,复盘时定位信号要快得多。
如果是从 doc 里复制公式进来,先做一件事:删掉行首可能带的序号和空格。doc 里排过版的公式经常有行号、全角空格,粘进通达信编辑器后第一行报红,多半是这个原因。粘完按一次语法检查,逐行清掉报错行再保存。
2.3 参数怎么调:N1、N2、M、K 三个旋钮的调节边界
参数是这类源码最容易让人上头的地方。见过有人一天把 N1 从 5 试到 35,最后把信号试没了。参数调节要守一个原则:只动周期旋钮,别动信号逻辑本身。
| 参数 | 常见默认 | 调大之后 | 调小之后 | 适用周期 |
|---|---|---|---|---|
| N1/N2 | 5/10 | 信号变少、变慢,震荡减少 | 信号变多、变急,反复交叉增加 | 日线 5/10,60分钟 3/6 |
| K | 3 | 动量变钝,趋势里更稳 | 动量敏感,单日大阳线易乱跳 | 日线 3,60分钟 2 |
| 量比阈值 | 1.2 | 信号更少,过滤更狠 | 信号变多,缩量假突破也放进来 | 1.2 常见,1.5 偏保守 |
调参有个实用顺序:先固定量比阈值,再调 K,最后调快慢线周期。因为量比阈值决定信号数量级的底,K 决定动量噪声,快慢线周期决定信号滞后程度。从默认值出发,一次只改一个参数,每个参数至少看 20 到 30 根K线再下结论。
还有一条经验:参数在这个周期上表现好,换到别的周期就是另一回事。日线 N1=5 换到 60 分钟还取 5,信号会密到没法看;60 分钟取 3/6、K 取 2 更贴近半周节奏。这一块多少有点玄学成分,与其追求一套万能参数,不如给不同周期各存一份配置。
想用鼠标拖参数而不是每次进编辑器改代码,可以在公式头部用参数区定义 N1、N2、M、K,保存后右键指标选「调整指标参数」就能拖动。注意:参数区里要设好最大最小值,否则拖过头信号直接消失,又得回来改代码。
3. 把副图改造成选股与预警公式:通达信语法差异、FILTER去重与周期匹配
3.1 为什么副图源码不能直接拿去选股:输出行与绘图函数的语法边界
很多人拿到源码后直接在选股器里勾选这个指标,结果要么报错,要么选出来的和图上对不上。原因不是指标坏了,而是通达信公式分类型,副图指标和条件选股公式的语法边界不一样。
第一是输出行的数量。副图公式可以输出多条线,快线、慢线、柱线,想画多少画多少。条件选股公式只允许一个输出,最后一行的条件必须是布尔值(真或假),多一行输出,选股器就不知道该拿哪条线做条件。第二是绘图函数。STICKLINE、DRAWICON、DRAWTEXT 这些函数在副图里负责画图,在选股公式里不产生任何条件,要么被忽略要么直接报语法错。
所以选股改造的核心只有两步:所有画线的输出改成 := 中间变量,删掉所有绘图函数,最后留一行 XG:条件。血泪经验是:别在副图源码上直接改,新建一个公式把逻辑搬过去,原副图留着看图。两份公式同步维护确实麻烦,但比「选股结果解释不清」强得多。
3.2 改造成选股公式:去掉绘图函数、统一为 :=、用 FILTER 去重
下面是我常用的改造结果,直接粘到公式管理器里新建条件选股公式:
{======== 短线出击·选股公式 ========} {公式类型:条件选股公式,用于收盘后选股} N1:=5; N2:=10; M:=20; K:=3; 快线:=EMA(CLOSE,N1); 慢线:=EMA(CLOSE,N2); 动量:=(CLOSE-REF(CLOSE,K))/REF(CLOSE,K)*100; 量比:=VOL/MA(VOL,M); 买点:=CROSS(快线,慢线) AND 动量>0 AND 量比>1.2; XG:FILTER(买点,5); {出现信号后5日内不再选入}和副图骨架对比,差异只有四处:快线、慢线的冒号去掉变成 :=;STICKLINE、DRAWICON、DRAWTEXT 全部删掉;最后一行变成 XG:FILTER(买点,5);参数保持一致。别小看 FILTER,没有它,同一只股票在 5 个交易日内反复出现满足条件的K线时会被反复选进来,预警也会反复弹同一个名字。FILTER(X,N) 的意思是:X 出现信号的那根K线输出 1,之后 N 根K线不管条件是否满足都输出 0。N 取 5,相当于要求两次建仓信号至少间隔 5 根K线。
选股执行的口径也要统一。打开条件选股器,选「短线出击·选股」公式,数据范围覆盖目标股票池,复权选前复权。为什么必须前复权,第 4、5 章还会再碰到,先记住:不复权看过去的K线,遇到除权除息后价格序列是断的,金叉位置会漂,选股结果自然对不上副图。
还有一个容易被忽略的点:选股公式只能做「收盘后选股」,它不处理盘中未走完的K线。如果盘中跑选股器,最后一根K线是半截的,条件随时可能变化,所以日常使用请固定在收盘后运行。
3.3 挂进预警系统:公式类型、执行周期与收盘确认条件
选股公式改好后直接挂预警,理论上可行,但会有一个实际问题:盘中信号没确认。盘中快线还在慢线附近摩擦,下午一根阴线就可能让「金叉」消失,预警弹出来又收回,反复弹窗最影响判断。
所以在预警用的公式里,我会额外加一个收盘确认条件:
{======== 短线出击·预警公式 ========} {公式类型:条件选股公式,供预警系统调用} N1:=5; N2:=10; M:=20; K:=3; 快线:=EMA(CLOSE,N1); 慢线:=EMA(CLOSE,N2); 动量:=(CLOSE-REF(CLOSE,K))/REF(CLOSE,K)*100; 量比:=VOL/MA(VOL,M); 买点:=CROSS(快线,慢线) AND 动量>0 AND 量比>1.2; 临近收盘:=TIME>=145500; {14:55之后K线基本定型} XG:买点 AND 临近收盘;TIME 返回当前K线的时间,格式是 HHMMSS,日线上最后一根K线的时间戳在 150000 附近。加 TIME>=145500,等于把预警决策窗口压到收盘前五分钟,此时当日K线基本定型,信号闪烁概率大大降低。如果用 60 分钟周期,就按每个周期最后一根K线做确认,或者干脆去掉时间条件,把盘中信号只当提醒、不当成交指令。
注意:预警只能添加条件选股公式,副图指标类型是加不进去的。类型不对时,预警设置界面里这个公式根本不会出现在下拉列表里。
预警系统的接入路径,通达信不同版本菜单位置不一样,常见做法是打开「条件预警」或「预警系统」,新建一个预警,股票池设成沪深A股或自选股池,条件公式选「短线出击·预警」,周期设成日线。设置完先在「预警日志」里跑一天,重点看有没有漏报和重复报。第一次弹窗正常不代表配置正确,我见过周期选成 5 分钟导致一整天刷屏的例子,所以第一步先确认周期和公式设计周期一致。
4. 贴图复盘的打开方式:固定周期、前复权与信号统计口径
4.1 贴图的标准动作:周期固定、前复权一致、标注完整
「贴图」在这类标题里原本是作者展示指标效果的手段:把副图和K线截图贴出来,配上几只票的买点,看起来很有说服力。但对使用者来说,贴图应该反过来用——不是看作者贴了什么,而是自己把信号截图攒成复盘图库。原始 doc 里的贴图最多证明「作者跑过」,证明不了指标在你的自选股里好用。
自己贴图的第一步是统一环境:周期固定日线,复权固定前复权,副图高度固定。我一般把副图参数高度拉到屏幕三分之一,显示区间拉成最近 90 到 120 根K线,这样动量柱的缩放比例每次都一致,多图对比时不会被视觉误导。
第二步是标注。画线工具可以在图上画竖线标日期,但复盘这种事最好交给公式:副图源码里已经有 DRAWTEXT 写「出击」,截图前把十字光标对准信号日,让K线下方日期栏显示出具体日期再截。截图文件名按「日期_股票名_信号类型」命名,例如 20250315_某样本股_出击,月底归到一个文件夹。
第三步是留原始K线。贴图不是只贴有信号的那一天,而是把信号前后各 10 根K线都截进去,这样才能看出买点出现在什么位置:是突破启动位,还是涨了一大截之后的追高位。新手喜欢只留赚钱的贴图,实际上更有价值的复盘素材是那些「信号出了但亏了」的图,它们才是参数调整的依据。
4.2 从贴图到统计表:胜率、盈亏比与信号频率的计算口径
贴图看单票,统计表看整体。至少 30 个信号样本才有讨论意义,低于这个数,任何胜率数字都是噪声。我会在 Excel 里维护一张表,字段和口径如下:
| 统计字段 | 计算口径 | 备注 |
|---|---|---|
| 信号日期 | 副图「出击」出现的日期 | 以收盘后确认的信号为准 |
| 3日胜率 | 信号后第3日收盘价 > 信号日收盘价的占比 | 短线观察窗口,别拉到 20 日 |
| 最大涨幅 | 信号后 3 日内最高价相对信号日收盘的最大涨幅 | 衡量潜在空间 |
| 最大回撤 | 信号后 3 日内最低价相对信号日收盘的最大跌幅 | 衡量进场后要扛多少浮亏 |
| 盈亏比 | 平均最大涨幅 / 平均最大回撤 | 大于 1.5 才值得继续用 |
| 信号频率 | 每月信号数 / 覆盖股票数 | 信号太密说明过滤太松 |
这张表的逻辑是:胜率只说明方向判断对不对,盈亏比说明这个信号在短线进出里值不值得做。即使胜率只有 45%,盈亏比到 2 以上,配合纪律止损,整体期望仍然为正;反过来胜率 70%、盈亏比 0.8 的指标,拿不住也赚不到钱。
统计口径上最容易出错的是「信号日收盘价」到底用哪个价。我统一用前复权收盘价,信号出现后如果遇到除权除息,必须把历史价格重新拉成前复权再算,否则 3 日涨幅里掺着送股的「假涨幅」,统计结果全部失真。这个坑很隐蔽,我在上面吃过亏。
4.3 贴图不是越多越好:归档命名与月度精选
贴图攒多了也要取舍。我现在的归档规则是:每个交易日最多留 5 张图,只留当日信号里最有代表性的——最强的一只、最弱的一只、以及一只横盘假信号的。其余信号只在选股结果列表里记一笔,不进图库。这样一个月下来大约 100 张左右,每月初花半小时就能整体过一遍,而不是被上千张截图淹没。
月度精选还有一个作用:拿它去对比 doc 里作者贴的图。如果作者贴出来的信号形态和你自己复盘的信号形态差异很大,先别怀疑自己,检查复权方式和周期设置是不是一致,多数情况是这两处不统一造成的,而不是公式被改过。
5. 通达信短线出击常见问题与避坑:未来函数、信号闪烁、选股漏票与预警不弹窗
5.1 未来函数导致信号漂移:BACKSET、ZIG 和「回头看」的画线
现象:昨天副图上没有箭头,今天打开一看箭头出现在前天甚至三天前的位置;或者一个信号过几天后自己「长」出来了。这就是信号漂移,公式里十有八九用了未来函数。
原因:BACKSET、ZIG、PEAK、TROUGH 这类函数会引用「之后」的K线数据来修正当前结果,是典型的黑匣子。ZIG 是折线拐点函数,它要等价格走完一段趋势才能回头确认拐点,所以用 ZIG 画出来的买点会随着新K线不断移动位置。用在选股和预警里,结果就是今天选出来的股票明天可能就变了,实盘完全没法执行。
解决:把源码从头扫到尾,凡是出现 BACKSET、ZIG、PEAK、TROUGH 的地方直接删掉那几行,只保留 REF、EMA、CROSS、FILTER 这类纯历史数据函数。判断标准很简单:任何函数的输出会因为「今天新增一根K线」而改变历史画线,就是未来函数。别信 doc 里「装了未来函数才精准」的说法,那等于拿一个事后才能确定的答案去骗昨天的自己,实盘一用就翻车。
5.2 盘中预警有信号、收盘选股选不到:未收盘K线的重算问题
现象:预警在盘中 10:30 弹出某只股票,收盘后跑选股器,名单里却没有这只票。新手第一反应是公式坏了,其实公式没变,是它运行的时间变了。
原因:价格数据是正在变的。盘中最后一根K线还没走完,收盘价、成交量、动量都在实时跳动。早上快线可能刚上穿慢线,下午一根阴线又把交叉打回去,收盘时条件不再成立。这个叫信号的实时重算,和未来函数刚好相反——一个是引用未来数据,一个是引用「未完成」的当下数据,两者都会让信号不可复现。
解决:预警公式里加临近收盘:=TIME>=145500 的确认条件,把触发窗口压到 14:55 之后;选股统一在收盘后 15:10 之后再跑,等当日数据稳定。如果盘中就要提醒,就接受「盘中信号只是候选,收盘确认才算数」的设定,把预警当筛选器而不是成交指令。
5.3 副图有箭头选股却漏票:复权不一致与 := 写法失误
现象:副图上某只股票明显画着「出击」箭头,用同名公式去选股器里选,这只票就是不在结果里。这个坑踩过不止一次。
原因通常两个。第一个是复权方式不一致:副图界面看的是前复权K线,选股器执行时数据源是不复权,除权除息之后的历史价格序列对不上,金叉位置自然不一样。第二个是写法失误:选股公式里某一行用了冒号输出而不是 := 赋值,导致输出的曲线意外参与判断;或者副图和选股公式分别维护,某次改参数只改了一边,两边条件已经不一致。
解决:复权方式在每个版本菜单位置不同,常见做法是在K线界面点右键,统一前复权,选股执行前再确认一次;公式写法上,选股公式除了最后一行 XG 之外全部用 :=,不留任何一根裸输出线。参数不同步的问题,靠记忆解决不了,把副图、选股、预警三个公式的参数区写成相同默认值,每次改参数三个一起改,再用一个 doc 统一记录三份源码和参数版本,改完顺手更新。
5.4 预警不弹窗或一闪而过:公式类型、周期与股票池三处不匹配
现象:预警系统建好了,股票池也加了,行情在动,但一整天一个信号都不弹;或者弹一下马上消失来不及看。这种问题八成出在配置,不是公式。
原因按出现频率排:第一,公式类型不对,副图指标公式根本加不进预警系统,需要的是条件选股公式;第二,预警周期和公式设计周期不匹配,日线逻辑挂到 5 分钟周期,条件要么几乎不满足,要么满足太多次直接刷屏;第三,股票池没选对,默认池里只有几只样本股,自然没信号;第四,弹窗一闪而过,是因为信号本身就是盘中瞬时满足的,下一分钟数据一变条件就没了,回到 5.2 的收盘确认问题。
解决:新建预警时先确认公式类型是条件选股;周期设成日线,和公式设计一致;股票池换成沪深A股或自己的完整自选池;然后把时间确认条件加上,让弹窗尽量集中在尾盘。配置完成后,用一只近期明显符合条件的股票做验收:把它加进股票池,如果按当前K线它应当满足条件,预警系统应当能弹出来。连这样的样本都不弹,说明链路有断点,先查类型和周期,别急着改公式。
6. 把短线出击装进自己的武器库:参数命名规范、多周期切换与月度体检习惯
6.1 参数命名与公式前缀:选股、预警、副图共用一套信号
我保存公式的习惯是统一前缀:DX_CJ_副图、DX_CJ_选股、DX_CJ_预警,三个公式参数默认值保持一致,抄参数时一眼能对齐。别用「出击V2最终版」「出击改改改」这种名字,一个月后自己都分不清哪份是当前版。每次改完参数,把三份源码和当月的信号统计表一起归档,这就是你的后悔药——参数改崩了还能退回上一个版本。
6.2 日线与60分钟双周期:盘中参考与收盘确认分工
副图在日线上看趋势确认,在 60 分钟线上看盘中介入节奏。常见做法是复制一套公式只改周期参数(N1=3、N2=6、K=2),开两个窗口对比。日线信号负责「今天收盘后要不要把它放进观察池」,60分钟信号负责「明天开盘后哪个位置值得动手」,两层信号叠加时胜率明显更高。
6.3 每月一次信号体检:把「感觉好用」变成「统计可用」
每周贴图归档,每月做一次统计表更新:信号数量、3日胜率、平均盈亏比,连续三个月就能判断这套参数在当前市场风格下还适不适用。我现在的习惯是每月初拿上个月的信号图集和统计表过一遍,哪个参数区间开始横盘反复磨,下个月就把量比阈值调高半档,而不是当天拍脑袋改一个数字。这套习惯比反复研究指标本身更能截住「把运气当成能力」的错觉。希望帮到你。
本文还有配套的精品资源,点击获取