陆股通假期缺口:内外盘休市错位带来的跳空风险
A 股放假时港股照常开市,全球风险继续被定价,而 A 股持仓者被锁在场外无法反应。12 年模拟里 A 股休而港股开的日历日有 145 天。开市首日的跳空能被休市期间的外盘信息解释到什么程度?答案是几乎完全解释:长假后首日跳空对休市期间港股累计收益回归,斜率 0.543、t=5.50、R²=0.402;把跳空对积压全球因子直接分解,R² 高达 0.968,残差标准差只剩 9.97bp。三个对照全部通过——港股收益打乱后 400 次置换的 |t| 95 分位只有 1.93 且没有一次超过真实 t 值,用下一段假期的外盘收益做伪未来对照 t=0.99,同步日历的纯净引擎 t=1.18。跳空幅度随休市长度单调放大:隔夜 36bp、周末 63bp、小长假 90bp、春节国庆 122bp;长假跳空方差是隔夜的 6.12 倍,而按日历天数线性外推只预期 5.74 倍。横截面 beta 单调性也成立,最高 beta 组长假/隔夜比值 2.25。但可交易性的结论是负面的,而且不是因为成本:整个策略的存活完全悬在「开盘集合竞价吸收了多少信息」这个不可观测参数上——吸收 62% 时盘中还剩 21.3bp,吸收 95% 时只剩 1.62bp(t=0.93),吸收 100% 时归零。扣 15bp 成本后 47 次交易平均 -6.78bp、胜率跌到 46.8%
A 股春节休市九天。这九天里,港股开了大半,美股全开,原油和美债一天没停。全球风险定价照常进行,而 A 股持仓者被锁在场外,一个动作都做不了。
等到开市那天早上,所有积压的信息在集合竞价的几分钟里一次性砸进价格。这就是假期缺口。
问题不在于「跳空存在」——这是显然的。问题在于两个更具体的东西:第一,跳空能被休市期间的外盘信息解释到什么程度?第二,如果能解释,这个可预测性是不是可交易的?
12 年模拟给出的答案很不对称:第一个问题的答案是「几乎完全能」(R² = 0.968),第二个问题的答案是「基本不能,而且原因不是交易成本」。

一、先把日历错位造出来#
这个研究的全部信息来源就是「两个市场的休市日不重合」。日历建模错了,后面全是空转。
A 股和港股的错位有三种形态:A 股独有的长假(春节、国庆、五一)、港股独有的假期(复活节、圣诞、佛诞、耶稣受难日)、双方都休但长度不同(春节港股只休三天,A 股休八九天)。
a_holiday = np.zeros(DAYS, dtype=bool)
for lo, hi in [(30, 38), (120, 125), (273, 281), (0, 3)]: # 春节/五一/国庆/元旦
a_holiday |= (doy >= lo) & (doy < hi)
h_holiday = np.zeros(DAYS, dtype=bool)
for lo, hi in [(95, 99), (358, 362), (0, 2), (135, 137), (183, 185)]:
h_holiday |= (doy >= lo) & (doy < hi)
h_holiday |= (doy >= 30) & (doy < 33) # 农历新年港股只休 3 天
h_holiday |= (doy >= 273) & (doy < 275) # 国庆港股只休 1 天
a_open = weekday & (~a_holiday)
h_open = weekday & (~h_holiday)python12 年 4380 个日历日里:A 股交易 2924 天,港股 2966 天,A 股休而港股开 145 天,港股休而 A 股开 103 天。
那 145 天就是本文的全部研究对象。
二、积压机制:跳空不是凭空产生的#
全球风险因子 g 每个日历日都在动,不管谁休市。A 股休市时,它对这个因子的暴露没有消失,只是记在账上没有结算。
pending += beta * acc # acc = 休市期间积压的全球因子
release_open = PASS_OPEN * pending # 开盘集合竞价释放一部分
pending -= release_open
release_intra = DECAY * pending # 盘中继续消化
pending -= release_intrapythonPASS_OPEN = 0.62 表示开盘瞬间反应掉 62%,剩下的在盘中和后续几天慢慢消化。这个参数是整篇文章的命门,第六节会专门拆它。
我还在长假期间注入了随机事件冲击——真实世界里长假常伴随政策发布或外部冲击(12 年里触发了 12 次)。这不是为了让结果好看,而是因为如果长假期间的因子波动和平时完全一样,那”长假风险更大”就只是天数问题,没有独立内容。
三、结果一:跳空随休市长度单调放大#
| 休市类型 | 样本数 | 平均绝对跳空 | 跳空标准差 | 平均休市日历天 |
|---|---|---|---|---|
| 隔夜 | 2315 | 36.1bp | 45.2bp | 1.0 |
| 周末 | 562 | 62.8bp | 78.4bp | 3.0 |
| 小长假 | 17 | 90.4bp | 104.6bp | 5.2 |
| 春节/国庆 | 30 | 122.4bp | 146.9bp | 9.5 |
春节国庆后的首日跳空是普通隔夜的 3.4 倍。
但真正值得看的是方差比。长假跳空方差是隔夜的 6.12 倍,而按积压日历天数线性外推(7.98 天 / 1.39 天)只预期 5.74 倍。
超出的那部分(6.12 vs 5.74)不是天数造成的,是长假期间事件冲击的额外贡献。如果只按「休市天数越多、方差越大」的随机游走直觉,会低估长假风险约 6.6%。这个差距不大,但它说明假期风险有一个不可归因于时间的成分。
四、结果二:跳空几乎完全由外盘信息决定#
把长假后首日的市场跳空,对休市期间港股累计收益做回归(封面右图):
斜率 0.543,t = 5.50,R² = 0.402,n = 47
斜率显著小于 1,说明 A 股开盘不会把外盘涨跌一比一抄过来——部分因为不完全传导,部分因为开盘只释放了 62%。
更彻底的分解是直接用「积压的全球因子 × 平均 beta × 开盘吸收比例」去解释跳空:

