夜雨聆风学习资料网

ARTICLE · 1196237

通达信"涨停后二波启动"指标源码解读:涨停后十日强弱线二次上穿的编程逻辑

通达信"涨停后二波启动"指标源码解读:涨停后十日强弱线二次上穿的编程逻辑

温馨点击上方"风帆量化" → 点击右上角 "..." → 选 "设为星标"★

今天拆解一款把涨停之后的第二波启动串成一条公式的通达信副图指标:「涨停后二波启动」。

它的思路是:先等一根涨停(涨幅超过 9.9% 且收在最高价),把这一天记为「起涨日」;然后在涨停之后的 10 个交易日内,观察一条被平滑过的强弱摆动线——当它向上穿过 50 时,认为第一波涨停的力量开始第二轮发力。同时要求当日涨幅温和(2% 到 7% 之间)、上影线很短、成交量没有明显放大、价格没有冲出布林上轨,并且站在 30 日与 60/120 日均线构成的多头结构之上。

公式全程只用历史函数(REF、BARSLAST、COUNT、SMA 等),没有未来函数。本文给出副图版与条件选股版两份源码,下面先逐层拆解编程逻辑,最后附完整源码。

一、这个指标在做什么?(整体逻辑速览)

整段代码可以归成 5 层,从把涨停定位成锚点,一路推到打分过线的信号:

① 布林通道层:M=5 的均线与 2 倍标准差构成上轨 UB,限制当日收盘不能离均线太远

② 涨停定位层:UUI 判定 10% 涨停(涨幅 >9.9% 且收盘等于最高),BARSLAST(UUI) 记住它离现在多少根

③ 强弱摆动层:ZBYUI 用 2 周期 SMA 的涨跌对比结构,得到一条 0 到 100 的强弱线

④ 第二波触发层:A1(涨停后 10 日内强弱线上穿 50)与 B1(当日涨停且 10 日内第 2 次涨停)合成 PPM

⑤ 过滤打分层:上影线比例、温和涨幅、打分(涨幅 + 距涨停根数×10 + 强弱值 ≥120)、缩量、布林上轨、均线多头

核心定位:涨停洗盘之后、强弱线二次上穿的右侧跟进点,属于强势股第一波回调结束、第二波启动时的跟进信号。

二、逐层拆解

第1层:布林通道与上轨 UB

M:=5;BOLL:=MA(CLOSE,M);UB:=BOLL+2*STD(CLOSE,M);

M 是布林通道的周期参数(5 根)。BOLL 是收盘价的 5 日均线,UB 在它基础上加 2 倍标准差,形成上轨。这条上轨在这里不用于判断通道突破,而是当作一条「偏离上限」——后面的 XG 要求收盘价低于 UB,也就是当日价格不能冲出上轨太远,避免在已经拉升过头的 K 线上出信号。

学习要点:STD(CLOSE,N) 衡量 N 根收盘价的离散程度,把它乘 2 加到均线上,就是布林带最常见的 2 倍标准差上轨;周期取 5 比常见的 20 更短,轨道更贴价、过滤也更灵敏。

第2层:涨停判定 UUI

UUI:=C/REF(C,1)>1.099 AND H=C AND H>L;

UUI 判定「准一字涨停」:当日涨幅超过 9.9%(C/REF(C,1)>1.099),并且收盘价等于最高价(H=C)、最高价高于最低价(H>L)。它只用来标记「涨停这件事发生过」,后面的 BARSLAST(UUI) 会把它变成一个「距离现在多少根」的计数器。

学习要点:C/REF(C,1)>1.099 是按 10% 涨停板写死的阈值,只对主板 10% 板有效;20% 板(创业板、科创板)不会触发,反过来这两类股票只涨 10% 时还会被误判成涨停。

第3层:强弱摆动线 ZBYUI

ZBYUI:=SMA(MAX(CLOSE- REF(CLOSE,1),0),2,1)/SMA(ABS(CLOSE- REF(CLOSE,1)),2,1)*100;

ZBYUI 是一条 0 到 100 的强弱线。分子是「上涨幅度」的 2 周期 SMA(相当于对最近两根做一次平滑),分母是「涨跌绝对幅度」的同周期 SMA,两者相除再乘 100,得到的是一条类似 RSI 的摆动指标:数值越大说明近期以上涨为主。后面的 A1、B1 都以它上穿 50 作为触发。

