因子的半衰期:量化策略真正的慢性失效

很多人做量化,最关心的问题是:这个因子有没有用?
这个问题当然重要,但还不够。更关键的问题其实是:它还能有多久用?
因子不是数学定理。它更像市场生态里的某种生物:会诞生,会扩散,会拥挤,会变异,最后也会死亡。有些因子活得很久,比如低波动、质量、部分价值类信号;有些因子只活很短,比如某个小市值变种、某个价量组合、某个样本内漂亮得不真实的统计特征。
这就是“因子半衰期”值得认真讨论的原因。
简单说,因子的半衰期是指:一个因子的预测能力从当前水平衰减到一半,大概需要多久。
如果一个因子的 IC、Rank IC、分组收益、多空收益在很长时间里都稳定存在,那它的半衰期就长;如果它在早期表现很好,随后快速衰减甚至反转,那它的半衰期就短。
很多策略的失败,不是因为它一开始就是错的,而是因为它曾经对过,后来过期了。
一、因子为什么会失效?
因子失效的原因很多,但核心可以归为三类:
- 被市场套利掉;
- 依赖的市场结构变了;
- 它本来就是数据挖掘出来的幻觉。
这三种原因对应三种不同的处理方式。被套利掉的因子,要降权或提高门槛;市场结构变了的因子,要重新审视底层逻辑;数据挖掘幻觉,则应该尽早淘汰。
1. 被套利掉:有效性会吸引资金,也会毁掉自己
一个因子如果真的能赚钱,它一定会吸引资金。
最开始,只有少数人知道某个信号有效,交易拥挤度不高,买入后还能获得超额收益。随着越来越多的人发现它,资金会提前买入这些股票,价格提前反应,未来收益被透支,交易成本和冲击成本上升,因子的边际收益自然下降。
这就是市场的自我消灭机制。
所以,越简单、越容易复制、越容易大规模交易的因子,半衰期往往越短。粗糙的小市值、低估值、短期反转、某些财务指标变种,一旦被广泛使用,很快就会进入拥挤交易。
反过来,半衰期较长的因子通常具备几个特征:
- 逻辑不那么显然;
- 数据获取或处理有门槛;
- 执行成本较高;
- 容量有限,不适合所有资金无脑复制;
- 需要多个弱信号组合才有价值;
- 很难被简单公式复刻。
这也是为什么因子研究越到后面,越不像在找一个神奇公式,而更像在找市场结构中的缝隙。
2. 市场结构变化:因子不是独立存在的
很多因子不是天然有效,而是依赖某种制度、交易结构或投资者结构。
比如 A 股过去很长时间里,小市值因子有效,一个重要背景是壳价值、流动性溢价、散户偏好和监管制度共同作用。注册制推进后,壳价值下降,小票退市风险上升,小市值因子的逻辑基础就发生了变化。
这个时候,小市值因子不是“突然坏了”,而是它原来生存的生态变了。
类似的结构变化还有:
- 涨跌停制度变化;
- 融券机制变化;
- T+0 / T+1 规则变化;
- 量化资金占比提高;
- 指数增强规模扩张;
- 公募、私募、外资结构变化;
- 高频数据和机器学习普及;
- 交易成本和冲击成本变化。
因子有效性不是静态属性,而是市场结构的函数。
所以真正成熟的量化研究,不应该只问“这个因子过去收益怎么样”,还应该问:这个因子依赖的市场条件现在还存在吗?
3. 数据挖掘幻觉:有些因子从来没真正活过
还有一类因子,看起来有半衰期,其实只是样本内过拟合。
如果你在几千个候选指标里不断筛选,总能找到一些历史表现特别好的组合。它们可能在回测里 IC 很高,分组收益很漂亮,换手也能接受。但你问它为什么赚钱,它答不上来。
这类因子最大的问题不是半衰期短,而是它可能根本没有真实生命力。它只是历史噪声中被挑中的幸运儿。
判断这类因子,一个重要标准是:逻辑强度。
逻辑强的因子,即使短期表现不好,也可能只是阶段性低迷;逻辑弱的因子,一旦表现衰减,很难判断它是周期性低迷,还是彻底露馅。
低波动因子为什么长期有效?一个解释是投资者偏好“彩票型资产”,容易高估高波动股票的上行空间,从而让低波动资产获得更好的风险调整后收益。这个逻辑来自人性和行为金融,短期很难消失。
而一个完全靠变换、滞后、截面排序堆出来的因子,如果没有清晰机制,它的半衰期通常不值得信任。
二、因子半衰期怎么测?
因子半衰期不是只能靠感觉判断,它可以被观测、估计和建模。常见方法有三类:
- 滚动窗口检验;
- IC 衰减建模;
- 上线后的状态监控。
flowchart TD
A[候选因子] --> B[样本内检验]
B --> C[样本外检验]
C --> D[滚动窗口稳定性]
D --> E{逻辑和统计都成立?}
E -->|是| F[小权重上线]
E -->|否| G[放弃或回炉]
F --> H[实时 IC / 收益 / 成本监控]
H --> I{显著衰减?}
I -->|否| J[维持或加权]
I -->|是| K[降权 / 暂停 / 淘汰]
1. 滚动窗口:最直观,也最重要
最简单的方法是滚动窗口检验。
比如用三年或五年作为一个窗口,分别计算因子在不同时间段的表现:
- Rank IC 均值;
- ICIR;
- 分组收益;
- Long-short 收益;
- 换手率;
- 最大回撤;
- 多空组合胜率;
- 不同市场环境下的稳定性。
如果一个因子只在早期窗口有效,越往后表现越差,说明它的半衰期可能已经接近尾声。
如果一个因子在不同窗口中表现都不算惊艳,但持续为正、回撤可控、逻辑稳定,它反而可能是更好的长期因子。
这一点很重要:因子研究不能只看全样本。
全样本回测会把过去的强表现和近期的弱表现平均掉,让你误以为因子仍然有效。但实际交易中,你面对的是未来,不是过去平均值。
2. IC 衰减模型:把失效参数化
更进一步,可以对因子有效性做衰减建模。
假设某个因子的 IC 随时间按指数形式衰减:
其中,$IC_0$ 是初始预测能力,$\lambda$ 是衰减速度,$t$ 是时间。对应半衰期为:
这个模型不一定完美,但它提供了一个重要视角:因子有效性不是“有 / 没有”的二元状态,而是连续衰减的。
有了衰减估计之后,可以做几件事:
- 预测未来 IC;
- 动态调整因子权重;
- 设置因子淘汰阈值;
- 对新因子设置观察期;
- 比较不同因子的生命周期。
比如某个因子的当前 IC 还有 0.04,但衰减速度很快,预测半年后只有 0.015,那它在组合里的权重就应该提前降低,而不是等到回撤后再处理。
这跟设备折旧很像。你不会等机器彻底坏了才承认它老化。因子也是一样。
3. 状态监控:因子上线后才是真正考核
很多人做因子研究的问题是:开发时很认真,上线后很佛系。
但因子上线之后,才真正进入生命周期管理阶段。至少应该持续监控这些指标:
- 最近 IC 是否显著低于历史均值;
- ICIR 是否持续下降;
- 分组单调性是否消失;
- 多空收益是否反转;
- 换手率是否异常升高;
- 因子暴露是否集中到某些行业、市值或风格;
- 因子与其他因子的相关性是否上升;
- 容量是否下降;
- 交易成本后收益是否被吃掉。
尤其要警惕一种情况:因子表面上还有收益,但收益来源已经变了。
比如原来是质量因子,后来收益主要来自小市值暴露;原来是动量因子,后来变成行业轮动暴露。此时因子名义上还活着,但灵魂已经不是原来的那个因子。
三、什么样的因子半衰期更长?
一般来说,半衰期长的因子往往有三个特点。
1. 有稳定的人性或经济逻辑
如果一个因子的根源来自长期存在的人性偏差、制度约束或风险补偿,它更可能长期有效。
比如:
- 低波动:投资者高估高波动资产;
- 价值:市场短期过度悲观;
- 质量:高质量公司长期风险更低;
- 动量:信息扩散需要时间;
- 盈利能力:好公司持续创造现金流;
- 盈余修正:分析师预期调整滞后。
这些因子不一定每年都赚钱,但它们背后有比较稳定的解释。
半衰期长,不等于不会回撤。它只是说明底层机制更难消失。
2. 不容易被大资金复制
有些因子虽然有效,但容量太小,大资金一进来就会把收益吃掉。
比如某些微盘股因子、小成交额因子、短周期反转因子,本身可能很强,但交易容量有限。资金拥挤后,滑点和冲击成本会迅速上升。
所以一个因子的半衰期,不仅取决于统计有效性,还取决于容量。
一个很好的因子,如果只能容纳很小资金,它对大策略来说半衰期会被压得很短。
3. 它不是单一公式,而是一类结构
单个因子容易失效,一类结构更难失效。
比如“低估值”里面可以有 PE、PB、EV/EBITDA、股息率、自由现金流收益率等多个表达;“质量”里面可以有 ROE、毛利率、现金流稳定性、杠杆率、盈利波动等多个表达。
如果一个策略只依赖某个具体公式,它很容易被市场针对;但如果它依赖一组底层逻辑相近、表达方式不同的信号,稳定性会更强。
这也是为什么成熟因子库通常按因子家族管理:价值、成长、质量、动量、反转、波动、流动性、情绪、分析师预期、另类数据。
管理因子半衰期,本质上是管理这些因子家族的新陈代谢。
四、如何判断一个因子快死了?
因子失效通常不是突然发生的,而是有信号的。
1. IC 均值下降
如果一个因子的长期 IC 均值是 0.04,最近一年降到 0.01,甚至接近 0,那就要警惕。
单月 IC 低不重要,连续多个窗口下降才重要。
2. ICIR 下降
IC 均值下降是一方面,稳定性下降也很关键。
如果因子一会儿正、一会儿负,波动很大,即使均值还没完全消失,它的可交易价值也会下降。
3. 分组收益不再单调
一个好的截面因子,通常应该表现出较清晰的分组单调性。比如最高分组收益最高,最低分组收益最低。
如果分组收益开始混乱,说明因子排序能力正在变弱。
4. 多空收益靠少数极端样本支撑
有些因子看起来还有收益,但仔细拆开会发现,大部分时间都没用,只靠少数几个月极端行情贡献收益。
这种因子的稳定性很差,不能简单看累计曲线。
5. 成本后收益消失
有些因子毛收益还在,但换手太高,扣掉手续费、滑点、冲击成本后已经没有价值。
半衰期应该看可交易收益,而不是纸面收益。
6. 因子拥挤度上升
如果越来越多资金使用相似信号,因子暴露会变拥挤。
表现为:持仓重合度上升、调仓日冲击成本上升、因子反转风险变大、同类策略回撤同步性增强。
拥挤交易不一定立刻杀死因子,但会显著缩短它的半衰期。
五、因子半衰期管理:比找到神因子更重要
很多人幻想找到一个长期稳定赚钱的神因子。
但成熟的量化系统不该建立在这种幻想上。更现实的目标是:建立一套持续生产、检验、上线、监控、淘汰因子的流程。
这个流程大概包括五步。
1. 因子生产
来源可以很多:金融逻辑、行为偏差、基本面数据、价量数据、分析师预期、新闻文本、订单流、另类数据、机器学习生成特征。
关键不是因子越多越好,而是新因子要提供不同的信息来源。如果只是对同一类数据做一堆变换,本质上只是复制已有暴露。
2. 因子检验
一个候选因子至少要经过:
- 样本内测试;
- 样本外测试;
- 滚动窗口测试;
- 不同市场环境测试;
- 行业中性、市值中性测试;
- 成本敏感性测试;
- 与现有因子相关性测试;
- 极端行情压力测试。
最重要的是:不能只看收益曲线,要看它到底提供了什么独立信息。
3. 因子上线
上线时不要一开始就给很高权重。
更合理的方式是小权重试运行,观察实时 IC、交易成本、组合相关性。如果表现稳定,再逐步提高权重。
因子上线不是毕业,而是实盘考核开始。
4. 因子监控
上线后要持续监控最近表现是否偏离历史、是否出现结构性失效、是否与其他因子高度重叠、是否因资金拥挤导致收益下降、是否因为市场制度变化导致逻辑失效。
这里最好有自动化看板,而不是靠人肉翻回测。
5. 因子淘汰
因子淘汰很难,因为人会对自己开发的东西有感情。
但策略不能讲感情。
如果一个因子持续失效,而且逻辑基础也发生变化,就应该降低权重甚至移除。
成熟的量化系统,一定要允许因子死亡。
六、几个常见误区
误区一:回测时间越长越好
回测时间长当然有价值,但如果市场结构已经变了,太久远的数据反而会污染判断。
更好的做法是:既看长周期,也看近期窗口,并区分不同市场阶段。
误区二:因子失效就是因子错了
不一定。
有些因子只是阶段性低迷。价值、低波动、质量因子都可能长期跑输,但底层逻辑未必消失。
所以判断因子死亡,不能只看短期收益。要结合逻辑、市场环境、拥挤度和统计显著性。
误区三:机器学习因子半衰期更长
不一定。
机器学习可以发现复杂非线性关系,但也更容易过拟合。如果模型只是记住了历史噪声,它的半衰期可能比传统因子更短。
ML 因子的半衰期管理反而更重要,因为它的逻辑更难解释,失效时也更难诊断。
误区四:因子越复杂越不容易失效
复杂不等于稳健。
有些复杂因子只是把噪声包装得更精致。真正有价值的复杂性,应该来自更好的信息结构,而不是更多参数。
七、真正重要的是流程,而不是某个因子
一个单独因子再强,也迟早会被市场理解、拥挤、削弱。
但一套因子研究流程,如果足够稳定,就可以不断产生新信号、淘汰旧信号、适应新市场。
这才是量化策略的长期护城河。
换句话说:
因子会死,因子库要新陈代谢;策略会老,研究流程要持续进化。
真正成熟的量化体系,不是相信某个因子永远有效,而是默认所有因子都会衰减,然后为这种衰减建立机制。
它不会问:“有没有一个永远有效的因子?”
它会问:
- 当因子开始失效时,我能不能及时发现?
- 当旧因子死掉时,我有没有新因子接上?
- 当市场结构变化时,我的系统能不能重新适应?
这才是因子半衰期背后真正的问题。
结语
因子半衰期提醒我们:量化不是找到一个答案,然后永远使用它。
市场会学习,资金会涌入,制度会变化,人性会重复但表达方式会变。所有基于历史数据得到的规律,都应该被持续验证。
一个因子曾经赚钱,不代表它还会继续赚钱;一个策略曾经有效,不代表它值得信仰。
做量化最危险的状态,不是没有因子,而是对旧因子过度自信。
真正该相信的不是某个因子,而是持续验证、动态更新、风险控制、因子淘汰、新信号生产,以及对市场变化保持敏感。
因子一定会衰减。策略一定会老化。但流程可以进化。
本文仅作量化研究与策略工程讨论,不构成任何投资建议。
因子的半衰期:量化策略真正的慢性失效
风控模型指标:别只盯着 AUC