ARTICLE · 1250862
通达信「多头首阴」指标源码解读:零轴下金叉之后,它等的是第一根阴线
通达信公式源码解读 · 第 5 期
「多头首阴」说的是形态:均线还排着多头,这时候冒出这一段里的第一根阴线。
它不抓阳线。信号日落在那根阴线的收盘上。要走到这一天,前面必须已经有一根放量阳线,而且那根阳线得同时是整段里成交量最大、最高价最高的那一天。
我拿 400 只票、每只最近 900 根日线数了一遍,一共 357,462 根。九道条件走完,剩下 101 次,占万分之二点八。摊到每只票的 900 根里,四分之一次。
一、这个指标在做什么?(整体逻辑速览)
源码 26 行,一行一件事。归成六层,从定板一路推到出信号:
① 定板层:按代码前缀分出主板、创业板与科创板、其余,各自给出涨跌幅限制,用来算涨停价
② 形态层:上影线、实体、下影线、开盘涨幅、收盘涨幅,五个都换算成占昨日收盘的百分比
③ 量能层:倍量、三倍量、缩量、放量,四个标签
④ 起点层:找 MACD 在零轴下方的金叉,并记下这条金叉距今多少根
⑤ 高点层:在这段区间里找成交量最大、同时最高价最高的那一天
⑥ 信号层:昨天是高点日,今天收在昨收之下、MACD 柱下穿、均线仍多头,再叠四道过滤
二、逐层拆解
① 定板:为什么先要算涨停价
前三行按代码前缀分组,第四行给出这一组的涨跌幅限制。这一行本身不产出信号,它是给 ZTPRICE 用的。后面两个变量都建在它上面:ZT 是收盘封在涨停,ZB 是盘中摸到涨停、收盘没封住。这两个变量在最后会变成两道排除条件。
X1 取四个值:0.1、0.2、0.3,最后一个是 100。前三个对应三种板,100 是兜底。认不出的代码,涨停价高到天上去,这条判断就永远不成立,等于不查涨停。
这一层要记的:ZTPRICE 的第二个参数是幅度,写 0.1 表示 10%。想让某类代码不参与涨停判断,就把幅度给一个不可能达到的数。
② 形态:五个百分比
上影线、实体、下影线,各自占昨日收盘的多少。SYX 量的是收盘价上方那一截,ST 量的是开盘到收盘那一截,XYX 量的是下方那一截。另外两个是涨幅:JZF 用开盘价算,ZF 用收盘价算。
这一层要记的:五个量全都是「占昨日收盘的百分比」,不是占今天开盘。换成绝对价格就没法跨股票比较,也没法写死 8 这个门槛。
③ 量能:四个标签
BL 是今天量大于昨天两倍,BL3 是三倍,VJ 是缩量,VS 是放量。BL3 后面用来卡「这段区间里没有突然爆量」,BL 和 VJ、VS 则留给最后的量能二选一。
这一层要记的:倍量和放量不是一回事。放量只要比昨天多一点就算,倍量要两倍以上,三倍量单独再算一档。后面那道二选一用的正是「昨天是不是倍量」。
④ 起点:零轴下方的那次金叉
T1 要求 MACD 在零轴下方金叉,也就是 DIF 上穿 DEA,同时 DIF 还在零下。这通常出现在一段下跌之后。N1 记下这条金叉距今天多少根,后面所有「这段区间」都指这 N1 根。整个公式的计时器就是它。
这一层要记的:BARSLAST 数的是「上一次条件成立到现在隔了几根」,金叉当天算 0,第二天算 1。所以后面写 N1+1,窗口才覆盖到金叉那天本身。
⑤ 高点:量价同时最高
T2 要三件事同时成立:成交量是全区间最大、最高价是全区间最高、MACD 柱比昨天大。两个「最高」后面都写着 N1+1。N1 是那条金叉到今天隔了多少根,加一,比的就是金叉那天到昨天这一整段。
这一层要记的:两个 HHV 必须同一个窗口。一个用 N1、一个用 N1+1,量价就不同段,会出现「量是这段最大、价却是另一段最高」的假信号。
⑥ 信号:八条同时指向今天
T3 有八个条件,全部落在同一天:
· REF(T2,1):昨天就是那个量价双高日
· M5>REF(M5,1):5 日线还在向上
· DIF>REF(DIF,1):DIF 还在向上
· M5>M10 且 M10>M20:均线仍是多头排列
· C<REF(C,1):今天收在昨收之下
· CROSS(REF(MACD,1),MACD):MACD 柱下穿
· DEA>0:DEA 已经回到零轴上方
· REF(EVERY(BL3=0 AND ST<8 AND SYX<8,N1),2):从前天往前数 N1 根,没有三倍量、实体小于 8%、上影小于 8%
这里有个坑:第五条是「收在昨收之下」,不是「K 线是阴线」。低开以后往上走、收盘仍比昨天低,K 线画出来是阳线,这个条件照样成立。文章后面的飞南资源就是这样,别看到红 K 就以为信号错了。
XG 再加四道过滤
第一道,COUNT(T3,N1)=1,这段区间里 T3 只能出现一次。第二道,COUNT(ZT,N1+1)=0,整段不能有涨停。第三道,REF(ZB=0,1),昨天不能是炸板。第四道是个二选一,看昨天的量能走哪条路:
· 昨天不是倍量,就要求今天放量、区间超过 10 根、下影小于实体的两倍、主板、昨天距金叉涨幅在 10% 到 35% 之间、今天实体收阴
· 昨天是倍量,就只要求今天缩量
两条路的量能条件正好相反。一条要放量,一条要缩量。主板这一条只写在第一个分支里,走第二个分支时不看代码前缀。
三、实战图鉴:信号在图上长什么样
下面是四段真实日线,信号日都用蓝色竖线标出来。紫色虚线是那条零轴下方的金叉,橙色虚线是双高日的最高价,也是后面所有比较的基准。