学习要点:SMA(X,N,M) 是通达信的加权移动平均(M 是权重);用「净上涨 ÷ 涨跌绝对值和」构造摆动线,是 RSI 的经典写法,取值天然落在 0 到 100。

第4层:第二波触发 A1 / B1 / PPM

A1:=CROSS(ZBYUI,50) AND BARSLAST(UUI)<=10 AND BARSLAST(UUI)>0;B1:=CROSS(ZBYUI,50) AND BARSLAST(UUI)=0 AND COUNT(UUI,10)=2;PPM:=A1 OR B1;

A1 是主线:强弱线上穿 50(CROSS(ZBYUI,50)),且距上一次涨停的根数落在 1 到 10 之间。B1 是另一条分支:强弱线同样上穿 50,但要求「当天正好是涨停日(BARSLAST(UUI)=0)并且近 10 日内出现过 2 次涨停」。两条用 OR 合成 PPM。关于 B1 的实际有效性,见第五节第 ④ 条。

学习要点:CROSS(A,B) 表示 A 从下方上穿 B;BARSLAST(X) 返回 X 上一次成立到当前的周期数——把它和 CROSS 组合,就能表达「某个事件发生之后的若干根内」。

第5层:当日形态过滤(上影线 + 涨幅)

SYXBL:=(HIGH-MAX(CLOSE,OPEN))/(HIGH-LOW)<0.2;ZF:=CLOSE/REF(CLOSE,1)<1.07 AND CLOSE/REF(CLOSE,1)>1.02;

SYXBL 是上影线比例:(最高价 − 最高(收盘,开盘)) ÷ (最高价 − 最低价),再判断是否小于 0.2,也就是上影线不超过全天振幅的两成——当日冲高之后被压回来的幅度很小。ZF 把当日涨幅限制在 2% 到 7% 之间(收盘/昨收介于 1.02 与 1.07 之间),既要求当日是阳线、又要温和,不要一根大阳线追高。

学习要点:用 (H-MAX(C,O))/(H-L) 度量上影线,比直接看 (H−C) 更稳,因为它把不同价位的股票归一化成「振幅的百分比」;涨幅写成「大于 A 且小于 B」的双边条件,是控制右侧跟进位置的常用手法。

第6层:二波启动打分

U1:=(C-REF(C,1))/REF(C,1)*100;U2:=BARSLAST(UUI)*10;EBQDDF:=U1+U2+ZBYUI;EBQDDFX:=EBQDDF>=120;

这里把三个量加起来做一次打分:U1 是当日涨幅的百分比;U2 是「距上一次涨停的根数 ×10」;再叠加强弱线 ZBYUI 的当前值,三者之和记为 EBQDDF,要求不小于 120。换句话说,只有在「离涨停日足够远(U2 够大)」加上「强弱线位置够高」时,打分才可能过线;涨停后最靠前的几根,因为 U2 接近 0,打分天然达不到 120。

学习要点:把不同量纲的指标相加之前,先乘一个系数把量级对齐(这里是 ×10),是构造「打分制」条件的常见做法;阈值 120 直接决定了信号出现的时间窗口。

第7层:量能过滤(不放量)

CJL:=VOL/REF(VOL,1)<=1.3;

CJL 要求当日成交量不超过昨日的 1.3 倍,也就是「不放量」——第二波启动如果是缩量或温和放量,说明抛压不大;成交突然放大反而说明分歧加剧。它与 XG 里的 H<UB(收盘低于布林上轨)一起,构成「不要买在放量加速的顶部」这一层过滤。

学习要点:VOL/REF(VOL,1) 是最常用的量比写法;把它限制在 1.3 倍以内,等于排除掉当日明显放量异动的 K 线。

第8层:均线多头与最终信号 XG

XG:PPM AND SYXBL AND EBQDDFX AND ZF AND H<UB AND CJL AND MA(CLOSE,60)>MA(CLOSE,120) AND C>MA(CLOSE,30);

XG 是最终信号行,把前面所有条件用 AND 连起来:PPM(第二波触发)、SYXBL(上影线短)、EBQDDFX(打分过线)、ZF(涨幅温和)、H<UB(未冲上轨)、CJL(不放量),再加上两条均线位置条件——MA(CLOSE,60)>MA(CLOSE,120)(60 日线在 120 日线之上,中期多头排列)与 C>MA(CLOSE,30)(收盘站在 30 日线上方)。全部满足才输出信号。

