夜雨聆风学习资料网

ARTICLE · 1299508

通达信「晨曦突击」指标源码解读:跳空高开之后,收盘要刚好踩住前高

通达信「晨曦突击」指标源码解读:跳空高开之后,收盘要刚好踩住前高

先说这根柱子长什么样。一只票安静了很久,5 日线压在 10 日线下面,某天开盘直接跳到昨收上方半个点到四个点之间,盘中一路往上走,收盘比开盘高出四个多点到将近六个点,同时把 10 日线踩在脚下;就在这一天,KDJ 那条快线刚从下往上翻过自己的三日均线,而收盘价又刚好顶在前 5 天最高价的附近。这六个条件要在同一根 K 线上同时成立,图上才会打出一行红字「晨曦突击」。

这份指标一次给了三份源码:主图 18 行、副图 14 行、同名选股 11 行。主图和选股是同一套六个条件;副图是同一套判断外加三条画柱子的语句。三份装上去,同一个股票同一天该标就都标,不会一个标一个不标。

信号稀到什么程度,先看一张图。

图 1|信号按月分布,2020 年 8 月到 2026 年 11 月。横轴是月份、纵轴是当月信号数,红色虚线是月均 54 个。多数月份在几十个,个别月份冲到两百多个,2024 年初有一段明显的低谷

我拿 5,096 只股票、合计 712 万个股票日把信号跑了一遍:一共 4,089 个信号,落在 955 个交易日里,平均每个交易日 4.28 个。把买入价定在信号次日开盘、持满 20 个交易日后卖出,平均收益 +2.51%,同期全样本的平均是 +0.92%,胜率 50.94% 对 47.44%。

结论先说清楚:这套条件确实有正向偏度,但要靠时间换空间。持 1 天、3 天几乎没有优势(超额 +0.14 与 +0.51 个百分点),持到 5 天以上才拉开(+1.39 个百分点),10 天回落到 +1.16,20 天最厚(+1.60 个百分点)。它抓的是「刚启动的那一下」,剩下的行情要靠拿住。

如果这篇对你有用,点右上角把公众号设为星标,新稿会先推给你。

一、三份源码,同一套判断的三种穿法

先分清这三份各自干什么① 主图(18 行):算 10 日线,判六个条件,在信号处画图标、涂红 K 线、写「晨曦突击」,再补三条均线作参照② 副图(14 行):把同样的判断搬到副图,用一根高度 10 的红柱子标记,外加一个点状输出③ 选股(11 行):判断条件原样照搬,去掉全部画图语句,只留一个 XG 布尔值三份的判断条件逐条相同,差别只在「怎么显示」。

这一点决定了它的用法:主图用来看,选股用来筛。日常盯盘装主图,收盘后跑一遍条件选股,两边的结果是同一天同一批票。副图那份功能上和选股重复,装上是为了在副图区一眼看到柱子,嫌乱可以不装。

三份之间的写法差别只有两处,都不影响结果:① 主图把 10 日线先算成 ZBHJ3 再拿去比较,副图和选股直接在 CROSS(C,MA(C,10)) 里现算,两种写法算出同一个数;② 主图把「跳空」和「实体」并在一行里(ZBHJ5),副图和选股都拆成两条(ZBHJ5 管实体、ZBHJ8 管跳空),最后一样是求与。

二、六个条件逐层拆开

1. 先卡当天的形态:跳空高开 + 实体涨幅

ZBHJ4:=CROSS(C,ZBHJ3);ZBHJ5:=C>O AND C/O<1.057 AND C/O>1.040 AND O/REF(C,1)>1.005 AND O/REF(C,1)<1.040;

ZBHJ4 就一件事:收盘价上穿 10 日线,前一天还在下面、今天站上去了,这就是一次穿越。ZBHJ5 是两个区间相乘:实体涨幅必须在 4.0% 到 5.7% 之间(收盘除以开盘),跳空幅度必须在 0.5% 到 4.0% 之间(开盘除以昨收)。两头都设了上限,涨太猛的不算,跳太空的不算,平开的不算。

两个区间都是「开区间」,端点上不算:刚好 4.0% 的、刚好 5.7% 的,都进不来,必须严格落在中间。

2. 再要求均线是空头排列:5 日线还在 10 日线下面

ZBHJ2:=MA(C,5);ZBHJ3:=MA(C,ZBHJ1);

ZBHJ1 是个常数 10,只为让 ZBHJ3 写成 MA(C,ZBHJ1)。整条要求在信号当天 MA5 仍然低于 MA10,也就是均线还没转多头。这一条把「已经在涨势中途」的票挡在外面,专挑刚从下面翻上来的第一根。

