ARTICLE · 1271396
通达信「高开再起」指标源码解读:涨停之后静下来,等一次跳空
通达信公式源码解读
「高开再起」说的是一个先后:这只票先涨停过,然后安静下来,安静到没人再跳空高开;等到某个早上忽然又跳空上去,就是它出信号的那一天。
中间那段安静才是关键。涨停之后还在往上冲、隔三差五高开的票,它一律不要;它等的是热闹散尽之后,被重新点着的那一下。
主板 3,189 只票、全历史 12,950,570 根日线跑下来,最后剩 6,333 次,占万分之四点九。
下面把它拆开,看看七道条件各砍掉多少,再看这 6,333 次后面实际走成什么样。
一、这个指标在做什么?(整体逻辑速览)
源码 10 行,一行一件事。归成六层,从认出涨停一路推到出信号:
① 定板层:按代码前缀分成三组,给每组一个涨跌幅,用来算涨停价
② 认板层:收盘价等于当天最高价,并且摸到了按昨收算出来的涨停价
③ 计时层:连了几根板、距上次涨停隔了几根
④ 静默层:涨停之后这一段,最大的高开幅度不到 2%
⑤ 干净层:涨停那天往前 30 根里,没有连续三个涨停
⑥ 信号层:昨天五条全成立,今天在主板,高开 3% 到 3.99%
二、逐层拆解
① 定板:三组前缀,一个兜底
前三行按代码前缀分三组。SH 是 60 和 00,主板;SZ 是 30 和 68,创业板与科创板;SS 是 9 开头。第四行给每组一个涨跌幅,0.1、0.2、0.3,最后那个 100 是兜底。
100 这个数值得单独说。认不出的代码,涨停价会被算到天上去,那条判断就永远不成立,等于不查涨停。想让某类代码不参与涨停判断,给它一个达不到的幅度就行。
这一层要记的:ZTPRICE 的第二个参数是幅度,写 0.1 就是 10%。这一行本身不出信号,它是给下一行算涨停价用的。
② 认板:两个条件同时成立
ZT 要两件事同时成立。C=H,收盘价就是当天最高价;C>=ZTPRICE(REF(C,1),X1),收盘价摸到了按昨收算出来的涨停价。前者说明收在最高,后者说明那个最高价就是板。两个一起,才算封住。
少任何一个都不行。只有 C=H,会把「收在最高但没涨停」的普通阳线算进来;只有价格够,会把盘中冲上涨停又掉下来的算进来。这一点在下一层会用到。
这一层要记的:ZTPRICE 用的是昨天的收盘价,写 REF(C,1) 取上一根。分母取错,涨停价就整体偏一档。
③ 两个计时器:一个数长度,一个数距离
LBTS 数的是「连了几根板」。今天涨停算 1,连着两天算 2,第三天算 3。ZTN 数的是「距上次涨停几根」。今天涨停是 0,昨天涨停今天是 1,十天前涨停今天是 10。
两个名字长得像,数的东西完全不同:一个在量长度,一个在量距离。后面第 ⑤ 层两个都要用,一个用来排「连续三个涨停」,一个用来定「安静期有多长」。
这一层要记的:BARSLASTCOUNT 数连续成立了几根,BARSLAST 数上次成立距今天几根。这两个函数混用,整段逻辑就偏了。
④ 开盘涨幅:用开盘价算
JZF 是今天开盘价相对昨天收盘的百分比。分子取 O,不取 C。所以它量的是今天早上跳空多高,今天涨了多少不归它管。后面那个 3 和 3.99,比的都是它。
这一层要记的:同一个 REF(C,1) 做分母,分子换成 O 就是高开,换成 C 就是涨幅。这两个数在涨停板附近能差出十个点。
⑤ 昨天那五条:找安静期的终点
TT1 是五条 AND 起来,缺一条就不成立:
· COUNT(ZT,60)>0:往前 60 根里出现过涨停
· ZTN>5:最近那次涨停,距今天超过 5 根
· ZTN<60:距今天不到 60 根
· HHV(JZF,ZTN)<2:涨停之后这一段,每天的高开幅度最大也不到 2%
· REF(HHV(LBTS,30)<3,ZTN):回到涨停那天,那天往前 30 根里,连续涨停最多只有 2 根
第五条最容易看错。别读成「现在往前 ZTN+30 根」。它是先回到 ZTN 根之前那一天,再从那一天往前数 30 根。REF 的第二个参数是变量,所以每一次都是「回到涨停那天去看」。
第四条同样是动态窗口。HHV(JZF,ZTN) 里的 ZTN 每天都不一样,窗口就每天都不一样。窗口跟着变量走,这是这套公式最核心的手法:先定一个起点,再从起点到现在这一段里讲条件。
第 3 条其实不用写。第 1 条要求「60 根内出现过涨停」,第 2 条要求「距上次涨停超过 5 根」,两条一夹,ZTN 最大就是 59。所以 ZTN<60 永远不会拦下任何一根。实测也是这个结果:表里第 3 行,上一行的 4,819,283 根原样留下来,一根没少。
⑥ 今天出信号:三个条件
XG 是三个条件:REF(TT1,1),昨天那五条成立;SH,今天这支票在主板;BETWEEN(JZF,3,3.99),今天高开在 3% 到 3.99% 之间。
REF(TT1,1) 是这一行的重点。写成 TT1,信号就落在「今天也满足五条」的日子上,那基本就是涨停当天。加上 REF 之后,信号日才变成「安静期过后的第一个跳空」:昨天还在安静期里,今天早上跳了。
这一层要记的:BETWEEN(X,A,B) 是 A<=X<=B,两头都算。所以 3.00 和 3.99 都算信号,2.99 和 4.00 不算。
三、实战图鉴:信号在图上长什么样
下面四段都是真实日线。橙色虚线是那次涨停,蓝色实线是信号日,橙色点线是涨停日的收盘价,横着拉过来做参照。

