多因子组合:把几个信号拧成一根绳
概念关系示意
读完你会知道
- 多因子的价值在于分散单一因子的失效风险。
- 标准化、中性化、权重和约束,比「选哪几个因子」更影响结果。
- 因子相关性高时,多因子只是换名字的单因子。
- 换手、容量和拥挤,决定策略能不能活到实盘。
单因子都有失效期。价值可能连续几年跑输,动量在震荡市反复打脸,低波在利率上行时回撤。多因子的目标不是「每个阶段都赢」,而是让组合不依赖某一个信号。
一、最小流程
一个可复查的多因子流程,通常有六步:
- 股票池。 剔除 ST、停牌、上市不足一定天数、流动性太差的股票。
- 因子计算。 价值、质量、动量、低波等,每个因子给出一个原始值。
- 标准化。 去极值、转百分位或 Z-score,让不同量纲可比。
- 中性化。 剔除行业、市值等不想暴露的影响。
- 合成。 等权、IC 加权、风险平价或机器学习,选一种并固定。
- 组合与约束。 选前 N 只,设单票上限、行业上限、换手上限。
每一步都要写进回测记录。否则结果变差时,你无法判断是因子失效,还是某一步改了。
二、标准化与中性化
不同因子的分布差别很大。PE 的倒数是小数,动量是百分比,波动率也是百分比。直接相加,量纲大的因子会主导结果。常见做法是转成截面百分位,再映射到 0 到 1。
中性化是另一个关键。市值因子几乎和所有因子相关:小市值股票往往估值高、波动大、流动性差。如果不做市值中性,你的「价值组合」可能只是「小市值组合」。
| 处理 | 作用 | 不做会怎样 |
|---|---|---|
| 去极值 | 压缩异常值 | 单只股票主导排序 |
| 百分位 | 统一量纲 | 大数值因子吃掉权重 |
| 行业中性 | 剔除行业押注 | 组合变成行业主题 |
| 市值中性 | 剔除大小盘暴露 | 因子收益被市值解释 |
三、权重怎么定
常见有三种:
- 等权。 最简单,假设每个因子同样重要。适合因子数量少、历史不长的情况。
- IC 加权。 按因子历史信息系数分配权重。问题是 IC 不稳定时会追涨杀跌。
- 风险平价。 按因子的风险贡献分配,让每个因子对组合波动的贡献接近。
没有一种权重永远最好。等权最不容易过拟合,IC 加权更贴近近期表现,风险平价更稳但计算复杂。回测里要比较,但不要为了多 0.1 的夏普反复调权重。
四、相关性与拥挤
多因子的前提是因子之间低相关。价值和低波经常重叠,质量和低波也经常重叠。如果三个因子相关性都在 0.7 以上,组合并没有更分散,只是把同一个信号算了三遍。
拥挤是另一个隐形风险。当某个因子被大量资金使用,估值会被推高,未来收益下降;一旦资金撤离,回撤会比历史更大。2024 年初小盘股的流动性危机,就是拥挤交易遇到负反馈的例子。
回测记录要写到「可复现」的程度:股票池怎么筛、因子怎么算、去极值用什么分位、中性化回归了哪些变量、权重怎么定、调仓频率和成本假设是什么。只写「多因子策略」四个字,等于没有记录。
上线后还要监控因子失效:滚动 IC 是否持续为负、因子收益是否被市值或行业解释、换手和成本是否超出假设。监控指标要在回测阶段就定好,不能等亏了再找原因。
五、常见错误
- 因子越多越好。 因子多但相关性高,只会增加过拟合。
- 不做中性化。 结果被行业或市值主导,却以为是因子有效。
- 用全样本选因子。 先看结果再挑因子,样本外一定难看。
- 忽略换手和成本。 多因子调仓频繁,成本会吃掉大部分超额。
- 没有容量评估。 小资金能跑,大资金买不进也卖不出。
数据与口径
- 因子定义、标准化与中性化方法来自通用量化实践;示例为说明性流程。
- 回测必须使用当时可见的数据,并计入佣金、印花税、滑点和停牌约束。