跳到正文

因子拥挤与衰减:为什么每个因子都会死,以及怎么延长它的寿命

衰减不是某一天突然发生的事故,是一条你必须持续测量的曲线。这篇讲因子为什么衰减、拥挤有哪些能观测的代理信号,以及在一个已经很挤的市场里还能怎么做。

第 4 篇 · 共 8 篇 约 10 分钟

任何被发表出来的因子,它的溢价最终都会被套利到零。问题只是你在这个周期里够不够早。

这是因子投资里那个不光彩的秘密。学术文献描述的那些因子,Sharpe 0.5–1.0,持续几十年。现实是:这些溢价大多数在发表后的十年里缩水了 30–60%,因为量化基金读了跟你一样的论文,在同样的交易上布了局。

McLean and Pontiff (2016), Does Academic Research Destroy Stock Return Predictability?, Journal of Finance, 把这件事量化了。他们发现,异象组合的收益在样本外(只用各自原始样本期之后的数据)比样本内低约 26%;等论文发表并被广泛引用之后,比样本内低约 58%。中间那约 32 个百分点的额外衰减,是论文公开之后资金涌入造成的。ISSN 0022-1082.

这两个数字分得很开,是有含义的:即使没人读过你的论文,样本外收益也会掉——那部分是数据挖掘偏差的自然回吐;而发表之后多掉的那一截,才是拥挤。你要对付的是后者,因为只有它跟你的行为有关。

衰减的四个阶段

一个因子的一生大致可以分成四段,时间尺度是量级估计而不是精确刻度。

发现期(第 0–3 年)。 学术论文发表,溢价很大,常常 Sharpe 1.0 以上。几乎没人在交易它。发现这个因子的教授可能有个私人账户在跑。

机构采纳期(第 3–10 年)。 量化基金读了论文,各家建自己的变体。这个因子上的资金从近乎零涨到几百亿美元量级。溢价开始缩水,Sharpe 掉到 0.5–0.8。早进场的人还在赚钱,晚进场的人在一个更小的优势上挤来挤去。

成熟与拥挤(第 10–20 年)。 因子已经广为人知,因子产品上的资金到了千亿美元量级。边际交易者拿到的收益已经低于资本成本。策略对那些有结构性优势的人还是管用——更低的交易成本、更快的执行、更好的融资;对其他人来说就是噪音。

噪音期(第 20 年之后)。 除非这个因子有结构性原因持续存在(阻止散户参与的交易成本、根深蒂固的行为偏差),否则溢价基本没了。策略活下来主要是作为营销说辞,而不是作为赚钱的交易。

价值因子(HML)从 1992 年走到今天,大致就是这条路径。

三个机制

衰减不是单一原因造成的,三个机制互相咬着走。

套利是标准的有效市场故事。一个因子一旦被发表,那些会从这笔交易里受益的资产价格就会上涨,会受损的就会下跌,误定价被消除。在一个无摩擦的市场里,所有已知因子会瞬间被套利到零;我们不活在无摩擦的市场里,所以套利用了几年时间。但它确实会发生。

拥挤是套利的副作用,而且比套利更凶。太多的交易者在同一笔交易的同一侧。当 50 家基金各管 100 亿美元时,这笔交易没问题;当边际那一笔仓位是由一个看到风吹草动就要跑的人拿着时,这笔交易就崩了。拥挤制造的不是低收益,是脆弱性:当交易反向时,流动性消失、价差扩大、相关性飙升,你没法按预期的价格出来。2009 年的动量是经典的拥挤踩踏,2020 年的价值是另一个。

行为变化最慢,但影响面最大。机构投资者学会了因子,养老金、捐赠基金、家族办公室开始朝质量、低波动、价值倾斜,这改变了这些资产的需求,从而改变了价格,从而缩小了溢价。近十年做过的多份机构调查都指向同一个方向:政策组合里带明确因子倾斜的大型机构占了相当高的比例。那是万亿美元量级的钱在追逐同样的四到六个因子。

注意这三者跟你的关系不一样。套利你无能为力;行为变化你只能接受;只有拥挤是你能提前观测、并据此调整仓位的那一个。所以下面这一节讲怎么观测它。

拥挤没法直接看,只能看代理指标

你没办法直接看到某个策略上有多少 AUM。能看到的都是代理,而代理指标里最可靠的一个是你自己因子的预测力。

如果一个因子历史上 IC(信息系数)是 0.10,现在是 0.03,信号就是变弱了——不管原因是拥挤、regime 切换还是你的实现退化,结论都是”你现在的优势比以前小”。Arithmion 里算这个走 evaluate_factor:

