AMPARIES

量化轮动系统建设手记(三):因子验证与两轮回测——成本教做人

2026-09-15 · 数智实践

数据底座打牢之后(见前两篇),终于可以回答那个最刺激的问题:这些数据到底能不能预测板块轮动?这篇记录从 10 个单因子的「泼冷水」开始,到一个看起来不错的复合策略,以及中间真实发生的一次翻车。

一、单因子验证:先被泼一盆冷水

方法:31 个申万一级行业,2016-2026 年,每周检验「因子值 vs 未来 5/10/20 日超额收益」的秩相关(IC)。10 个因子、30 组结果,挑重点:

因子T+10 IC点评
动量·5 日+0.032表现最好,但强度一般
波动调整动量(20 日收益/波动率)+0.027全窗口稳定为正,有潜力
估值分位(PE 五年分位)+0.016方向为「强势延续」而非均值回归
动量·60 日 / 波动率 / 成交占比≈0 或负完全没信号

结论非常诚实:没有任何单因子达到「稳定可用」标准(IC≥0.03 且 IR≥0.3)。教科书式的中长期动量在 A 股行业上几乎无效——这也是行业轮动被公认「难做」的原因。但验证同时也指出方向:短周期动量 + 波动调整动量 + 估值分位,是相对最优的三个基因。

二、第一轮回测:毛超额 +5%,然后被成本全吃

把三个因子按 0.40 / 0.35 / 0.25 的权重合成打分,每周选评分最高的 8 个行业等权持有(对比基准 = 全行业等权),含交易成本回测 464 周:

这是整个项目至今最有价值的一课:很多策略不是死于信号,而是死于换手。信号赚的 5 个点,恰好够付频繁调仓的手续费和冲击成本。

三、v2 改造:两个工程改动,净超额翻正

针对两个病灶(换手、状态),做了两个改动:

① 滞后带(换手控制)。规则从「每周选前 8」改成「买入门槛前 8 / 卖出门槛前 16」:已在持仓中的行业,只要不跌出前 16 就继续持有。粘性来自「不轻易换仓」,而不是拉长调仓周期。

② 市场状态开关。用全行业等权指数与其 200 日均线判定环境:指数在均线上方才启用轮动策略,否则切换为持有全体行业(≈市场平均)。历史上有约 48% 的时间处于「均线下方」,正是动量策略磨损最严重的时段。

版本净超额/年IR最大回撤周换手
v1 基线-0.08%0.07-51%48%
v2 + 滞后带+4.21%0.57-46%21%
v2 + 滞后带 + 状态开关+6.74%1.06-38%11%

两个改动带来的变化:换手从 48% 压到 11%,净超额从 -0.08% 升到 +6.74%,信息比率翻到 1 以上,回撤收窄 13 个百分点。有意思的是:单看「拉长调仓周期到 10 天」反而更差(+1.7%)——真正起作用的是给持仓设定容错空间,而不是降低信号更新频率。

四、清醒时刻

上面所有数字都来自样本内回测,而且 v2 的参数(滞后带 8/16、200 日均线)是在看过第一轮结果之后选的——存在温和的「过拟合」风险。对量化研究来说,这时的正确动作不是庆祝,而是进入下一关:

免责声明:本系列为个人技术研究记录,系统为个人研究工具,回测结果基于历史数据、不代表未来表现,不构成任何投资建议。