ARTICLE · 1184042
通达信"二板定龙头"指标源码解读:首板筛选叠加一进二接力的编程逻辑
温馨点击上方"风帆量化" → 点击右上角 "..." → 选 "设为星标"★
今天拆解一款把强势首板筛选与一进二接力买点放在同一个公式里的通达信打板指标:「二板定龙头」。
它的思路分两段。第一段在昨天收盘后,筛出符合条件的「强势首板」:封住涨停、流通市值不大、股价处在中低价区间、KDJ 呈多头、并且是最近两天里第一次涨停。第二段在今天开盘时,用今开涨幅、距上次起涨低点的距离判断是否够格接力;公式里还写了一个「量比」条件,但它实际不起作用(详见第 4 层)。
副图在满足条件的位置画红柱并打图标;选股版去掉画图语句,只输出信号。下面逐层拆解编程逻辑,最后附上两版完整源码。
一、这个指标在做什么?(整体逻辑速览)
整段代码可以归成 5 层,两段式推进:
① 摆动指标层:用 RSV 自己做一遍 KDJ 的 K、D、J,并要求三者呈多头排列
② 基本面过滤层:流通市值 0 到 80 亿、股价 2 到 22 元,并尝试排除特定名称与板块
③ 涨停识别层:涨幅落在 9.8% 到 10.99% 且收盘等于最高,判定封板;用 COUNT 保证 2 日内只有一次,即首板
④ 强势首板合成层:把上面三层条件合并成一条「强势首板」,这是第一段的总条件
⑤ 一进二信号层:今日开盘满足高开、距起涨低点不远,且昨日是强势首板,输出接力信号(内含一条实际不生效的「量比」条件)
核心定位:昨日首板封死、今日高开不过分的接力买点,属于打板接力型信号。
二、逐层拆解
第1层:自定义 KDJ 多头排列
E1、E2、E3 是三个参数(9、3、3)。E4 是 9 日 RSV,衡量收盘价在近 9 日高低区间里的相对位置;E5、E6 对它做两次 SMA 平滑,E7 用 3*E5-2*E6 算出 J 值。不过 E8 直接引用了系统 KDJ 指标的 K、D、J,要求三者多头排列。E5、E6、E7 算完后其实没有被用到,属于冗余,学代码时可以直接删掉。
学习要点:SMA(X,N,M) 是带权重的平滑,M 是权重;3*K-2*D 是 J 值的通用写法。引用系统指标用「指标名.输出名」,例如 KDJ.K。
第2层:基本面与板块过滤
E9 用 CAPITAL 乘收盘价算出流通市值(再除 1000000 得到亿元量级),E13 要求市值落在 0 到 80 亿之间。E10 是当日涨幅,E14 用「涨幅大于 9.8% 且小于 10.99%、且收盘等于最高」判断涨停封板。E11、E15 要求股价在 2 到 22 元之间。E16 用 COUNT 数最近 2 日的涨停次数,等于 1 说明是首板。E12 负责排除特定名称与特定板块,但它末尾带了 OR BARSCOUNT(CLOSE)>1,会让整条排除条件几乎恒真,只有上市首日不通过,实际过滤作用很弱。
学习要点:CAPITAL 是流通股本,属动态数据,历史回测会取到当前值,可能失真。COUNT(X,N) 统计 N 日内 X 成立的次数,此类公式常用来数涨停天数。
第3层:强势首板合成
这一行把上面六项条件(KDJ 多头、板块过滤、市值、涨停、价格、首板)合并成一条「强势首板」,作为第一段的总条件。这就是「昨日首板」的判定。
学习要点:把多个条件先合并成一条中间变量,输出行会清晰很多;AND 是逻辑与,全部成立才为真。
第4层:一进二的开盘条件
E17、E18 分别是今日涨幅与今开涨幅,E24 要求今开涨幅落在 2% 到 7.5% 之间,也就是高开但不能太高。E19、E20 本意是写一个「量比」,但它实际算不出量比:E19 把昨日成交额先除以今日开盘价、再除以 100,E20 又乘回 100,两处的除 100 与乘 100 恰好互相抵消,化简后 E20 恒等于「昨日成交均价 ÷ 今日开盘价 × 100」,只与价格有关、与成交量无关。实测在「昨日首板涨停、今日高开 2%~7.5%」的时点上,E20 落在 84 到 98 之间,永远远大于 5,所以 E24 里那条 E20>5 恒成立,起不到放量过滤的作用。E21 算开盘价的 20 日 EMA 变化率,E22 用 BARSLAST 找到上一次该变化率由跌转涨的那天,取出当天最低价作为起涨低点,E23 计算今开距该低点的涨幅,要求不超过 20%。E24 还要求昨日涨幅大于 9.8%,即昨日涨停。
学习要点:BARSLAST(X) 返回 X 上一次成立到当前的周期数,配合 REF 可以取到历史某天的值;REF(X,N) 取 N 周期前的值。
第5层:接力信号与画图
YJE 要求今日满足 E24(一进二条件)且昨日 QSSB 成立(强势首板)。也就是说,信号出现在「昨天首板封死、今天高开」的接力时点。副图版随后用 STICKLINE 在 0 到 5 之间画红柱,用 DRAWICON 打 34 号图标标出信号。
学习要点:REF(QSSB,1) 取昨日的强势首板状态,这就是「一进二」里「一」与「二」的衔接写法。
三、实战图例:信号在图上长什么样?
下图是副图加载后的效果示意:红柱与图标出现在「昨日首板、今日高开接力」的位置。