学习要点:把趋势条件(均线多头)放在最后用 AND 收口,是一种清晰的写法:前面管「位置与形态」,最后管「大方向」;XG 用冒号输出,在副图/选股里就是信号值。

第9层:副图标注(副图版专有)

STICKLINE(XG,0,6,1,0),COLORMAGENTA;STICKLINE(XG,0,6,0.1,0),COLORRED;DRAWICON(XG,6,38);

信号成立时,两条 STICKLINE 在 0 到 6 的高度画一段洋红与红色重叠的竖条(一根粗、一根细),DRAWICON 在第 6 的位置打一个红三角标记。这三行只在副图版里出现,选股版没有。

学习要点:STICKLINE(条件,上值,下值,宽度,空心) 可以在副图任意高度画柱;两根宽度不同的柱叠在一起,能得到「带描边」的视觉效果。

三、实战图例:信号在图上长什么样?

下图是副图指标加载后的效果示意:「涨停后二波启动」出现在涨停之后、回调结束强弱线二次上穿的位置。

看图重点:信号成立时会在副图低位画出竖条与红色三角标记;图中信号仅展示公式输出形态,不构成投资建议。

四、两个版本差异对比

同一个思路给了两个版本,代码主体完全一致,差别只在输出与标注。两份完整源码都放在文末第七节,可按需复制:

版本
输出方式
画线与标注
适用
副图
XG 作输出线,产生信号值
含 2 条 STICKLINE 与 DRAWICON 三角标记
加载到副图观察信号
选股
XG 作输出行,无显示参数
无画线与标注
盘后一键海选,只输出信号

五、实战使用注意事项(必看)

① 适用场景:这是涨停之后、强弱线二次上穿的右侧跟进点,有效信号只出现在涨停后第 4 到第 10 个交易日之间(推导见第 ③ 条),涨停后前 3 天不出信号。

② 无未来函数:公式只用到 REF、BARSLAST、COUNT、SMA、STD、MA 等历史函数,不引用未来数据,历史信号不会漂移。

③ 打分阈值把窗口压缩到涨停后第 4~10 日:要满足 EBQDDF≥120,而当日涨幅 U1 被 ZF 限制在 2~7 之间、强弱线上穿 50 的当根取值上限约 75(前一根必须小于 50,经 SMA 平滑后当根不会跳得太高),于是 U2 = 距涨停根数×10 必须大于约 38,即涨停后至少第 4 个交易日才可能出信号;而 A1 本身要求距涨停 ≤10 根,所以最终窗口是涨停后第 4~10 个交易日。

④ B1 分支恒假(重要):B1 = CROSS(ZBYUI,50) AND BARSLAST(UUI)=0 AND COUNT(UUI,10)=2。其中 BARSLAST(UUI)=0 表示当天就是涨停日,而最终信号 XG 里有一条 ZF(当日涨幅小于 7%),两者直接互斥;同时当天 U2=0,打分最多 U1+ZBYUI < 7+100=107,也达不到 120。所以 B1 永远进不了最终信号,PPM 实际等价于 A1。实测 60 只样本、每只近 400 根 K 线的 23879 个有效点上,B1 命中 0 次。公式本体按原样保留,这里只是把它的实际效果讲清楚。

⑤ UUI 只认 10% 涨停板:C/REF(C,1)>1.099 是按主板写死的阈值。创业板、科创板的 20% 涨停不会触发 UUI;反过来这两类股票某天涨了 10% 左右时,会被误判成涨停,进而影响「距涨停根数」的计数。北交所 30% 板同理。原文没有按板块区分,属设计上的简化。

⑥ 布林上轨这里是「偏离上限」:UB 用的是 5 日周期、2 倍标准差,比常见的 20 日布林带更贴价,H<UB 会挡掉一部分刚突破的票,属设计使然、并非失效。

⑦ 参数是经验值:M=5、打分阈值 120、涨幅区间 1.02~1.07、量比 1.3、上影线 0.2,都是经验取值,改动任一项都会明显改变信号数量,需按自己的偏好重调。

⑧ 信号本身很稀疏:把全部条件叠满之后,XG 的真值率实测约 0.04%(60 只样本、每只近 400 根 K 线)。也就是说它筛的是很窄的一类形态,样本少的时候可能连续多日不出信号,这是设计使然、并非失效;如果希望信号更密,优先放宽打分阈值 120 或涨幅区间,而不是动涨停判定那一层。

六、延伸学习