from apexquant.notebook import evaluate_factor

report = evaluate_factor(bars, "momentum_60", quantiles=5, periods=(21,))
ic = report["ic_summary"]
ic["rank_ic_mean"], ic["rank_icir"], ic["rank_ic_t_stat"]

提示词

用 Arithmion 的 notebook.evaluate_factor 算一个动量因子的 IC 摘要,看 rank IC 均值、ICIR 和 t 统计量。

要看衰减而不是水平,就把这个报告在滚动窗口上重复跑,比较近期窗口和长期均值。这里有个统计上的坑值得知道:当 periods 里的前向收益横跨多个 bar 时,IC 序列本身是自相关的,朴素的 ICIR × √n 会把显著性吹起来。报告里的 rank_ic_t_stat 已经做了 Newey-West 修正(带宽取主周期减一),所以判断”IC 是不是真的掉了”应该看它,而不是自己拿均值和标准差硬除。

第二个代理是因子之间的相关性。当很多因子变成同一笔交易时,因子间相关性会上升。价值和质量过去是不相关的,在 2010 年代变得高度相关(两者都是”做多赚钱又便宜的公司”)。如果你那个”分散化”的四因子组合实际上八成是同一笔交易,你的分散化是假的。这一步不需要任何专用 API,因子收益到手之后就是一个 pandas 操作:


rolling_corr = factor_returns.rolling(60).corr()
latest = rolling_corr.loc[factor_returns.index[-1]]
worst_pair = latest.where(~np.eye(len(latest), dtype=bool)).abs().max().max()

提示词

用 pandas 算几个因子收益序列的 60 期滚动相关矩阵,取出最近一期里最大的非对角相关系数。

第三个代理在你的数据之外:资金流。你看不到”价值因子”的 AUM,但你能看到价值 ETF 的规模(IVE、VBR、IUSV 这类)、因子共同基金、以及量化股票基金的资金流。这些数据要从行情/基金数据供应商拿,平台不内置——这也是它作为信号的弱点:它滞后、口径杂、而且 ETF 只覆盖了这笔交易的一部分。把它当成一个方向性的旁证,别当成扳机。规则大致是:某个因子上的资金两年内翻倍,就预期溢价被压缩。

第四个信号最直白,也是最迟的:突然的因子崩盘。2009 年的动量在 12 个月里跌了约 50%,2020 年的价值一年内回撤到 −40% 量级,2018 年第四季度的低波动是一个温和版本。当一个因子出现突然、剧烈的回撤时,那通常就是拥挤踩踏。这时候能做的只有两件:之后 6–12 个月内躲开这个因子,或者把规模降下来。

价值因子:一个完整的衰减样本

价值因子(HML,高减低账面市值比)是最完整的衰减案例,因为它的整条曲线都跑完了。

Fama 和 French 在 1992 年发现它。记录在案的溢价是 1963 至 2007 年每年约 5%,做法简单到一句话说得完:做多便宜股、做空贵股,Sharpe 大约 0.6–0.8。

之后发生的事按顺序是这样的。1990 年代,AQR、DFA、LSV、Vanguard 各自建了价值策略,价值股上的资金从近乎零涨到 2010 年的几百亿美元量级。2007–2009 年金融危机,价值因子经历了现代史上最严重的回撤之一——银行股这个终极”价值”交易崩了。2010–2019 年,价值连续跑输成长股差不多十年,年化价值溢价缩到 1–2% 的量级;2017 年短暂回暖,然后又死了。2020–2022 年利率从零开始上升,价值终于大幅跑赢。2023–2024 年,随着成长股在 AI 叙事下回升,价值溢价再次缩小。

对 1995 年就开始跑价值的人来说,这几十年是相当赚钱的,拿到的量级接近文献记录的那个溢价。对 2010 年才开始跑的人来说,扣完成本可能勉强盈利。同一个因子、同一套规则,差别只是入场时间。

晚进场五年,可能就错过了大部分溢价——这是本文最实际的一条结论,也解释了为什么下一节的所有办法,本质上都是在回答”我来晚了,还能怎么办”。

来晚了还能怎么办

四条路,效果和门槛差得很远。

换一个更好的变体。 账面市值比只是价值的一种度量方式,而且是比较老的一种。企业倍数(EBITDA / EV)、自由现金流收益率、盈利收益率都是候选,把它们综合起来的”改进版价值”因子在文献里表现优于经典 HML。同样的思路适用于其它因子:第一次发表的版本很少是最好的版本,等到所有人都在交易它的时候,学术文献早就推进到更好的规范了。这条路成本最低,也是散户和小机构最现实的一条。