图 1|杭钢股份 600126,20250127,收盘 5.20
涨停后横 12 根,然后一路上去。信号日之后连拉,二十天涨 136%,20 天内最高摸到 +183%。

图 2|创新医疗 002173,20230508,收盘 6.95
等了 49 根才动。信号出来头五天几乎没涨,第 10 天才开始走,二十天 +80%。

图 3|东睦股份 600114,20250224,收盘 24.72
同样的形状,20 天一次没红过。信号日之后一路往下,20 天内最高也只有 -2.1%,二十天 -30%。

图 4|派林生物 000403,20230103,收盘 24.14
贴着上界 3.91%,什么也没发生。高开幅度最接近 3.99 的那一档,结果二十天 -1.0%,涨过 4% 就回去了。
看图时盯三处:一、橙色虚线和蓝色实线之间隔了几根,那就是 ZTN。四张分别是 12、49、12、14 根。二、橙色点线是涨停日收盘。信号日站没站上去,跟后面怎么走没关系:杭钢站上了、后面涨 136%,东睦也站上了、后面跌 30%,创新医疗没站上、后面照样涨 80%。三、信号日那根的开盘价,一定比前一天收盘高 3% 到 3.99%。四张分别是 3.86%、3.62%、3.21%、3.91%。
四、七道条件各筛掉多少
主板 3,189 只票、全历史 12,950,570 根日线,一层压一层往下数。表里每一行只在上一行剩下的里面继续筛:
从 12,950,570 根到 6,333 根。三处值得单说。
第一处,第 3 行一根没筛掉。上一行的 4,819,283 根原样过来,两边数字一模一样,都是 3,993,119 根。原因上一节写了:「60 根内出现过涨停」和「距上次涨停超过 5 根」一夹,ZTN 最大只有 59。这一条留着不影响结果,删掉也不影响结果。
第二处,最狠的两刀在第 4 行和第 6 行。第 4 行「涨停之后没高开过 2%」,把 3,993,119 根砍到 1,478,735 根,只剩 37.03%。这一条在挑「安静」,安静不下来就不是它要的形态。第 6 行「今天高开 3% 以上」更狠,1,376,714 根只剩 14,511 根,1.05%。高开 3% 本身就是少数日子,再过前面五条,能同时成立的极少。
第三处,3.99 这个上界砍掉一半多。高开 3% 以上的 14,511 根里,只有 6,333 根落在 3% 到 3.99% 之间,占 43.64%。换句话说,一旦高开超过 3%,一半以上会直接开到 4% 以上去。这个上界不是装饰,它把「已经跳太高」的那一半挡在外面。
为什么信号这么少:7 行里真正起作用的是三刀,第 1 行砍掉六成三(只有 37.21% 的日子,往前 60 根里出现过涨停),第 4 行再砍掉六成三,第 6 行再砍掉九成九。三刀乘起来,就是万分之四点九。
筛出来之后,它走得怎么样
6,333 次信号里,能算到 20 天后的 6,190 次:最近的一批还没走完 20 天,另外 120 次在窗口内遇到除权也剔掉了(不复权价算收益,遇到送转会算出假跌)。
对照一下:同一批 12,886,790 根日线,不管是不是信号日,20 天后上涨的比例是 48.4%,中位收益 -0.5%。信号后的 47.0% 和中位 -1.0%,比这个基准还低一点点。
所以这个信号不带胜率。它筛的是位置。结果怎么样,它不管。指望它出了信号就涨,这 6,333 次数据不支持这个指望。
但另有一件事很清楚:它出手之后,20 天里有 94.1% 的样本都涨过。按区间最高点算,中位能到 +10.3%。这是乐观口径,事后才知道哪个点是最高,真按这个数去做,做不到。同一段区间里,最低开盘价的中位是 -7.4%。换句话说,二十天里它通常会给你一次机会,但那机会落在哪天、能拿到多少,这套公式不回答。