看图重点:STICKLINE 负责画柱,DRAWICON 负责打图标。图中信号仅展示公式输出形态,不构成投资建议。
四、版本差异对比
本文这段源码是副图指标版,末尾带两行画图语句。改成条件选股公式只需做减法:删掉画图语句,输出行不用动。改造后的条件选股版完整源码放在文末第七节,可直接复制到「条件选股公式」里用:
具体改造两处:① 删掉末尾两行画图语句(STICKLINE 与 DRAWICON);② 输出行 YJE 与其余 26 行定义逐字保留。改造后的完整源码见文末第七节。
五、实战使用注意事项(必看)
① 适用场景:这是打板接力型信号,出现在「昨日首板、今日高开」的时点,波动与风险都很大,必须配合严格纪律使用。
② 涨停阈值偏粗:用 9.8% 到 10.99% 判涨停,ST(5%)与北交所(30%)会漏判或误判;并且只判「收盘等于最高」,没有真正验证是否封死。
③ CAPITAL 是动态值:流通市值用当前股本计算,历史回测会失真。
④ 专有函数:NAMELIKE 与 INBLOCK 是通达信专有函数,本地 Python 引擎不内置;INBLOCK(130) 与 INBLOCK(4) 的板块代码需核实。
⑤ 板块过滤形同虚设:E12 末尾的 OR BARSCOUNT(CLOSE)>1 让排除条件几乎恒真,只有上市首日不通过。
⑥ 时点问题:公式用到今日 OPEN,属开盘时点策略,回测须按开盘价成交,不能当盘后信号。
⑦ 冗余计算:E5、E6、E7 算完后未被使用,可删;E17 与 E10 是同一算式(今日涨幅)的重复定义,E11 只是 CLOSE 的空壳别名,E15 里可以直接写 CLOSE。
⑧ 量比条件形同虚设:E19、E20 里的「除 100」与「乘 100」互相抵消,化简后 E20 恒等于「昨日成交均价 ÷ 今日开盘价 × 100」,只跟价格有关;实测在「昨日首板涨停、今日高开 2%~7.5%」的时点上 E20 恒在 84 到 98,E20>5 永远成立,等于没有这条过滤。
六、延伸学习
1. BARSLAST() + REF():回溯上一次条件成立的位置,做「距上次信号多少天」这类判断,涨停接力与波段公式都常用;
2. COUNT(X,N):统计 N 日内条件成立次数,此类公式用来数连板、判首板;
3. 系统指标引用:用「指标名.输出名」直接调 KDJ、MACD 等内置指标的输出线。
七、完整源码(复制前请先对照上方逐层解读)
副图指标完整版(首板判定 + 一进二信号 + 红柱与图标):
条件选股版完整源码(去掉画图语句,只留信号输出):
⚠️ 互动问答:
使用指标时遇到任何问题(如安装、信号解读等),欢迎在留言区提问,我会第一时间解答!
也可以分享你的使用心得:这个指标帮你抓住过哪些机会。
👥 制作不易,麻烦点亮右下角的 "👍" + "❤" 支持一下!
📢 转发给身边朋友,一起交流进步~
👉 喜欢我的分享?记得关注我,持续更新干货!
⚠️ 免责声明
本文所有源码及解读内容仅为通达信公式编程教学,目的在于帮助读者理解指标编写逻辑和函数用法。文中提到的任何指标名称、信号条件、参数设置均不构成任何投资建议。
指标是辅助分析工具,其信号仅反映特定数学条件是否满足,不代表对未来走势的预测。实际使用时请务必结合自身判断和其他分析方法,理性决策。投资有风险,入市需谨慎。















































































