4、多因子组合权重优化:等权配置、市值加权、波动率倒数加权、均值-方差优化
权重优化,说白了就是决定每个因子在组合里占多大分量。
我见过不少新手,辛辛苦苦挖了一堆因子,最后随便一拼就上线了。结果呢?回测漂亮,实盘拉胯。为什么?因为权重没搞对。
今天咱们就把四种最主流的权重方法掰开揉碎讲清楚。每种方法我都踩过坑,咱们边聊边避雷。
4.1 等权配置——最朴素的 baseline
等权配置,就是每个因子分同样的钱。比如你有5个因子,每个占20%。
这方法简单到令人发指,但千万别小看它。我个人的习惯是:任何新组合,先用等权跑一遍,当作基准。
优点很明显:
- 实现零门槛,一行代码搞定
- 不存在过拟合风险
- 回测结果最「诚实」
缺点也致命:
- 完全忽略因子之间的相关性
- 差因子会拖累好因子
- 波动率高的因子会主导组合风险
4.2 市值加权——跟着大资金走
市值加权,就是按因子对应股票的市值大小来分配权重。大市值股票对应的因子权重高,小市值权重低。
这方法在机构里很常见。为什么?因为大资金进出方便啊。
具体做法:
# 市值加权示例
def market_cap_weight(factor_scores, market_caps):
# 因子得分乘以市值
weighted_scores = factor_scores * market_caps
# 归一化
weights = weighted_scores / weighted_scores.sum()
return weights
我曾在某百亿私募见过一个案例:他们用市值加权做行业轮动,效果出奇的好。原因很简单——大市值股票流动性好,交易成本低,实盘损耗小。
4.3 波动率倒数加权——让每个因子「音量」一致
这个思路很有意思。你想想看,有些因子天生波动大,比如动量因子,上蹿下跳。有些因子波动小,比如低波因子,稳如老狗。
如果等权配置,波动大的因子会主导组合的风险。波动率倒数加权就是解决这个问题的。
公式很简单:
权重 = (1 / 因子波动率) / sum(1 / 所有因子波动率)
波动率大的因子,权重自动变小。波动率小的因子,权重自动变大。
我做过一个实验:用等权和波动率倒数加权分别跑沪深300的因子组合。三年下来,波动率倒数加权的最大回撤低了将近5个点,夏普比率高了0.3。
但有个坑:
- 波动率计算窗口怎么选?我建议用60个交易日滚动计算
- 极端行情下波动率会突变,需要做截断处理
- 因子波动率本身会随时间变化,需要定期再平衡
4.4 均值-方差优化——马科维茨的遗产
终于聊到重头戏了。均值-方差优化,这是现代投资组合理论的基石。马科维茨老爷子凭这个拿了诺贝尔奖。
核心逻辑就一句话:在给定收益目标下,最小化组合风险。或者反过来,在给定风险下,最大化组合收益。
数学表达:
目标:最小化 w^T Σ w
约束:w^T μ = target_return
sum(w) = 1
w_i >= 0
其中 w 是权重向量,Σ 是因子收益率的协方差矩阵,μ 是因子预期收益。
代码实现:
import numpy as np
from scipy.optimize import minimize
def mean_variance_optimize(mu, cov, target_return):
n = len(mu)
def portfolio_var(w):
return w.T @ cov @ w
constraints = [
{'type': 'eq', 'fun': lambda w: np.sum(w) - 1},
{'type': 'eq', 'fun': lambda w: w.T @ mu - target_return}
]
bounds = [(0, 1) for _ in range(n)]
init_w = np.ones(n) / n
result = minimize(portfolio_var, init_w,
constraints=constraints,
bounds=bounds)
return result.x
我个人的经验是:
- 别直接用历史均值当预期收益,那玩意儿不准
- 协方差矩阵要做收缩估计,比如用 Ledoit-Wolf 方法
- 加一些约束条件,比如单个因子权重不超过30%
- 做敏感性分析,看看权重对参数变化的稳定性
4.5 四种方法对比
咱们用一张表来总结:
| 方法 | 复杂度 | 过拟合风险 | 实盘稳定性 | 适用场景 |
|---|---|---|---|---|
| 等权配置 | 低 | 低 | 高 | 基准测试、因子初筛 |
| 市值加权 | 低 | 低 | 中 | 大资金、流动性敏感场景 |
| 波动率倒数加权 | 中 | 中 | 高 | 风险控制优先的场景 |
| 均值-方差优化 | 高 | 高 | 低 | 理论研究、参数稳定的场景 |
你看,没有绝对的好坏。关键看你的目标是什么。
如果追求稳健,波动率倒数加权是我的首选。如果做学术研究,均值-方差优化是必修课。如果只是快速验证想法,等权配置足够了。
4.6 知识体系图
下面这张图帮你理清四种方法的核心逻辑:
嗯,这张图把四种方法的定位和特性都串起来了。你保存下来,以后选方法时拿出来看一眼,心里就有数了。