图 5|本地通达信日线,2007 至 2026 年,5,676 次信号(更早的 657 次股票太少,没画)
分年看,信号扎堆的地方是牛市:2015 年 623 次,2008 年 376 次,2017 年只有 109 次。数量多说明高开遍地,跟信号好不好没关系。最近四年分别是 232、470、435、406 次,摊到每个交易日不到两次,落到单只票上,几年轮不到一次。
五、实战使用注意事项(必看)
① 信号很少。全市场一年 400 次上下,摊到每个交易日不到两次。装上去连着几周空仓是常态,单只票几年碰不到一次。
② 除权会让涨停价算错。涨停价按 REF(C,1) 算,除权那天昨收还是除权前的价,算出来的涨停价偏高,ZT 判不出来;同一天 JZF 还会冒出一个巨大的负数。这几天前后的信号会失真。我统计收益时剔了 120 次这类样本。
③ ST 的 5% 不在这套公式里。ST 股涨停封在 5%,公式按 10% 算涨停价,那条 ZT 永远不成立。所以 ST 期间基本不会出信号。
④ 9 开头那一组给的是 0.3。920 开头的北交所是 30%,900 开头的沪市 B 股是 10%,这一组把两种混在一起按 30% 算。出信号只做主板,不影响结果;把副图挂到 B 股上,涨停判断会偏。
⑤ 副图和选股是同一段源码。最后一行 XG 就是选股结果,前面九行是它的计算过程。装副图,信号落在哪根 K 线看得见;装选股,能扫全市场。
六、延伸学习:三个函数加一个变量窗口
这套公式的骨架就四样东西,换个形态也能套:
BARSLAST(条件):上次条件成立到现在隔了几根。用来定起点,一次算完,后面所有窗口都拿它当长度。
BARSLASTCOUNT(条件):连续成立了几根。用来数连续涨停、连续阳线这种「长度」。
HHV(X,N) 的 N 写成变量:窗口跟着变量走,就成了「从起点到现在」的动态窗口,不用事先知道有多少根。
REF(X,N) 的 N 写成变量:回到 N 根之前去看那一天。配合上面两个用,可以「回到起点那天,再看看那天的情况」。
四样凑起来是一套通用写法:先用 BARSLAST 定起点,再用 HHV 在起点到现在这段里讲条件,需要看起点那天的表现就套一层 REF,需要数连续就用 BARSLASTCOUNT。换成别的形态,改中间那个条件就行,骨架不用动。
七、完整源码
副图和选股都用下面这一段,复制过去就行。
免责声明:本文只做通达信公式源码的逻辑拆解与统计说明,不构成任何投资建议,也不代表对未来走势的预测。文中的次数与比例来自本地日线统计,样本为主板 3,189 只个股的12,950,570 根不复权日线,不代表全市场,也不代表今后的表现。指标本身存在滞后与失效的可能,任何使用后果由使用者自行承担。数据截至 2026 年 10 月。















































