图 1|日盈电子 603286,20250127,收盘 21.78
标准形态。双高日一根放量大阳冲上去,第二天收在它下面,量缩到前五天的七成。

图 2|飞南资源 301500,20260122,收盘 16.95
低开高走也算。信号日这根是红 K 线,但收盘仍比昨天低 2.1%,条件照样成立。

图 3|安记食品 603696,20251226,收盘 26.19
同形态的失败例。形状一样,信号日后五天跌两成。形态对,不等于马上涨。

图 4|三川智慧 300066,20250307,收盘 4.48
低位磨人。信号出在下跌中继,二十天跌 23%。金叉在低位,不代表底部到了。
看图时盯三个标注:一、紫色虚线到蓝色竖线隔了多少根,那就是 N1。四张图分别是 7、31、37、31 根。二、橙色虚线是双高日的最高价,看信号日之后有没有站上去。三、下方量柱:双高日那根一定是整段最高,信号日那根通常明显矮下去。
四、九道条件各筛掉多少
同一批 400 只票、同样的 900 根日线,一道一道往下数:

数据来自本地通达信日线,每层只在上一层剩下的里面继续筛
从 357,462 根到 101 根。三处值得单独说:
第一处,最狠的一刀在第二层。「昨天同时是整段最大量和最高价」这一个条件,把 178,914 根砍到 7,361 根,只剩 4.1%。后面八层加起来,砍掉的还没有这一层多。
第二处,MACD 那一层砍掉六成。3,658 根到 1,362 根,只剩 37.2%。MACD 柱要在今天下穿,同时 DEA 已经站上零轴,两个动作落在同一天,机会本来就不多。
第三处,量能二选一又砍掉近八成。473 根到 101 根。放量那条路要同时满足六个条件,缩量那条路只要一条,所以最后成交的信号里,98 次走的是缩量那条。
为什么放量那条路几乎不出信号:前四道过滤之后,剩下的 309 根里,「今天放量」只成立 15 根,4.85%。这一条就把那条路堵死了。其余五条是 72.8%、84.1%、68.9%、51.5%、91.6%,都还留了不少。想不通为什么信号这么偏,答案就在这一个数字上。
五、实战使用注意事项(必看)
① 信号非常少。每只票 900 根日线里平均出 0.25 次。它不是每天给提示的指标,装上去连着几周空仓是常态。
② 起点要靠零轴下方那条金叉。没有它,N1 会一直往前顶,区间越拉越长,两个「全区间最高」也就越难同时成立。
③ 日线要留够长。公式要往前翻很久,翻不到就从有数据的那天算起。本地只存一两年,N1 会被截断,结果和全历史不一样。
④ 副图和选股是同一段源码。这两份一字不差。最后一行 XG 就是选股结果,前面二十五行都是它的计算过程。装副图,信号落在哪根 K 线看得见;装选股,能扫全市场。
⑤ 形态不是买点。四张图里两张涨两张跌,样本内 20 天后上涨的比例是四成。它筛的是「冲高之后第一次回落」这种位置,后面怎么走,还得看大盘和个股自己。
六、延伸学习:三个函数撑起整个计时
这套公式的骨架其实就三个函数,换个指标也能套:
BARSLAST(条件):上一次条件成立到现在隔了几根。用来做「起点」,一次算完,后面所有窗口都拿它当长度。
HHV(X,N):N 根里的最大值。窗口写 N1+1 这种变量,就成了「从起点到现在」的动态窗口。
EVERY(条件,N):N 根里是不是每天都成立。配 REF(...,2) 用,意思是「截止前天往前数的那一段里,一根都没出过事」。
三个凑一起就是一套通用写法:先用 BARSLAST 定起点,再用 HHV 在起点到现在这段里找特征日,最后用 EVERY 检查这段路的干净程度。换成别的形态,改中间那个特征日的定义就行。
七、完整源码(复制前先对照上方逐层解读)
副图和选股都用下面这一段,复制过去就行。
免责声明:本文只做通达信公式源码的逻辑拆解与统计说明,不构成任何投资建议,也不代表对未来走势的预测。文中的次数与比例是历史日线统计,样本为 400 只个股最近 900 根日线,不代表全市场,也不代表今后的表现。指标本身存在滞后与失效的可能,任何使用后果由使用者自行承担。数据截至 2026 年 10 月。















































































