日内动量最后一小时效应:收盘前的方向延续从哪来
开盘半小时的涨跌方向,会在收盘前一小时被部分复刻——这是 Gao-Han-Li-Zhou (2018) 在 SPY 上记录的日内动量效应,来源不是玄学而是三股结构性资金:对冲 Gamma 的做市商、盯收盘价的被动基金、日内趋势跟随者都在尾盘同向交易。本文在自洽合成数据上植入传导系数 β=0.10 并完整复现检验流程:开盘-尾盘收益相关性 0.108(t=3.8)、五分组尾盘收益单调递增、策略年化 8.3%(Sharpe 0.73)显著跑赢被动持有尾盘(0.37);同时用无效应对照组证明——β=0 时同一策略被 2bp 成本磨到年化 -7.9%。β×成本 Sharpe 热力图画出这类高频率低赔率策略的生死线,附完整 Python 与四类真实陷阱(中阶)。
大多数动量研究盯着”过去 12 个月”这种长周期,但市场里还藏着一条以小时为单位的动量:开盘后前 30 分钟涨的日子,收盘前最后一小时倾向于继续涨;开盘跌的日子,尾盘倾向于继续跌。Gao、Han、Li、Zhou 在 2018 年的论文里用 SPY 二十多年的日内数据记录了这个”日内动量”(intraday momentum)效应——第一个半小时的收益对最后半小时的收益有显著正向预测力。
结论先放这:这个效应不是数据挖掘的巧合,它背后站着三股必须在尾盘交易、而且方向与当天早盘同向的结构性资金。在植入传导系数 β=0.10 的合成数据上,开盘-尾盘收益相关性 0.108(t=3.8)、按开盘收益五分组的尾盘平均收益严格单调递增、“开盘方向定尾盘持仓”的策略年化 8.3%、Sharpe 0.73,显著跑赢每天被动持有尾盘(Sharpe 0.37)。但同一策略放到 β=0 的对照组里,被区区 2bp 的单边成本磨到年化 -7.9%——这类每天交易一次的高频率低赔率策略,效应强度与成本之间只隔一条生死线。
一、方向延续从哪来:三股尾盘的结构性买卖压力#
先讲机制,再看数据。尾盘动量的燃料来自三类”身不由己”的交易者:
第一股:对冲 Gamma 的做市商。 期权做市商持有大量空 Gamma 头寸时(卖出期权给机构对冲盘),标的每涨一点他们的 Delta 就变得更负,必须追着买;每跌一点必须追着卖。这种对冲交易全天进行,但尾盘要把一天累积的 Delta 缺口一次性补平——当天涨得多,尾盘的对冲性买盘就大。方向天然与日内涨跌同向。
第二股:盯收盘价的被动资金。 指数基金、目标日期基金的申赎按收盘价结算,它们的建仓交易集中在尾盘执行(最贴近结算价、跟踪误差最小)。资金申赎与当日市场表现正相关——涨的日子净申购多,这些钱在尾盘变成买盘。
第三股:日内趋势跟随与止损盘。 日内 CTA、突破策略的仓位在早盘方向确立后逐步建立,尾盘不平仓的部分继续持有;反方向的日内交易者则在尾盘止损离场——两边的交易方向都与早盘趋势一致。
三股力量共同的特征:它们的尾盘交易方向由早盘方向决定,且它们是价格接受者,必须成交。这就是可预测性的来源——不是信息,是流动性需求的时间表。
二、构造实验:把 β=0.10 的传导植入日内数据#
真实 tick 数据拿不到没关系,机制可以精确合成。每天 48 根 5 分钟 bar,日内波动率按 U 型分布(开盘收盘高、午盘低),开盘前 6 根 bar(30 分钟)承载当天的隔夜信息冲击,然后把开盘段收益乘以传导系数 β=0.10 摊进最后 12 根 bar(60 分钟):
BETA = 0.10 # 开盘收益对尾盘收益的传导强度
for d in range(DAYS): # 1250 天 ≈ 5 年
info = rng.standard_normal() * 0.006 # 隔夜信息
bars = rng.standard_normal(BARS) * bar_vol * u_shape
bars[:FIRST] += info / FIRST # 开盘段吸收信息
r_first = bars[:FIRST].sum()
bars[-LAST:] += BETA * r_first / LAST # 尾盘同向传导
r_last = bars[-LAST:].sum()python注意这个设计里的分寸感:β=0.10 意味着开盘涨 1%,尾盘平均只多涨 0.1%——效应是真实的,但很微弱,这正是真实市场里日内动量的形态。检验它需要统计功力,交易它需要成本控制。
统计检验三件套全部通过:
- 相关性:corr(开盘 30 分钟, 尾盘 60 分钟) = 0.108,t = 3.82,1% 水平显著
- 回归斜率:0.096,与植入的 β=0.10 精确吻合——检验流程没有引入偏差
- 单调性:按开盘收益分五组,尾盘平均收益从 Q1 到 Q5 严格递增,效应不是被少数极端日撑起来的


