halo 的技术博客

返回

什么是因子衰减#

因子衰减(Factor Decay)是指量化因子在被发现并广泛使用后,其超额收益逐渐被套利力量侵蚀的现象。

一个经典的例子是价值因子(Book-to-Market)。Fama-French 在1992年发表价值因子后,该因子的IC(信息系数)在随后的20年里持续下降。

价值因子IC衰减曲线

衰减的三大力量#

1. 套利竞争#

当某个因子被学术论文或业界报告公开后,大量资金会涌入该策略,导致:

  • 因子暴露于更拥挤的交易
  • 买卖价差扩大
  • 因子收益率被”预支”

2. 风险溢价再平衡#

如果因子收益本质上是某种风险溢价(如价值因子承担倒闭风险),那么当市场对该风险的认识发生变化时,溢价会重新定价。

3. 微观结构变化#

交易规则、市场参与者结构、监管环境的变化,都会导致因子与收益之间的统计关系断裂。

如何检测因子衰减#

IC衰减检验#

计算因子IC值在时间序列上的斜率:

多空组合收益衰减#

跟踪因子多空组合的累计净值,观察是否出现:

  • 夏普比率下降
  • 最大回撤加深
  • 收益分布的偏度变化

应对因子衰减的策略#

1. 因子组合动态加权#

不采用固定权重,而是根据因子的近期IC表现动态调整:

def dynamic_factor_weighting(factor_ic_history, lookback=24):
    """基于近期IC表现动态调整因子权重"""
    recent_ic = factor_ic_history.iloc[-lookback:]
    
    # 指数加权IC
    ew_ic = recent_ic.ewm(halflife=6).mean().iloc[-1]
    
    # 转换为权重(IC越高权重越大)
    weights = ew_ic / ew_ic.abs().sum()
    
    return weights.clip(lower=0)  # 剔除负IC因子
python

2. 引入另类数据#

当传统因子衰减时,另类数据可能提供新的Alpha来源:

  • 卫星图像 → 零售停车场饱和度
  • 信用卡数据 → 实时消费趋势
  • 社交媒体情绪 → 散户情绪指标

3. 因子正交化#

将新因子与已衰减因子做正交化处理,剔除冗余信息:

from sklearn.linear_model import LinearRegression

def orthogonalize_factor(new_factor, decayed-factors):
    """将新因子与已衰减因子正交化"""
    model = LinearRegression().fit(decayed-factors, new_factor)
    residual = new-factor - model.predict(decayed-factors)
    return residual  # 纯净的新因子
python

实战案例:动量因子的衰减与复兴#

动量因子在2009-2019年间经历了显著衰减(尤其是2019年的”动量崩溃”),但通过在动量因子中引入:

  • 残差动量(剔除行业暴露)
  • 时间序列动量(跨资产类别)
  • 衰减调整权重

动量策略在2020年后重新获得超额收益。

总结#

因子衰减是量化投资中的”红皇后效应”——必须不断奔跑才能留在原地。应对衰减的关键是:

  1. 持续研发新因子(尤其是另类数据因子)
  2. 动态监控因子IC衰减趋势
  3. 采用机器学习方法捕捉因子间的非线性关系

核心要点:因子衰减不是因子的终结,而是策略进化的起点。

因子衰减效应:量化因子为什么会逐渐失效?
https://blog.halo26812.eu.org/blog/2026-06-02-factor-decay
Author halo
Published at 2026年6月1日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