3、因子生命周期理论:因子从发现到失效的四个阶段

做量化策略这些年,我见过太多因子了。有的因子刚出来时猛如虎,三个月后就成了废物。说白了,因子跟人一样,有生老病死。今天我就聊聊因子生命周期这件事,把我踩过的坑和总结的经验都倒出来。

核心观点:因子不是永恒的,每个因子都有其生命周期。理解因子所处的阶段,比因子本身更重要。

3.1 为什么因子会经历生命周期?

你想想看,一个因子为什么能赚钱?本质上是因为市场存在某种定价偏差或信息不对称。但随着越来越多的人发现这个规律,资金涌入,套利空间就被抹平了。

我2018年做过一个简单的市值因子策略,回测夏普比高达2.3。当时我兴奋得不行,觉得找到了圣杯。结果实盘跑了半年,夏普比掉到了0.6。为什么会这样?因为太多人用同样的逻辑了。

因子的生命周期,本质上就是市场从「无知」到「共识」的过程。

3.2 四个阶段的详细拆解

我把因子生命周期分成四个阶段。每个阶段的特征、信号和应对策略都不一样。下面这张图可以帮你快速建立整体认知:

因子生命周期四阶段模型 阶段1:发现期 阶段2:成长期 阶段3:成熟期 阶段4:衰退期 因子收益 / 有效性 时间 低收益 · 高潜力 高收益 · 低拥挤 收益稳定 · 拥挤度上升 收益衰减 · 高拥挤

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 如何判断因子当前处于哪个阶段?

这个问题很实际。我分享几个我常用的判断方法:

  1. 滚动IC分析:计算过去12个月的滚动IC均值。如果连续下降,说明因子在老化。
  2. 拥挤度指标:跟踪因子多空两端的持仓集中度。拥挤度超过历史80%分位数时,要高度警惕。
  3. 新进入者数量:统计最近3个月新发布的相关研报数量。数量激增往往是见顶信号。
  4. 因子收益衰减速度:计算最近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