halo 的技术博客

返回

你有没有想过一个问题:股市的钱,到底是在白天交易时段赚的,还是晚上闭市时赚的?

直觉告诉你当然是白天——毕竟价格跳动、成交、博弈都发生在 9:30 到 15:00。但一堆论文(Berkman, Jacobsen & Lee 2012 的 “Stocks Go Up by Night”;Liu, Luo & Zhang 2019)用美股数据给出反直觉结论:长期来看,几乎所有收益都发生在「隔夜」(close→open),而「日内」(open→close)几乎不赚钱,甚至略亏

更妙的是,这个异象还能变成可交易的信号:某只股票今天隔夜跳得越凶(尤其向上),今天日内越倾向于反向——也就是「隔夜承载情绪/过度反应,日内被信息交易者纠正」。这篇文章把这件事从指数层面、横截面层面、可交易层面三层跑通,并附上完整 Python。

一、收益的两段:隔夜 vs 日内#

任意一天的对数收益都能干净拆成两段:

rday=(closet1opent)隔夜+(opentcloset)日内r_{day} = \underbrace{(close_{t-1} \to open_t)}_{\text{隔夜}} + \underbrace{(open_t \to close_t)}_{\text{日内}}

  • 隔夜:收盘后到第二天开盘前。这段时间你无法交易,但信息(财报、宏观、海外)在累积,散户在「想了一晚上」后开盘挂单。实证上隔夜有正漂移 + 高波动——它是收益的发动机。
  • 日内:开盘到收盘的真实博弈。对指数而言,这段的漂移≈0 甚至略负——信息在开盘就被部分price-in,剩下的是零和博弈。

我们用一个 20 年、252 交易日/年的合成指数把这件事演示出来:隔夜给正漂移 μ=0.00045、波动 σ=0.0065;日内给轻微负漂移 μ=−0.00010、波动 σ=0.0072

跑出来:隔夜年化 +10.85%,日内年化 −1.39%,总年化 +9.32%。也就是说,如果把「隔夜」和「日内」分开投资,长期赚钱的几乎全是隔夜那段,日内那段在拖后腿。

指数层面:收益几乎全部来自隔夜(隔夜累计 vs 日内累计 vs 总累计)

三类年化收益:隔夜显著为正、日内为负、合计居中

二、为什么是隔夜?一个微观结构故事#

隔夜高波动 + 正漂移,背后是两类参与者的时间错配

  1. 散户主导盘前/盘后情绪:收盘后散户有整晚消化新闻、在论坛讨论、开盘挂单,情绪化追涨杀跌集中在开盘跳空。这种跳空富含过度反应噪声。
  2. 信息交易者主导日内:机构、套利者、做市商在盘中用真实信息纠正定错的价格,把隔夜的过度反应往回拉。

所以隔夜像是「投票机」,日内像是「称重机」。这引出一个极关键的可交易推论:如果隔夜跳变主要是过度反应,那么——

隔夜跳得越狠(尤其向上),同日日内越可能反向(均值回归)。

三、横截面:隔夜跳变预测日内方向(rank-IC)#

我们把上面的机制搬到横截面面板:300 只股票 × 5040 交易日。每只股票有两个隐藏成分:

  • S(散户情绪,放在隔夜):一阶自回归 Sd=ϕSSd1+εSS_d = \phi_S S_{d-1} + \varepsilon_S,取 ϕS=0.55\phi_S = -0.55——负自相关,隔夜涨多了下个日内回吐,这是反转的来源。
  • I(信息,放在日内):一阶自回归 Id=ϕIId1+εII_d = \phi_I I_{d-1} + \varepsilon_I,取 ϕI=0.85\phi_I = 0.85——强正自相关,信息缓慢释放、日内延续。

隔夜收益 = S + 噪声;日内收益 = I − 0.45·S + 噪声(反转项与 S 负相关)。

结果:隔夜→同日日内 rank-IC = −0.324(显著为负 → 反转成立);隔夜→次日日内 rank-IC = +0.177(持续性弱于同日)。

横截面 rank-IC:隔夜跳变 vs 同日/次日日内收益(同日显著为负)

注意那个 IC 符号的切换:反转在同一天最强(因为日内交易者当天就纠正),到次日就衰减甚至翻正(信息开始延续)。这给我们的实战约束是——淡看跳空最好是「当天开仓、当天平仓」的日内策略,而不是隔夜持有

四、可交易检验:按隔夜跳变做十档#

最干净的可交易验证:每天按「隔夜跳变」做横截面十分位,统计各组同日日内收益均值。

  • D1 = 隔夜最跌组,应该日内最强(被回补)
  • D10 = 隔夜最涨组,应该日内最弱(被回吐)