3. 第三个条件:KDJ 那条快线刚翻上来

ZBHJ6:=(CLOSE-LLV(LOW,12))/(HHV(HIGH,12)-LLV(LOW,12))*10;ZBHJ7:=SMA(ZBHJ6,3,2);ZBHJ8:=SMA(ZBHJ7,10,9);ZBHJ9:=MA(ZBHJ8,3);ZBHJ10:=ZBHJ8>=ZBHJ9 AND NOT(REF(ZBHJ8>=ZBHJ9,1));

这是标准 KDJ 的算法骨架,只是值域压到 0 到 10:先用 12 日最高最低价把收盘价归一化成 ZBHJ6,再用 SMA(...,3,2) 平滑成快线 ZBHJ7,第二次 SMA(...,10,9) 平滑成慢线 ZBHJ8,ZBHJ9 是慢线自己的 3 日均线。ZBHJ10 要的是「今天刚金叉」:今天慢线站在自己均线上方,昨天还在下方。

看图时留意:SMA 在通达信里是带权重的递推平均,第三个参数越大越平滑,它不是简单平均。抄公式的时候这三个数字(3,2 / 10,9 / 3)一个都别改,改了就是另一个指标。

4. 最后一个条件:收盘要卡在前 5 天最高价附近

ZBHJ11:=C*100<REF(HHV(H,5)*101,1) AND C*100>REF(HHV(H,5)*96,1);

这一行两边都乘了 100,等价于「收盘价落在前 5 日最高价的 96% 到 101% 之间」。下限把「离前高还很远」的票筛掉,说明它已经摸到前期高点;上限把「一根大阳线冲过前高太多」的票也筛掉,那种往往是冲高回落的第一天。换句话说,它要的是贴着前高、但还没甩开前高那一下。

5. 六个条件相加,信号就被筛成这么少

DRAWICON(ZBHJ5 AND ZBHJ4 AND ZBHJ10 AND ZBHJ11 AND ZBHJ2<ZBHJ3, L*0.98, 1);

这是主图的判定行,后面几条 STICKLINE、DRAWTEXT、DRAWICON 都只是引用它。逐个条件在全样本里的占比,加上逐层求交之后剩下的条数:

条件
全样本命中
占比
跳空 + 实体(ZBHJ5)
46,042
0.65%
上穿 10 日线(ZBHJ4)
619,278
8.69%
KDJ 刚金叉(ZBHJ10)
1,093,531
15.35%
收盘贴前高(ZBHJ11)
3,150,722
44.22%
MA5 低于 MA10
3,723,176
52.25%
求交顺序
剩余信号
ZBHJ5 且 ZBHJ4
16,233
再加 ZBHJ10
9,975
再加 ZBHJ11
6,059
再加 MA5 低于 MA10
4,089

第一道闸就把样本里 99.35% 的股票日挡掉了,剩下的条件再逐层筛,最后剩 4,089 条。稀不稀不是重点,重点是筛出来之后表现怎么样,这是下一节的事。

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

图 2|光迅科技 002281,2026-03-25。信号日收 86.45,实体 +4.31%,量比 1.45;次日开盘买入,20 个交易日 +55.34%

图 2 是走得顺的样子。信号日那根阳线的实体并不夸张,4.31%,正好落在公式要的区间里;开盘 82.88,比昨收高 3.8%,卡在 4% 的上限之内;收盘 86.45 站上 10 日线,也刚好压在前 5 日最高价 87.50 的下方一点。后面 20 天走出了主升段。

看图时留意三个位置:① 信号日之前的 5 日线一直被 10 日线压着,均线是空头排列;② 信号日收盘 86.45 与橙色虚线 87.50 只差一块钱,就是公式要的「贴前高」;③ 统计用的是次日开盘价,不是信号日收盘价。

图 3|奥赛康 002755,2026-05-20。信号日量比 3.19;次日开盘买入,20 个交易日 −26.90%

图 3 是同一天能筛出来、但结果相反的票。形态上它完全合格:跳空、实体 5% 出头、上穿 10 日线、KDJ 刚金叉、收盘卡在前高 17.33 附近。扎眼的是成交量:信号日量比 3.19,也就是当天的成交量是前 5 个交易日均量的三倍多,后面 20 天直接走了 −26.90%。

把能算满 20 日的 3,928 个信号按信号日量比分三档,20 日平均收益是这样的:

图 4|量比 = 当日成交量 ÷ 前 5 个交易日平均成交量。三档分别是 3.79%、2.61%、2.07%,单调往下走