中间那张图:总跳空标准差 55.4bp,积压因子能解释掉 54.4bp,残差只剩 9.97bp,R² = 0.968。
这个 0.968 是本文最重要的数字,而且它是个坏消息。
它意味着假期跳空里 96.8% 是会计恒等式——A 股欠了几天全球因子的暴露,开市第一天把账结了。这不是市场失灵,不是定价错误,是”停牌期间风险照常累积”这个事实的必然结果。能被会计恒等式解释的东西,不构成 alpha。
五、三个必须排除的替代解释#
R² = 0.968 这么高,第一反应应该是「我是不是把答案偷偷喂进去了」。三个对照:

(a)安慰剂:把休市期间港股收益随机打乱 400 次重跑回归。打乱后 t 均值 -0.059,|t| 的 95 分位只有 1.93,400 次里没有一次达到真实的 5.50(超出比例 0.0%)。
(b)伪未来对照:用下一段假期的港股收益去解释本次跳空。如果引擎存在时间对齐错误,这个也会显著。实测 t = 0.99,R² = 0.021——不显著,时间对齐正确。
(c)纯净引擎对照:保留同一套日历错位,但让开盘跳空变成与外盘无关的独立噪音。港股收益仍然可观测且非退化,回归照样能跑。实测 t = 1.18——引擎不制造假信号。
(第一版这个对照我写成了「让港股与 A 股同步休市」,结果休市期间港股收益恒为 0,回归子方差为零直接抛 LinAlgError: Singular matrix。程序崩溃反而是好事——如果我给了它一个非零常数,回归会静默返回一个无意义的斜率,而我可能就那么信了。)
(d)横截面 beta 单调性(右图):如果机制是”积压的全球因子暴露”,那 beta 越高的股票跳空应该越大。五个 beta 分位的长假跳空标准差:80.4 → 115.5 → 136.4 → 156.8 → 202.3bp,严格单调。长假/隔夜比值也单调:1.62 → 1.95 → 2.04 → 2.13 → 2.25。
任何”整体市场在跳”的说法都解释不了这个单调性。
六、可交易性:结论悬在一个不可观测参数上#
到这里,可预测性是扎实的。那能不能交易?
策略很直接:长假后第一天,按休市期间港股方向,开盘价买入/卖空,收盘平仓,赚开盘没消化完的那部分。
| 单边成本 | 平均单次 | 胜率 | t 值 | 年化 Sharpe |
|---|---|---|---|---|
| 0bp | 23.22bp | 80.9% | 3.96 | 1.14 |
| 5bp | 13.22bp | 74.5% | 2.25 | 0.65 |
| 15bp | -6.78bp | 46.8% | -1.16 | -0.33 |
47 次交易,5bp 成本下勉强活着,15bp 就死了。盈亏平衡在 11.6bp 单边附近。
但成本不是真正的问题。真正的问题在右图。
整个策略的存活完全取决于「开盘集合竞价吸收了多少信息」这个我无法观测的参数:
| 开盘吸收比例 | 盘中可捕获 | t 值 | 扣 5bp 后 |
|---|---|---|---|
| 30% | 40.12bp | 3.85 | 30.12bp |
| 50% | 28.39bp | 3.80 | 18.39bp |
| 62%(基准) | 21.30bp | 3.71 | 11.30bp |
| 80% | 10.60bp | 3.23 | 0.60bp |
| 95% | 1.62bp | 0.93 | -8.38bp |
| 100% | -1.39bp | -0.87 | -11.39bp |
如果开盘集合竞价是有效的——也就是它一次性把积压信息定价完毕——那么盘中什么都不剩,策略精确归零。
这不是参数敏感性问题,是结论的定性性质由一个自由参数决定。我设 0.62,得到”有 21bp 可赚”;设 0.95,得到”没得赚”。两个都是我编的。
而且有理由认为真实值偏高:假期跳空是所有人都知道会发生、方向也大致知道的事件。集合竞价撮合的正是这批想在开盘就调整仓位的订单。一个全市场预期到的信息,很难在开盘后还留 20bp 在桌上。
所以诚实的结论是:这个策略在我的模拟里能赚钱,但它能赚钱的唯一原因是我假设了开盘定价不充分。这个假设我没有证据。
七、那这个研究还剩什么价值#
作为交易策略,基本没有。作为风险管理输入,价值明确。
其一,长假前的仓位是一个真实的风险敞口,且可以量化。 春节前满仓,等于对九天全球风险签了一张无法对冲的空白支票。跳空标准差 146.9bp 就是这张支票的面额,beta 1.5 的股票要按 202bp 算。这个数字在假期前就能算出来,不需要预测方向。
其二,方差按天数外推会低估。 6.12 倍实测 vs 5.74 倍线性预期。长假的风险不只是”天数多”,还有事件密度。做 VaR 时用 √t 缩放会系统性偏低。
其三,跳空方向的可预测性对减仓决策仍然有用。 就算你赚不到 21bp,休市期间港股大跌这个信息也能告诉你”明天开盘大概率低开”,从而决定是开盘就砍还是等反弹。判断方向和赚取价差是两回事,前者的门槛低得多。
八、这个研究没有覆盖的#
合成市场不是真实市场。 传导系数、开盘吸收比例、事件强度全是我设的。真实的陆股通还有额度限制、汇率波动、南北向资金行为差异,本文一概没建模。
47 个样本太少。 12 年只有 47 次长假后首日。所有长假结论都建立在这 47 个点上,t = 5.50 看着漂亮,但换一个 12 年窗口会抖得很厉害。真实研究应该用更长历史或更多市场对。
A/H 价差被忽略了。 我假设 A 股和 H 股共享同一个全球因子、只是本地噪音不同。真实的 A/H 溢价长期存在且波动巨大,两地对同一家公司的定价差异本身就是一个独立的、比假期缺口大得多的现象。
没有建模开盘流动性。 长假后首日的集合竞价深度、涨跌停触发、以及”所有人都想在开盘调仓”造成的冲击成本,全部没算。这些只会让实际可捕获收益低于 21bp,不会更高。
收尾#
三句话:
跳空是真的,而且可以精确解释。 长假后首日跳空 122bp,是隔夜的 3.4 倍;对休市期间外盘信息回归 t = 5.50;用积压全球因子分解 R² = 0.968,四个对照全部通过。
但 0.968 这个数字本身就是判决书。 能被会计恒等式解释掉 96.8% 的现象,剩下的 3.2% 才是 alpha 候选,而它的标准差只有 9.97bp——比交易成本还小。一个现象越是能被完美解释,它作为交易机会的价值就越低,这两件事是同一枚硬币。
最后,任何依赖”开盘定价不充分”的策略,都应该先问一句这个假设从哪来。 本文的 21bp 可捕获收益,全部来自我随手写下的 PASS_OPEN = 0.62。把它改成 0.95,策略就死了,而 0.95 对于一个全市场都预期到的事件来说,恐怕比 0.62 更接近现实。