单调性检验是三件套里最容易被跳过、也最不该跳过的一环:相关系数可以被几个极端交易日绑架,而五分组单调递增说明效应贯穿整个分布——这是”结构性机制”区别于”离群点巧合”的指纹。
三、策略化:开盘定方向,只做最后一小时#
信号规则简单到一行:开盘前 30 分钟涨 → 尾盘一小时做多;跌 → 做空。每天只在尾盘暴露一小时,其余时间空仓,双边各付 2bp 成本:
sig = np.sign(first_rets) # 开盘方向
strat = sig * last_rets - 2 * COST # 尾盘持仓一小时,双边 2bppython结果对比(1250 个交易日):
| 策略 | 年化收益 | Sharpe | 最大回撤 | 胜率 |
|---|---|---|---|---|
| 日内动量(开盘定方向) | +8.28% | 0.73 | -25.1% | 51.5% |
| 每天被动持有尾盘 | +4.24% | 0.37 | -16.0% | 48.9% |
| 无效应对照组(β=0) | -7.93% | -0.71 | — | 48.7% |

三个读数各有各的信息量:
胜率只有 51.5%。这不是策略弱,这是这类策略的本来面目——每天赌一次微弱的方向延续,单次赔率接近抛硬币,优势全靠 1250 次重复把 1.5% 的胜率差滚成 Sharpe 0.73。任何宣称日内动量胜率 60%+ 的回测,先查 look-ahead。
对照组年化 -7.93% 正好等于成本账单。每天双边 4bp × 252 天 ≈ 10%,扣掉持仓段的少量随机漂移,剩下的全是磨损。这就是高频率策略的残酷算术:信号归零时,你不是不赚钱,而是以每年 10% 的速度给券商打工。
动量策略回撤反而比被动持有更深(-25.1% vs -16.0%)。因为它做空开盘下跌的日子——遇到”早盘跌尾盘 V 型反转”的日子会双向挨打。方向性策略的回撤永远比想象中深。
四、生死线:β × 成本的 Sharpe 热力图#
效应强度 β 和单边成本各扫一遍,得到这张决定”能不能做”的热力图:

读法很直接:
- β=0.10(本文基准):0 成本 Sharpe 1.17,2bp 降到 0.73,5bp 剩 0.3 左右,10bp 归零。零售佣金水平(≥5bp)下这个策略基本不可做,机构成本(1~2bp)下可做。
- β=0.03~0.06(更接近现实中被套利磨损后的水平):只有零成本才有正期望——纸面效应,实盘负和。
- β=0.15:肥美区间,但真实市场里这么强的传导会在几个季度内被套利资金吃平。
这张图的通用教训值得抄下来:对每天交易的策略,成本在 Sharpe 里是一等公民,任何日内效应的学术检验(通常不含成本)与可交易性之间隔着 5~10bp 的鸿沟。Gao et al. 论文里的效应在学术上稳健成立,但 2018 年发表后公开数据上的强度已明显衰减——发表即衰减,日内异象尤其如此。
五、四类真实陷阱#
陷阱一:信号时间戳与执行时间戳的 30 秒。 “开盘前 30 分钟收益”要在 10:00 整才完整确定,你的下单最早发生在 10:00 之后;同理尾盘建仓不可能精确在收盘前 60 分钟的第一秒完成。回测里信号 bar 和执行 bar 必须错开——用 9:30-10:00 的收益在 15:00 建仓是安全的(间隔 5 小时),但如果你把信号窗口贴着执行窗口(如用 14:00-15:00 预测 15:00-16:00),一根 bar 的重叠就足以伪造整个效应。
陷阱二:隔夜跳空污染开盘收益的定义。 “开盘 30 分钟收益”用当日开盘价还是昨日收盘价做分母,是两个不同的信号:前者是纯日内信息,后者混入了隔夜跳空。两者的预测力来源不同(隔夜部分更多反映信息,日内部分更多反映流动性),混在一起会让归因失真。本文用纯日内口径。
陷阱三:效应集中在高波动日,等权回测掩盖了条件结构。 真实数据里日内动量在 VIX 高企、成交量放大的日子显著更强(Gamma 对冲盘规模与波动率成正比)。全样本等权平均会把”平静日的零效应”和”动荡日的强效应”搅成一个中庸的数字。条件化(只在高波动日交易)能提高单次赔率,但也把策略暴露在波动率聚集的连败风险里。
陷阱四:做空腿在 A 股不存在。 这个策略一半的交易日需要做空(开盘下跌日)。A 股个股无法日内做空,只做多头腿等于把策略砍掉一半样本且引入方向性偏差;股指期货可以双向,但期现基差和保证金占用会重写整个成本结构。跨市场移植日内异象前,先检查交易机制是否允许策略的完整形态存在。
结语#
日内动量最后一小时效应是市场微观结构异象里机制最清晰的一类:它的燃料不是信息优势,而是三股必须在尾盘按早盘方向交易的结构性资金流。机制清晰意味着两件事——它真实存在过,以及它的强度可以被监测:Gamma 敞口数据、被动基金规模、尾盘成交占比都是 β 的代理变量。本文的热力图给出了工程判断的框架:先估计你所处市场、所处年代的真实 β,再对照你的成本水平查表——β 在 0.10 以上且成本压得进 2bp,值得做;β 掉到 0.05 以下,这就是一个适合写文章、不适合下单的效应。