跨因子分散。 四因子组合比任何单一因子有更低的回撤和更稳定的收益:价值跑输时动量或质量可能还行,动量崩盘时价值常常反弹。但要说清楚它做不到什么——分散化降低的是路径的痛苦程度,消除不了衰减。组合里的每一个单一因子仍然在各自衰减,你只是把几条下行曲线叠在了一起。

更快。 如果你能每天再平衡而对手每月再平衡,你就能抓到更多溢价;如果你的交易成本是 5 个基点而他们是 20 个,你的净 Sharpe 就更高。这是真正的结构性优势,问题是它要靠钱和基础设施堆出来。大部分零售和小机构玩家在这条路上没有竞争力,看清这一点比在这上面白花钱强。

去不那么拥挤的市场。 美国大盘股是世界上最拥挤的市场,每个因子策略都在 SPX 的票上跑。新兴市场股票、小盘股、流动性差的信用、某些大宗商品期货,人少得多,因子溢价更大也更持久。代价写在标签上:容量更低、数据更难拿、成本更高。所以这条路的正确用法是配一部分仓位过去,而不是整体搬家。

值得注意的是,这四条里没有一条是”找一个新因子”。这不是巧合,下面会说为什么。

把衰减做成一个持续测量的过程

如果你在跑因子策略,需要的不是一次尽调,是一个一直开着的监控。要盯的量其实不多:

  1. 每个因子在 36 个月窗口上的滚动 IC
  2. 你自己那几个因子之间的滚动相关性
  3. 因子 ETF 和量化基金的资金流代理
  4. 任意因子在 6 个月内跌超 15% 的回撤告警
  5. Regime 指标(VIX、信用利差、变化速度)

这五项里,前两项你可以完全在平台内算出来(evaluate_factor 加 pandas 就够),第三项要外部数据,后两项是你自己的风控参数。平台不内置一个”因子监控器”组件——这件事的形状高度依赖你跑的是哪几个因子、什么频率、对什么级别的回撤敏感,做成通用组件反而会逼你迁就它的假设。

重点在于它不是一个”设了就忘”的系统。因子衰减是连续发生的,不是某天出个事件通知你。去年管用的因子明年不一定管用;现在不管用的因子也可能回来——2020 到 2022 年的价值就是活生生的例子。所以监控的产出不该是”报警/不报警”,而应该是一条你每季度都会看一眼的曲线。

老实说

如果你今天开始做量化研究,真正的优势不在于发现新因子。发新因子这件事已经被做过至少两百遍了,而且新发的那些大概率通不过多重检验修正。优势在别的地方:把已知因子组合得更聪明、执行得更便宜更快、去人少的市场、以及比别人更早发现自己的因子在衰减。

因子投资的黄金时代——1992 年发现 HML 然后一路交易 30 年——已经结束了。新的游戏是在拥挤的市场里抓增量优势:更难,alpha 更少,基础设施要求更高。

我不觉得这件事让人沮丧。它只意味着工作更难、回报更小,而这两件事对认真做的人是好消息——因为它筛掉的正是那些以为溢价是永久的人。

真要落地,顺序大概是这样的。先用平台的因子评价把 4–6 个低相关因子的基线打出来,知道每个的 IC 和 ICIR 现在是多少;然后把上面那五项监控挂上,让它们每个季度自己更新;账簿里划出一小部分(一到两成的量级)去做已建立因子的”聪明变体”,再划出相近的一部分去不太拥挤的市场;配置按季度根据拥挤信号调整,而不是按心情。最后是预期管理:扣完成本之后,因子 Sharpe 落在 0.4–0.7 是正常的,不是学术论文里那个 0.8–1.2。

溢价是真实的,它比宣传的小,而且会继续衰减。把衰减管好的人能做很久。

参考文献

  • McLean, R. & Pontiff, J. (2016). Does Academic Research Destroy Stock Return Predictability?. Journal of Finance. ISSN 0022-1082.
  • Chordia, T., Subrahmanyam, A., & Tong, Q. (2014). Have Capital Market Anomalies Attenuated in the Recent Era of High Liquidity and Trading Activity?. Journal of Accounting and Economics. ISSN 0165-4101.
  • Fama, E. & French, K. (1993). Common Risk Factors in the Returns on Stocks and Bonds. Journal of Financial Economics. ISSN 0304-405X.
  • AQR Capital Management. Can You Beat the Market? Factor Investing. Research paper, 2019.
  • Harvey, C., Liu, Y., & Zhu, H. (2016). …and the Cross-Section of Expected Returns. Review of Financial Studies. ISSN 0893-9454.