风险平价与层次风险平价¶
定义¶
逆波动按波动的倒数分配。风险平价让每份资产的风险贡献相等。层次风险平价先按相关聚类,再在簇之间按方差倒数分配。
公式¶
\[
w_i\propto \frac{1}{\sigma_i}
\]
波动 10%、20%、30% 的逆波动权重是 0.5455、0.2727、0.1818。相关为常数时,两资产的逆波动就是风险平价。两簇教学方差 0.04 和 0.01 给出权重 0.2000 和 0.8000。这不是上面那组三资产权重。
直觉¶
波动小的资产要拿得多,组合才不会被一只高波动的资产主导。聚类是为了不把高度相关的资产当成两次独立的分散。
实务要点 / 常见误区¶
- 不加杠杆时,股债风险平价更接近多放债券。把 5.52% 的波动抬到 10% 需要约 1.81 倍,函数上限是 1,不执行。
- 逆波动函数触顶后会摊回。
sleeve_to_account不摊回。 - 两簇权重是教学方差的倒数,不是 López de Prado 的样本外结果。
相关概念¶
- Black–Litterman 模型 (
black_litterman_model) - 结构化风险模型 (
structural_risk_model_barra) - 凯利公式 (
kelly_criterion)
代码¶
def two_cluster_weights(var_a: float, var_b: float) -> tuple[float, float]:
# 簇间只看方差倒数。簇内再分是同一步的重复,这里只有两簇。
raw_a, raw_b = 1.0 / var_a, 1.0 / var_b
total = raw_a + raw_b
return raw_a / total, raw_b / total
教材:M12 组合构建与优化