3、因子生命周期理论:因子从发现到失效的四个阶段
做量化策略这些年,我见过太多因子了。有的因子刚出来时猛如虎,三个月后就成了废物。说白了,因子跟人一样,有生老病死。今天我就聊聊因子生命周期这件事,把我踩过的坑和总结的经验都倒出来。
核心观点:因子不是永恒的,每个因子都有其生命周期。理解因子所处的阶段,比因子本身更重要。
3.1 为什么因子会经历生命周期?
你想想看,一个因子为什么能赚钱?本质上是因为市场存在某种定价偏差或信息不对称。但随着越来越多的人发现这个规律,资金涌入,套利空间就被抹平了。
我2018年做过一个简单的市值因子策略,回测夏普比高达2.3。当时我兴奋得不行,觉得找到了圣杯。结果实盘跑了半年,夏普比掉到了0.6。为什么会这样?因为太多人用同样的逻辑了。
因子的生命周期,本质上就是市场从「无知」到「共识」的过程。
3.2 四个阶段的详细拆解
我把因子生命周期分成四个阶段。每个阶段的特征、信号和应对策略都不一样。下面这张图可以帮你快速建立整体认知:
3.3 阶段一:发现期
特征:因子刚被挖掘出来,知道的人极少。收益不稳定,但潜在空间巨大。
这个阶段的因子,通常来自学术论文、非主流论坛或者你自己拍脑袋想出来的逻辑。我记得2015年做高频数据研究时,发现了一个基于逐笔成交数据的微观结构因子。当时回测效果一般,但我直觉觉得这东西有戏。
关键信号:
- 因子收益波动大,有时正有时负
- 换手率低,几乎没有机构在用
- 逻辑上说得通,但实证证据不足
应对策略:
- 小仓位试水,别上来就重仓
- 多做样本外测试,别被回测曲线骗了
- 我习惯用滚动窗口验证,比如每6个月重新跑一次回测
我的经验:发现期的因子,我一般只给5%以下的权重。等它跑出3-6个月的实盘数据后,再考虑加仓。别问我为什么这么保守——因为我在这个阶段亏过太多钱了。
3.4 阶段二:成长期
特征:因子开始被市场认可,收益曲线漂亮,夏普比达到峰值。这是因子最赚钱的阶段。
成长期的因子,就像刚出道的明星。大家都知道它好,但还没形成拥挤交易。我做过一个统计:大部分因子的夏普比峰值出现在被发现后的6-18个月之间。
关键信号:
- 因子收益持续为正,回撤小
- 开始有研报和公众号讨论这个因子
- 因子拥挤度指标开始上升,但仍在安全区间
应对策略:
- 适当加大配置权重,这是吃大肉的时候
- 建立监控机制,密切关注拥挤度变化
- 我建议每两周做一次因子衰减分析
避坑指南:成长期最容易犯的错误是「过度自信」。我曾经有一个动量因子,连续8个月表现优异,我直接把权重加到了30%。结果第9个月因子突然失效,一个月亏掉了前面半年的利润。记住:因子越赚钱,你越要警惕。
3.5 阶段三:成熟期
特征:因子被广泛使用,收益趋于稳定但明显下降。拥挤度达到高位,但还没到崩溃的程度。
成熟期的因子,说白了就是「鸡肋」——食之无味,弃之可惜。收益还有,但已经不能指望它带来超额收益了。
关键信号:
- 因子收益曲线变平,夏普比从2.0降到1.0以下
- 大量机构在跟踪这个因子
- 因子之间的相关性上升,同质化严重
应对策略:
- 降低权重,把它作为组合中的「稳定器」
- 考虑因子择时,只在特定市场环境下使用
- 我个人的做法是:成熟期因子只保留5-10%的配置
| 阶段 | 夏普比范围 | 拥挤度 | 建议权重 |
|---|---|---|---|
| 发现期 | 0.3 - 0.8 | 低 | ≤5% |
| 成长期 | 1.5 - 3.0 | 中低 | 15% - 25% |
| 成熟期 | 0.5 - 1.2 | 高 | 5% - 10% |
| 衰退期 | < 0.3 | 极高 | 0% - 3% |
3.6 阶段四:衰退期
特征:因子彻底失效,收益为负或接近零。拥挤度爆表,市场已经充分定价了这个因子。
衰退期的因子,最典型的特征就是「回测很美好,实盘很残酷」。我见过太多人抱着一个过时的因子不放,总觉得「市场会回归均值」。嗯,市场确实会回归均值,但回归的是零均值。
关键信号:
- 因子收益持续为负,且没有反转迹象
- 因子拥挤度指标突破历史极值
- 因子逻辑被市场证伪或已被充分套利
应对策略:
- 果断放弃,不要有感情
- 把资金转移到新发现的因子上去
- 我曾经死守过一个价值因子,多亏了半年才割肉。现在我的原则是:连续3个月IC为负,直接砍掉,不废话
重要提醒:衰退期的因子不是「暂时回调」,而是「永久性失效」。不要试图抄底因子,就像不要试图接飞刀。因子一旦进入衰退期,99%的概率不会回到巅峰状态。
3.7 如何判断因子当前处于哪个阶段?
这个问题很实际。我分享几个我常用的判断方法:
- 滚动IC分析:计算过去12个月的滚动IC均值。如果连续下降,说明因子在老化。
- 拥挤度指标:跟踪因子多空两端的持仓集中度。拥挤度超过历史80%分位数时,要高度警惕。
- 新进入者数量:统计最近3个月新发布的相关研报数量。数量激增往往是见顶信号。
- 因子收益衰减速度:计算最近6个月与之前6个月的收益比值。比值小于0.5时,基本可以判定进入衰退期。
下面是一个简单的Python代码,用来判断因子所处的生命周期阶段:
def judge_factor_lifecycle(factor_returns, window=12):
"""
判断因子生命周期阶段
factor_returns: 因子月度收益序列
window: 滚动窗口期数
"""
import numpy as np
# 计算滚动夏普比
rolling_sharpe = factor_returns.rolling(window).mean() / \
factor_returns.rolling(window).std()
current_sharpe = rolling_sharpe.iloc[-1]
peak_sharpe = rolling_sharpe.max()
# 计算拥挤度(简化版:用因子收益与市场收益的相关性)
# 实际应用中需要更复杂的拥挤度指标
market_corr = factor_returns.rolling(window).corr(market_returns)
if current_sharpe < 0.3:
return '衰退期'
elif current_sharpe > 1.5 and peak_sharpe - current_sharpe < 0.5:
return '成长期'
elif current_sharpe > 0.5 and peak_sharpe - current_sharpe > 0.5:
return '成熟期'
else:
return '发现期'
一个小技巧:我习惯把因子生命周期做成仪表盘,每天自动更新。这样哪个因子在哪个阶段,一目了然。别等到因子亏钱了才去分析,那时候已经晚了。
好了,因子生命周期理论就讲到这里。记住一句话:没有永恒的因子,只有永恒的策略更新。保持对市场的敬畏,保持对因子的怀疑,这才是量化研究员该有的态度。
公众号:蓝海资料掘金营,微信deep3321