风险平价(Risk Parity)大概是过去十几年最被滥用的”高级词”之一。它把一个朴素且正确的想法讲得很漂亮:别按本金切蛋糕,按风险切——让每个资产对组合总风险的贡献相等。但有个问题被很多人忽略了:风险贡献相等,不等于分散化最优。
结论先放这:最大分散化组合(Maximum Diversification Portfolio, MDP,Choueifaty & Coignard 2008/2011)把一个叫”分散化比率”(Diversification Ratio, DR)的数直接最大化。它的闭式解藏在 里——用波动率向量 σ 替换了最小方差里的全 1 向量,于是低波动、低相关的资产(国债、黄金)被天然推到前台。在我们的 6 资产实测里,MDP 的 DR=1.89,高于风险平价的 1.84;样本外 4 年 CAGR 6.9%、夏普 0.86、最大回撤 −9.5%,五项指标全面压过风险平价。

一、分散化比率:把”分散”变成一个能优化的数#
风险平价关心的是”每个资产吃了多少风险饼”。MDP 关心一个更根本的问题:我的组合波动,到底被相关性压低了多少?
定义分散化比率:
- 分子 :组合成分波动率的加权平均,也就是假设所有资产互不相干时的组合波动。
- 分母 :组合真实的波动率,已经把相关性扣掉了。
所以 DR 的含义非常直白:平均波动率 ÷ 实际波动率。DR 越大,说明相关性帮你”免费”削掉的那部分波动越多——也就是你吃到的分散化红利越大。等权组合的 DR 往往只有 1.3~1.5,而一个真正分散化的组合能到 1.8 以上。
注意一个反直觉的点:DR 衡量的不是收益,是风险结构的质量。它回答的是”我有没有把相关性这顿免费午餐吃满”,而不是”我赚了多少”。
二、闭式解:MDP 藏在 里#
对 在 下求极值,一阶条件给出(无约束时):
推导不复杂:把 对 求导,令分子为零,化简后就是 ,整理即得 。
把它和经典最小方差组合(Global Minimum Variance, GMV)放一起看,结构差异一目了然:
- 最小方差用全 1 向量,等价于”谁波动低就无脑多加谁”,最终会高度集中到最低波动资产(我们的实测里它把 62.9% 压在国债上)。
- MDP 用波动率向量 σ,相当于在”低波动”之外还多乘了一层:波动率越低、且与其它资产相关性越低的资产,被推到前台的力度越大。它优化的不是”波动最低”,而是”分散化最满”。
无约束解会出现负权重(做空),实盘用长仓版本,即在 下最大化 DR,变成一个带约束的优化问题。
import numpy as np
from scipy.optimize import minimize
def max_diversification(Sigma, sigma, n_assets):
"""Long-only Maximum Diversification Portfolio: maximize DR = (w·σ)/sqrt(w^T Σ w); closed-form w ∝ Σ^-1 σ"""
w0 = np.repeat(1.0 / n_assets, n_assets)
def neg_dr(w):
return -(w @ sigma) / np.sqrt(w @ Sigma @ w)
cons = [{"type": "eq", "fun": lambda w: w.sum() - 1}]
bounds = [(0.0, None)] * n_assets
res = minimize(neg_dr, w0, method="SLSQP",
bounds=bounds, constraints=cons,
options={"maxiter": 3000, "ftol": 1e-14})
return res.x / res.x.sum()
def diversification_ratio(w, Sigma, sigma):
return (w @ sigma) / np.sqrt(w @ Sigma @ w)python三、与风险平价、最小方差同台对比#
我们用 6 个资产(美股 / 欧股 / 新兴市场 / 国债 / 黄金 / 商品)做一组双因子模拟:一个”风险偏好”因子驱动权益与商品,一个”避险”因子驱动国债与黄金,再加各自特异波动。估计出的相关性结构正是现实的样子——权益之间高度正相关(0.75~0.83),权益与国债负相关(约 −0.25),黄金与权益几乎零相关(约 0.13)。

三种方法算出的权重(长仓)如下:
| 方法 | 美股 | 欧股 | 新兴市场 | 国债 | 黄金 | 商品 | DR |
|---|---|---|---|---|---|---|---|
| 等权 | 16.7% | 16.7% | 16.7% | 16.7% | 16.7% | 16.7% | 1.40 |
| 风险平价(ERC) | 7.6% | 7.8% | 8.0% | 45.1% | 19.9% | 11.7% | 1.84 |
| 最小方差 | 3.9% | 3.1% | 2.6% | 62.9% | 17.3% | 10.2% | 1.80 |
| 最大分散化 | 6.8% | 5.0% | 5.3% | 54.3% | 17.3% | 11.2% | 1.89 |