量比大于 2 的那一档,1,130 个信号,20 日平均 +2.07%、胜率 50.53%,仍然是正的,比基准(+0.92% / 47.44%)还高出 1.16 个百分点;但跟量比 1 到 2 那档的 +2.61% 比少了一半超额,跟量比小于 1 那档的 +3.79% 比差了将近一倍。三档是单调往下走的:越放量,后面的空间越小。图 3 那只票就落在最差的一档里,而且是那一档里结果偏差的那一头。

图 5|金太阳 300606,2026-09-18。实体刚好 +4.008%,贴着 4% 的下限;次日开盘买入,20 个交易日 −18.12%

图 5 是「卡在门槛上」的例子。实体涨幅 +4.008%,离公式的下限 4.0% 只差 0.008 个百分点,刚好够格。这种票最容易被误读成「标准形态」,实际上它只是勉强越过了第一道闸,后面的走势和形态漂亮与否没有关系。公式给的是一个布尔值,不给「像不像」的分寸。

四、版本差异对比

项
主图(18 行)
副图(14 行)
选股(11 行)
10 日线
先算成 ZBHJ3
现算 MA(C,10)
现算 MA(C,10)
实体与跳空
合并成一条 ZBHJ5
拆成 ZBHJ5、ZBHJ8
拆成 ZBHJ5、ZBHJ8
KDJ 金叉
ZBHJ10
ZBHJ7
ZBHJ7
收盘贴前高
ZBHJ11
ZBHJ10
ZBHJ10
MA5 < MA10
有
有
有
画图语句
7 条(图标 1/涂柱 2/文字 1/均线 3)
3 条(柱/文字/点)
无
输出
DRAWICON 等引用判定
XG、NOTEXT_SIGNAL
XG

用法上分清楚就行:主图负责看历史,选股负责每天筛,副图是可有可无的复读机。三份的条件没有一处不同,所以不存在「主图标了选股没选出来」的情况,真出现不一致,先查是不是装了两份不同版本的源码。

五、实战使用注意事项

① 它是形态筛,不是买点建议。能算满 20 日的 3,928 个信号,20 日平均 +2.51%,胜率 50.94%,中位数只有 +0.35%,意思是约一半的信号 20 天后原地踏步甚至亏钱,靠少数大赢家把平均数拉起来。② 信号日的量要看。三档是单调往下的:量比小于 1 那档 +3.79%(179 个,胜率 57.54%),1 到 2 那档 +2.61%(2,619 个,胜率 50.67%),大于 2 那档 +2.07%(1,130 个,胜率 50.53%)。中间那档样本占三分之二,最靠得住;两头样本少,别太当真。③ 持有期决定成败。持 1 天 +0.23%、持 3 天 +0.70%,基本没有优势;持 5 天 +1.67%,10 天回落到 +1.65%,持 20 天 +2.51% 才最厚。想当天进当天出,这套指标帮不到你。④ 跳空上限 4% 是有用的。公式里 O/REF(C,1) 卡在 1.005 到 1.040,开盘跳空超过 4% 的票根本不进池子,这条挡掉的是最容易被套的高开。⑤ 收盘卡前高的区间不是越靠上越好。按收盘价相对前 5 日最高价分三档,落在「低于前高 0~2%」这一档最好(1,773 个信号,平均 +2.91%、胜率 53.53%),反而是「已经超过前高」那档只有 +2.65%。

这几条不是从公式里推出来的,是把信号逐个算出来之后分组统计得到的。公式本身一个字没动,变的是我从它的结果里读出来的东西。

六、延伸学习

这套指标真正值得学的地方,是它把「形态 + 均线位置 + 指标金叉 + 价格位置」四类信息压进同一个布尔值。四个条件各自都不稀奇,单用任何一个为真的比例都在 0.6% 到 52% 之间,叠起来之后信号变稀,但每个信号的信息量变大。

四条里最容易被忽略的是「5 日线还在 10 日线下面」这一条。它把已经在涨势中途的票挡在外面,专挑刚从下面翻上来的第一根,这是它和「追涨」类公式最本质的区别——同样一根跳空阳线,出现在连涨两个月的票上就不会有信号。

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

主图指标(18 条)