n_dec, DAYS = 10, 20 * 252
dec_mean_intra = np.zeros(n_dec)
for k in range(n_dec):
    vals = []
    for d in range(DAYS):
        order = np.argsort(ret_on[:, d]); ranks = np.empty(N); ranks[order] = np.arange(N)
        dec = np.clip(ranks // (N // n_dec), 0, n_dec - 1)
        vals.append(ret_intra[dec == k, d].mean())
    dec_mean_intra[k] = np.mean(vals)

spread = dec_mean_intra[0] - dec_mean_intra[-1]   # D1 - D10
python

跑出来非常漂亮:

  • D1(隔夜最跌组)同日日内收益 +0.873%
  • D10(隔夜最涨组)同日日内收益 −0.862%
  • 二者差 +1.734%,t 统计 ≈ 341
  • 10 组日内收益与隔夜排序的相关系数 = −0.988(严格单调下滑)

横截面实证:隔夜越涨的同日日内越弱,D1→D10 单调反转

这就是「fade the gap / 淡看跳空」的截面证据:开盘已知昨收→今开跳变,按此排序,做多隔夜最跌组、做空最涨组,赚的是同日日内反转。信号与持仓同属一天、且信号在开盘即确定,严格无前视

⚠️ 诚实声明:本文不画「fade-the-gap 净值曲线」。原因是——若把「每天按隔夜排序、当天收割日内反转」做成一个日频多空净值,合成设定下面会得到一个虚高的 Sharpe(日度成批平均把特异风险几乎全抹掉),那是合成作弊不是真策略。上面那张十分位柱状图才是诚实的呈现方式:它只证明「反转效应存在且单调」,不假装有可轻松实现的超高夏普。

五、为什么这事在 A 股要打折#

美股隔夜窗口夹着漫长的盘后+盘前,散户情绪集中释放,隔夜异象干净。但 A 股的「隔夜」是 15:00→次日 9:30 这一段——中间无法交易、且政策市/消息市特征更强。直接套「昨收→今开跳空」常出现:

  • 跳空来自停牌复牌、重大事项、指数调仓,不是情绪过度反应;
  • 做空受限,D10(隔夜最涨)那一侧你卖不出去,策略只能做多 D1 半边;
  • T+1 下「当天开仓当天平仓」的日内反转在个股上根本无法实现。

所以 A 股更稳的玩法,是把「跳空幅度」当辅助过滤器:配合「今开相对昨收的强弱 + 日内量价确认」合成信号,而不是单独裸做跳空反转。

六、六类真实陷阱(实战必看)#

  1. 合成 Sharpe 虚高:本文所有数字都是合成设定下的结果,证明方向与机制成立,不证明实盘能赚这么多。第十章把 300 只股票同日平均掉,特异风险被大量对冲,t 才会到 341——实盘单标的绝不会有这数。
  2. 幸存者/流动性偏差:合成没有退市、没有冲击成本。实盘里「隔夜跳最猛」的常是小盘妖股,做空成本、冲击成本能把反转利润吃光甚至反亏。
  3. 做空约束:fade-the-gap 本质是买输家卖赢家,靠卖赢家赚钱。A 股融券难,纯多头只能做 D1 半边,收益砍半、且失去多空对冲的保护。
  4. 微观结构噪声:隔夜跳空里有大量「盘后大宗、指数调仓、除权除息」的纯噪声,不等于过度反应。要先剔除异常跳空(如 ±10% 以上的事件跳)再算信号。
  5. IC 时效性:反转在同日最强(IC −0.32),到次日就衰减翻正(+0.18)。所以策略窗口必须是「开盘定方向、日内了结」,隔夜持有会把效应吃掉。
  6. 中美结构不同:Berkman 等人的「隔夜赚钱、日内不赚」结论建立在美股 T+0、散户主导盘前情绪的市场上。直接套到 A 股政策市,常会失效——务必本地化重测。

七、小结:隔夜是投票机,日内是称重机#

把这篇文章和「短期反转因子」「时间序列动量」放在一起看,逻辑链就通了:

  • 隔夜跳变 = 散户情绪的过度反应 → 同日日内均值回归(反转)
  • 日内博弈 = 信息交易者的纠正 → 中期趋势延续(动量)

所谓「隔夜收益异象」,不是一个孤立的怪现象,而是市场微观结构里两类参与者时间错配的必然结果。它给你的实用洞见是:别把「今天的收益」当成一个整体。拆成隔夜和日内,你会发现——隔夜该反向看、日内该顺势看,把两段分开建模,比用一个模糊的「当日总收益」信号干净得多。


代码与图表均由自包含 Python(numpy/scipy/matplotlib)真实计算,随机种子固定为 20260717,可完整复现。所有统计数字(隔夜/日内年化、rank-IC、十分位日内收益与 t 统计)均来自文中脚本输出。合成 Sharpe 含成批平均带来的虚高,实战请以真实成本与做空约束重新估计。

隔夜收益异象:用收盘到开盘的跳变预测次日方向
https://blog.halo26812.eu.org/blog/overnight-return-anomaly
Author halo
Published at 2026年7月17日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