两个观察:
- MDP 的 DR 最高(1.89),验证了它确实把分散化吃满了;风险平价 1.84 紧随其后;最小方差只有 1.80——因为它过度集中到国债,牺牲了”跨资产”的分散。
- MDP 比风险平价更敢给低波动、低相关资产加码:国债 54.3% vs 风险平价 45.1%,同时把高波动的权益压得更狠(合计 17.1% vs 23.4%)。它本质上在用相关性做权重——相关性越低的资产,在组合里”性价比”越高。
四、样本外净值:MDP 全面压过风险平价#
用前 6 年估计协方差,后 4 年做样本外净值(避免样本内前视),四种方案对比如下:
| 方法 | CAGR | 夏普 | 年化波动 | 最大回撤 |
|---|---|---|---|---|
| 等权 | 3.4% | 0.32 | 14.7% | −27.1% |
| 风险平价 | 6.3% | 0.74 | 9.0% | −12.2% |
| 最小方差 | 7.4% | 0.94 | 8.0% | −10.8% |
| 最大分散化 | 6.9% | 0.86 | 8.2% | −9.5% |

相对风险平价,MDP 在 DR、CAGR、夏普、波动、回撤 五项上全部占优——这正是”用相关性加权超越风险平价”的实证含义:同样把风险压到 9% 附近,MDP 因为分散得更”满”,样本外收益更高、回撤更浅。
但要诚实地说一句:最小方差在纯方差和夏普上反而略胜 MDP(CAGR 7.4%、夏普 0.94)。这是因为它更极端地集中到最低波动的国债(62.9%),赌对了低波动环境就赢。MDP 的卖点不是”夏普永远第一”,而是在”最分散”这条轴上是严格最优的,因此它对估计误差和 regime 切换更稳健——下面第三节的陷阱会解释为什么这很关键。
def backtest_weights(weights_dict, R_test, names):
"""给定一组权重,在样本外收益矩阵上算净值与绩效"""
out = {}
for label, w in weights_dict.items():
nav = np.cumprod(1.0 + R_test @ w)
r = np.diff(nav) / nav[:-1]
cagr = nav[-1] ** (252.0 / len(nav)) - 1
sharpe = r.mean() / r.std() * np.sqrt(252)
mdd = (nav / np.maximum.accumulate(nav) - 1).min()
out[label] = (cagr, sharpe, r.std() * np.sqrt(252), mdd)
return outpython五、真实陷阱(不平坑你一定会踩)#
1. 对估计误差极度敏感。 这是 MDP 最大的阿喀琉斯之踵。样本协方差里哪怕一点点噪声,被求逆后会被平方级放大,导致权重剧烈摆动——今天国债 55%,下个月可能 35%。必须用 Ledoit-Wolf 收缩估计把样本协方差拉向结构化目标(如对角阵或单因子),这一步不是可选项。
2. 样本协方差可能非正定/病态。 高维小样本(资产数接近样本天数)时,Σ 可能奇异,求逆直接失败。收缩估计顺带解决了正定性,必要时再加一点岭正则 。
3. 换手率与交易成本。 MDP 权重对 Σ 高度敏感,再平衡频率稍高,摩擦就能把分散化红利吃掉大半。实盘要设调仓阈值(如权重漂移超 5% 才动)或月度/季度调仓。
4. 极端相关下 MDP 退化成”集中”。 危机时所有相关性冲向 1,分散化红利消失,MDP 会像最小方差一样被迫把权重堆到最低波动资产上——这时候它不再”分散”,而只是”最低波动”。别在危机里迷信它的分散化光环。
5. DR 最大 ≠ 收益最大。 MDP 优化的是风险结构,完全没看预期收益。如果某类资产预期收益显著更高(如小盘、成长),纯 MDP 会系统性欠配。正确做法是把 MDP 当风险底座,再叠加收益视图(例如 Black-Litterman 把主观观点融进 Σ 与预期收益)。
小结#
最大分散化组合把”分散”这件事从口号变成了可微的目标函数:最大化 ,闭式解 。它比风险平价多走了一步——不只把风险切匀,还让低波动、低相关的资产天然占更大比重,把相关性这顿免费午餐吃满。但它不是银弹:求逆放大的估计误差、危机时的相关性塌缩、对预期收益的视而不见,都是实盘必须正面处理的真实代价。把它当作”最分散的风险底座”,再配收缩估计、交易成本控制和收益视图融合,才是一个能落地的版本。