3. 拥挤度度量指标(下):因子截面相关性、因子资金流、因子拥挤度综合打分
好,咱们接着聊。上一节讲了时间序列上的拥挤度,这一节我们聚焦截面维度。说白了,就是看同一时刻,不同股票之间,因子暴露是不是“撞车”了。
我个人习惯把截面拥挤度比作“停车场”。你想想看,如果所有车都往同一个车位挤,那肯定出问题。因子也是一样,大家都重仓同一批股票,一旦有人先跑,就是踩踏。
3.1 因子截面相关性
这个指标很直观。我们计算每个股票在某个因子上的暴露值,然后看这些暴露值之间的相关性矩阵。
具体做法是这样的:
- 取一个截面(比如今天收盘),拿到所有股票的因子值。
- 计算两两股票之间的因子值相关性。
- 对整个矩阵求平均,得到一个拥挤度分数。
我在项目中遇到过一个问题:直接用原始因子值算相关性,结果被极端值带偏了。后来我改用秩相关系数(Spearman),效果稳定很多。
核心逻辑:
截面相关性越高,说明因子在选股上的“共识度”越高。共识度太高,就是拥挤的前兆。
嗯,这里要注意一个细节。截面相关性跟因子本身的分布有关。比如市值因子,天然就是右偏的。所以不要只看绝对值,要看历史分位数。
# Python 伪代码示例
import numpy as np
from scipy.stats import spearmanr
def factor_cross_section_corr(factor_values):
"""
计算因子截面拥挤度
factor_values: array, 所有股票的因子值
"""
n = len(factor_values)
corr_matrix = np.zeros((n, n))
for i in range(n):
for j in range(i+1, n):
corr, _ = spearmanr(factor_values[i], factor_values[j])
corr_matrix[i][j] = corr
corr_matrix[j][i] = corr
# 取上三角平均值
upper_tri = corr_matrix[np.triu_indices_from(corr_matrix, k=1)]
return np.mean(upper_tri)
实战小技巧:
我一般会滚动60个交易日计算这个指标。如果连续5天都在90%分位数以上,我就会开始减仓了。
3.2 因子资金流
这个指标更直接。我们看资金到底在往哪个方向流。
具体来说,就是计算每个因子多空组合的资金净流入。如果多头端资金持续涌入,空头端资金持续流出,那这个因子就处于“过热”状态。
我曾经踩过一个坑:只看资金流入,没看成交量。结果发现有些因子虽然资金流入大,但成交量很小,说明是“虚胖”。后来我加了一个调整项——用资金流除以成交量,得到“资金流强度”。
| 指标 | 计算公式 | 拥挤度信号 |
|---|---|---|
| 资金净流入 | 多头流入 - 空头流出 | 持续为正且放大 |
| 资金流强度 | 净流入 / 成交量 | 超过历史90%分位 |
| 资金流集中度 | 前5%股票的资金流占比 | 超过70% |
你想想看,如果资金流集中度超过70%,说明大家都在赌那几只股票。这时候一旦有个风吹草动,跑都跑不掉。
避坑指南:
我曾经在2021年春节前看到某因子资金流异常放大,但当时觉得“趋势还在”就没动。结果节后直接回撤15%。从那以后,只要资金流强度超过历史95%分位,我无条件减仓一半。
3.3 因子拥挤度综合打分
好了,前面讲了这么多指标,怎么综合起来用?
我的做法是:给每个指标打分,然后加权求和。权重怎么定?我一般用等权,因为说实话,没有哪个指标能永远领先。
打分流程:
- 标准化: 把每个指标映射到0-100分。用历史分位数来映射。
- 加权: 等权或者根据近期表现动态调整。
- 阈值判断: 总分超过70分,进入预警区;超过85分,强制减仓。
我习惯用下面这个框架图来展示整个逻辑,一目了然:
这个框架图我用了好几年,每次做因子评审都会过一遍。说白了,就是给因子做个体检,看看有没有“三高”。
综合打分示例:
假设某因子今天的数据:
- 截面相关性:85分(历史高位)
- 资金流强度:78分(偏高)
- 资金流集中度:92分(极度集中)
等权综合得分 = (85 + 78 + 92) / 3 = 85分
嗯,这个分数已经触及强制减仓线了。我会立刻执行减仓操作,不留情面。
我的个人习惯:
综合打分不是每天算,那样太频繁了。我一般每周五收盘后跑一次,然后周末做决策。如果遇到极端行情(比如连续暴跌),会临时加算一次。
最后说一句,拥挤度打分不是万能的。它更像是一个“体检报告”,告诉你哪里可能有问题。但具体怎么治,还得结合你对因子的理解。毕竟,有些因子天生就是拥挤的,比如市值因子。这时候你要看的不是拥挤度绝对值,而是变化趋势。
好了,这一节就到这里。记住:拥挤度不是用来预测收益的,是用来管理风险的。别搞反了。