ZBHJ1:=10;ZBHJ2:=MA(C,5);ZBHJ3:=MA(C,ZBHJ1);ZBHJ4:=CROSS(C,ZBHJ3);ZBHJ5:=C>O AND C/O<1.057 AND C/O>1.040 AND O/REF(C,1)>1.005 AND O/REF(C,1)<1.040;ZBHJ6:=(CLOSE-LLV(LOW,12))/(HHV(HIGH,12)-LLV(LOW,12))*10;ZBHJ7:=SMA(ZBHJ6,3,2);ZBHJ8:=SMA(ZBHJ7,10,9);ZBHJ9:=MA(ZBHJ8,3);ZBHJ10:=ZBHJ8>=ZBHJ9 AND NOT(REF(ZBHJ8>=ZBHJ9,1));ZBHJ11:=C*100<REF(HHV(H,5)*101,1) AND C*100>REF(HHV(H,5)*96,1);DRAWICON(ZBHJ5 AND ZBHJ4 AND ZBHJ10 AND ZBHJ11 AND ZBHJ2<ZBHJ3, L*0.98, 1);MA5:MA(C,5),COLORWHITE,LINETHICK1;MA10:MA(C,10),COLORYELLOW,LINETHICK1;MA20:MA(C,20),COLORMAGENTA,LINETHICK1;STICKLINE(ZBHJ5 AND ZBHJ4 AND ZBHJ10 AND ZBHJ11 AND ZBHJ2<ZBHJ3, O, C, 2.5, 0), COLORRED;STICKLINE(ZBHJ5 AND ZBHJ4 AND ZBHJ10 AND ZBHJ11 AND ZBHJ2<ZBHJ3, H, L, 0, 0), COLORRED;DRAWTEXT(ZBHJ5 AND ZBHJ4 AND ZBHJ10 AND ZBHJ11 AND ZBHJ2<ZBHJ3, L*0.95, '晨曦突击'), COLORRED;

副图指标(14 条)

ZBHJ1:=(CLOSE-LLV(LOW,12))/(HHV(HIGH,12)-LLV(LOW,12))*10;ZBHJ2:=SMA(ZBHJ1,3,2);ZBHJ3:=SMA(ZBHJ2,10,9);ZBHJ4:=MA(ZBHJ3,3);ZBHJ5:=C>O AND C/O<1.057 AND C/O>1.040;ZBHJ6:=CROSS(C,MA(C,10));ZBHJ7:=ZBHJ3>=ZBHJ4 AND NOT(REF(ZBHJ3>=ZBHJ4,1));ZBHJ8:=O/REF(C,1)>1.005 AND O/REF(C,1)<1.040;ZBHJ9:=MA(C,5)<MA(C,10);ZBHJ10:=C*100<REF(HHV(H,5)*101,1) AND C*100>REF(HHV(H,5)*96,1);XG:ZBHJ5 AND ZBHJ6 AND ZBHJ7 AND ZBHJ8 AND ZBHJ9 AND ZBHJ10;STICKLINE(XG, 0, 10, 0.08, 0), COLORRED;DRAWTEXT(XG, 8, '  晨曦突击'), COLORRED;NOTEXT_SIGNAL:IF(XG,1,0), COLORRED,POINTDOT;

条件选股(11 条)

ZBHJ1:=(CLOSE-LLV(LOW,12))/(HHV(HIGH,12)-LLV(LOW,12))*10;ZBHJ2:=SMA(ZBHJ1,3,2);ZBHJ3:=SMA(ZBHJ2,10,9);ZBHJ4:=MA(ZBHJ3,3);ZBHJ5:=C>O AND C/O<1.057 AND C/O>1.040;ZBHJ6:=CROSS(C,MA(C,10));ZBHJ7:=ZBHJ3>=ZBHJ4 AND NOT(REF(ZBHJ3>=ZBHJ4,1));ZBHJ8:=O/REF(C,1)>1.005 AND O/REF(C,1)<1.040;ZBHJ9:=MA(C,5)<MA(C,10);ZBHJ10:=C*100<REF(HHV(H,5)*101,1) AND C*100>REF(HHV(H,5)*96,1);XG:ZBHJ5 AND ZBHJ6 AND ZBHJ7 AND ZBHJ8 AND ZBHJ9 AND ZBHJ10;
复制时只框选深色块本身,别把上面的粗体小标题一起拖进去;手机屏幕上这个块会自动折行,折行不代表换行,语句边界一律看分号。

互动问答

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

制作不易,麻烦点亮右下角的 "赞" + "在看" 支持一下。

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

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

免责声明

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

指标是辅助分析工具,其信号仅反映特定数学条件是否满足,不代表对未来走势的预测。文中统计数字基于未复权本地日线、已剔除疑似除权样本,仅用于说明方向,不构成收益承诺。实际使用时请务必结合自身判断和其他分析方法,理性决策。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料