← 返回报告库
动量 · 风险调整 · 全 A 实测
剥掉市场 beta,能救回动量吗?
—— 残差动量 A 股实测
残差动量(Blitz-Huij-Martens 2011, JEF):把动量建立在剥掉市场/因子 beta 后的残差收益上(信号 = 残差的 12-1 均值 / 标准差),声称能剥离掉制造"动量崩溃"的 beta 敞口,夏普约为原始动量的 2 倍。既然标准动量在 A 股是死的,一个尖锐的问题:做了风险调整,动量能复活吗?
样本 2019–2026|全 A(剔 ST/北交所)|每股滚动 36m CAPM 残差|月度·等权·纯多头(top 20% 多头 vs 全市场)
📐 本报告未做 decile 升级:残差动量用 top20% 组合口径(≈decile 前两档),保留原口径。
0.51残差动量夏普(≈ 原始动量 0.50,非 2 倍)
0.58买全市场等权的夏普——两个动量都跑输它
−3.3%残差动量在训练段(19-23)的年化超额
均值回归剥干净了照样死 → 不是 beta 拖累的问题
一句话结论。Blitz 的核心卖点——"残差动量夏普约为原始动量 2 倍"——在 A 股完全不成立:残差动量夏普 0.51 ≈ 原始动量 0.50 ≈ 都跑输买全市场(0.58),训练段还是负超额。关键推论:问题不在"原始动量太噪、需要风险调整"——连剥干净了的残差版一样死。美股靠残差化能救回动量(剥掉动量崩溃的 beta 敞口),在 A 股无效,因为 A 股动量的失效是均值回归性质的,不是 beta 拖累。
头对头:残差动量 vs 原始动量 vs 低波对照
三个信号各取 top 20% 作纯多头,对比全市场等权基准。分全期 / 训练 / 留出三段。
| 信号(top 20% 多头) | 全期 19+ 超额 | train 19-23 | test 24+ | OOS 判定 |
| 残差动量(Blitz) | −1.3% | −3.3% | +3.3% | ❌ train 负 |
| 原始 12-1 动量 | −1.0% | −4.8% | +8.3% | ❌ train 负 |
| 低波(对照) | −0.8% | +3.8% | −10.9% | 半(regime) |
残差动量并不比原始动量强(全期 −1.3% vs −1.0%,夏普 0.51 vs 0.50),两者都跑输市场。两个动量口径训练段都是负超额,只有 2024+ 回来了——但那是小盘高 beta 狂欢的单一 regime,不是稳健 edge。
关键:2024+ 动量赢、低波输 = froth regime
注意最后一列的镜像:2024+ 动量大赢(原始 +8.3%)而低波大输(−10.9%)。这不是巧合。
2024–2026 是我们
风险偏好状态灯 标为「妖股领涨 / froth」的那个 regime——高 beta、小盘、题材主导。
动量在 A 股只在这种投机狂热期短暂有效,常态里是死的;而低波则在同一时期被碾压。把 2024+ 的动量收益当"动量有效"的证据,就是被 regime 骗了。
横跨 train + test 看,动量(残差或原始)在 A 股没有稳健的长仓 edge。
为什么残差化在 A 股救不回动量
美股:动量失效 = beta 拖累
美股动量的主要风险是动量崩溃(赢家组累积高 beta,熊末反弹被踩踏)。剥掉 beta 的残差版能躲掉这部分崩溃,所以夏普翻倍。前提是:底层动量是真的,只是被 beta 污染。
A股:动量失效 = 均值回归
A 股散户追涨杀跌 → 过度反应 → 反转。底层动量本身就是负的/无效的,不是被 beta 污染。剥掉 beta 只是换了个排序变量,改变不了"涨多了要跌"的本质。所以残差化无从发力。
论文与口径
· 论文:Blitz, Huij & Martens,
Residual Momentum, Journal of Empirical Finance 2011——残差动量的夏普约为总收益动量的 2 倍,且更少崩溃。
· 口径:全 A、每股滚动 36 个月 CAPM(市场用全 A 等权,β≈估计)取残差,信号 = 残差 12-1 均值/标准差;top 20% 作
纯多头 vs 全市场等权;月度、等权。日收益
pct_chg(已复权)。剔 ST(按当前名)与北交所。
负结论照实呈现。非投资建议。
·
可复现:
backtest.py ·
backtest_result.json
· 关联:
Frog-in-the-Pan ·
中国是反转/低波市场 ·
风险偏好状态灯。
chaoe.net · 剥掉 beta 也救不回 A 股动量——因为它死于均值回归,不死于 beta。