一、因子拥挤度基础:什么是因子拥挤度、为什么拥挤度重要、拥挤度的核心逻辑
各位同学好,我是老张。今天咱们开始聊因子拥挤度。
说实话,我做了十几年量化,见过太多策略回测漂亮、上线就崩的案例。原因很多,但有一个问题特别隐蔽——因子拥挤度。嗯,今天咱们就把这个坑彻底讲透。
1.1 什么是因子拥挤度?
先问个问题:你发现了一个特别好的因子,比如低波动因子,回测夏普2.0。你兴冲冲上线,结果三个月后收益归零。为什么?
因为大家都在用这个因子。你想想看,当所有人都去买低波动股票,这些股票的价格就被推高了,低波动的特征就消失了。这就是因子拥挤。
因子拥挤度,说白了就是衡量某个因子被多少资金、多少策略同时使用的指标。它反映的是因子背后的交易行为是否过于集中。
我个人习惯用一个比喻:因子就像一条小路。刚开始走的人少,路好走。走的人多了,路就堵了,甚至塌了。因子拥挤度就是测量这条路上有多少人的工具。
核心定义:因子拥挤度 = 因子策略的资金容量 / 实际参与的资金量。比值越小,拥挤度越高。
1.2 为什么拥挤度重要?
我2018年做过一个动量策略,回测三年年化25%。上线后前两个月赚了8%,我挺得意。结果第三个月开始,连续回撤15%。
后来复盘发现,那段时间市场上至少有20家机构在用同样的动量因子。因子拥挤度从0.3飙升到0.8。说白了,大家都在抢同样的股票,一旦有人先跑,就是踩踏。
拥挤度重要,主要有三个原因:
- 收益衰减:因子被广泛使用后,超额收益会快速下降。我见过一个价值因子,拥挤度从0.2涨到0.6,年化收益从12%掉到3%。
- 风险积聚:拥挤的因子一旦反转,回撤会非常剧烈。因为大家都在同一艘船上,船翻的时候谁也跑不掉。
- 策略失效:因子拥挤到一定程度,原来的逻辑就不成立了。比如低波动因子,当所有人都去买低波动股票,这些股票就不再是低波动了。
注意:因子拥挤度不是越低越好。完全没有拥挤的因子,可能意味着它本身就不被市场认可。关键是要找到拥挤度的合理区间。
1.3 拥挤度的核心逻辑
拥挤度的核心逻辑其实就一句话:因子收益 = 因子本身收益 - 拥挤度带来的损耗。
这个损耗是怎么产生的?我画了一张图,你看完就明白了。
这张图其实已经把核心逻辑讲清楚了。我再补充几点:
- 拥挤度是动态的:今天不拥挤,明天可能就拥挤了。我习惯每周计算一次拥挤度指标。
- 拥挤度有阈值:我个人经验,拥挤度超过0.6就要高度警惕,超过0.8建议直接减仓。
- 不同因子阈值不同:价值因子的拥挤度容忍度比动量因子高。因为价值因子有基本面支撑,动量因子纯粹是交易行为驱动。
我的一个小技巧:计算拥挤度时,不要只看资金量。还要看策略数量。有时候资金量不大,但策略数量多,同样会造成拥挤。因为每个策略都在做类似的交易。
1.4 拥挤度的量化方法
说了这么多理论,咱们来点实际的。拥挤度怎么算?
我常用的方法有三种:
| 方法 | 计算方式 | 优点 | 缺点 |
|---|---|---|---|
| 资金集中度法 | 因子策略总资金 / 市场总资金 | 直观、易计算 | 资金数据难获取 |
| 交易拥挤度法 | 因子成分股换手率 / 市场平均换手率 | 数据易得、实时性强 | 受市场情绪干扰大 |
| 相关性法 | 因子策略收益与市场平均收益的相关性 | 反映策略同质化 | 滞后性较强 |
我个人最常用的是第二种——交易拥挤度法。为什么?因为数据好拿,而且能实时反映市场行为。
# 一个简单的交易拥挤度计算示例(Python伪代码)
def calc_crowding(stock_list, factor_weight):
"""
计算因子拥挤度
stock_list: 因子选中的股票列表
factor_weight: 因子权重
"""
# 计算因子成分股的加权换手率
factor_turnover = sum(
stock.turnover * factor_weight[i]
for i, stock in enumerate(stock_list)
)
# 计算市场平均换手率
market_turnover = get_market_avg_turnover()
# 拥挤度 = 因子换手率 / 市场换手率
crowding = factor_turnover / market_turnover
return crowding
# 使用示例
crowding = calc_crowding(my_stocks, my_weights)
if crowding > 0.6:
print("警告:因子拥挤度过高,建议减仓")
elif crowding > 0.8:
print("危险:因子极度拥挤,立即减仓")
注意:这个代码只是演示逻辑。实际使用时,你需要考虑更多因素,比如不同股票的流动性差异、交易成本等。我曾经因为没考虑流动性,在拥挤度计算上吃了大亏。
1.5 避坑指南
最后,分享几个我踩过的坑:
- 坑一:只看拥挤度不看趋势。拥挤度在下降,但因子收益也在下降,说明因子本身失效了,不是拥挤度的问题。
- 坑二:拥挤度阈值一刀切。不同市场环境下,拥挤度的容忍度不同。牛市中拥挤度0.7还能赚钱,熊市中0.4就可能崩盘。
- 坑三:忽略因子生命周期。新因子刚出来时拥挤度低,但收益也低。等拥挤度上来了,收益也上来了。这时候要判断是继续持有还是止盈。
我曾经在2020年犯过一个错误。当时发现一个因子拥挤度只有0.2,觉得特别安全,重仓买入。结果三个月后因子收益为负。后来才发现,这个因子本身逻辑就有问题,拥挤度低是因为根本没人用。嗯,从那以后我学会了:拥挤度低不等于好因子,还要看因子本身的质量。
好了,第一章就讲到这里。记住一句话:因子拥挤度是策略的"体温计",不量体温就开药,迟早要出事。