1. SMA(X,N,M):通达信的加权移动平均,M 是权重,SMA(X,2,1) 相当于对最近两根做一次平滑,与 EMA 的差别在于权重方式不同;

2. CROSS(A,B) + BARSLAST(X):CROSS 判上穿,BARSLAST 数「距上次事件多少根」,两者组合是表达「事件发生后的第 N 根内」的标准写法;

3. STD(CLOSE,N) / MA:标准差衡量离散度,配合均线构造布林带,把「位置」和「波动」分开看,是通道类指标的基本思路。

七、完整源码(复制前请先对照上方逐层解读)

副图版完整源码(含画线与三角标记):

M:=5;BOLL:=MA(CLOSE,M);UB:=BOLL+2*STD(CLOSE,M);UUI:=C/REF(C,1)>1.099 AND H=C AND H>L;ZBYUI:=SMA(MAX(CLOSE- REF(CLOSE,1),0),2,1)/SMA(ABS(CLOSE- REF(CLOSE,1)),2,1)*100;A1:=CROSS(ZBYUI,50) AND BARSLAST(UUI)<=10 AND BARSLAST(UUI)>0;B1:=CROSS(ZBYUI,50) AND BARSLAST(UUI)=0 AND COUNT(UUI,10)=2;PPM:=A1 OR B1;SYXBL:=(HIGH-MAX(CLOSE,OPEN))/(HIGH-LOW)<0.2;ZF:=CLOSE/REF(CLOSE,1)<1.07 AND CLOSE/REF(CLOSE,1)>1.02;U1:=(C-REF(C,1))/REF(C,1)*100;U2:=BARSLAST(UUI)*10;EBQDDF:=U1+U2+ZBYUI;EBQDDFX:=EBQDDF>=120;CJL:=VOL/REF(VOL,1)<=1.3;XG:PPM AND SYXBL AND EBQDDFX AND ZF AND H<UB AND CJL AND MA(CLOSE,60)>MA(CLOSE,120) AND C>MA(CLOSE,30);STICKLINE(XG,0,6,1,0),COLORMAGENTA;STICKLINE(XG,0,6,0.1,0),COLORRED;DRAWICON(XG,6,38);

选股版完整源码(去掉画线与标注,只输出信号):

M:=5;BOLL:=MA(CLOSE,M);UB:=BOLL+2*STD(CLOSE,M);UUI:=C/REF(C,1)>1.099 AND H=C AND H>L;ZBYUI:=SMA(MAX(CLOSE- REF(CLOSE,1),0),2,1)/SMA(ABS(CLOSE- REF(CLOSE,1)),2,1)*100;A1:=CROSS(ZBYUI,50) AND BARSLAST(UUI)<=10 AND BARSLAST(UUI)>0;B1:=CROSS(ZBYUI,50) AND BARSLAST(UUI)=0 AND COUNT(UUI,10)=2;PPM:=A1 OR B1;SYXBL:=(HIGH-MAX(CLOSE,OPEN))/(HIGH-LOW)<0.2;ZF:=CLOSE/REF(CLOSE,1)<1.07 AND CLOSE/REF(CLOSE,1)>1.02;U1:=(C-REF(C,1))/REF(C,1)*100;U2:=BARSLAST(UUI)*10;EBQDDF:=U1+U2+ZBYUI;EBQDDFX:=EBQDDF>=120;CJL:=VOL/REF(VOL,1)<=1.3;XG:PPM AND SYXBL AND EBQDDFX AND ZF AND H<UB AND CJL AND MA(CLOSE,60)>MA(CLOSE,120) AND C>MA(CLOSE,30);

⚠️ 互动问答:

使用指标时遇到任何问题(如安装、信号解读等),欢迎在留言区提问,我会第一时间解答!

也可以分享你的使用心得:这个指标帮你抓住过哪些机会。

👥 制作不易,麻烦点亮右下角的 "👍" + "❤" 支持一下!

📢 转发给身边朋友,一起交流进步~

👉 喜欢我的分享?记得关注我,持续更新干货!

⚠️ 免责声明

本文所有源码及解读内容仅为通达信公式编程教学,目的在于帮助读者理解指标编写逻辑和函数用法。文中提到的任何指标名称、信号条件、参数设置均不构成任何投资建议。

指标是辅助分析工具,其信号仅反映特定数学条件是否满足,不代表对未来走势的预测。实际使用时请务必结合自身判断和其他分析方法,理性决策。投资有风险,入市需谨慎。

相关学习资料