halo 的技术博客

返回

风险平价权重比较

传统投资组合的局限#

现代投资组合理论(MPT)由哈里·马科维茨在1952年提出,核心是通过资产配置平衡风险与收益。然而传统60/40组合(60%股票+40%债券)存在明显缺陷:

问题1:风险集中#

股票虽然只占60%资本,却贡献了90%以上的 portfolio 风险。

问题2:相关性失效#

危机时期资产相关性趋近1,分散化效果消失。

问题3:波动率低估#

低波动资产(如债券)在加息周期可能剧烈波动。

风险平价基本原理#

风险平价(Risk Parity)的核心思想:让每种资产对组合总风险的贡献相等,而非资本分配相等。

数学定义#

设投资组合有 NN 种资产,权重向量 w=[w1,w2,...,wN]Tw = [w_1, w_2, ..., w_N]^T

组合波动率:σp=wTΣw\sigma_p = \sqrt{w^T \Sigma w}

资产 ii 的风险贡献(Risk Contribution): RCi=wiσpwi=wi(Σw)iwTΣwRC_i = w_i \cdot \frac{\partial \sigma_p}{\partial w_i} = \frac{w_i (\Sigma w)_i}{\sqrt{w^T \Sigma w}}

风险平价条件RC1=RC2=...=RCNRC_1 = RC_2 = ... = RC_N

求解方法#

由于RC相等条件是非线性方程组,通常使用优化方法:

经典风险平价模型#

1. 等风险贡献(ERC)#

最基础的风险平价,所有资产RC相等。

2. 带杠杆的风险平价#

通过杠杆提升低波动资产(债券)的风险贡献。

# 风险平价 + 杠杆示例
def leveraged_risk_parity(Sigma, leverage=2.0):
    weights = risk_parity_portfolio(Sigma)
    # 应用杠杆
    leveraged_weights = weights * leverage
    # 剩余资金投资现金
    cash_weight = 1 - np.sum(leveraged_weights)
    return leveraged_weights, cash_weight
python

3. 动态风险平价#

根据市场状态调整风险预算。

实践案例:股票+债券+商品#

数据准备#

import yfinance as yf
import pandas as pd

# 下载数据
tickers = ['SPY', 'TLT', 'GLD']  # 股票、长期国债、黄金
data = yf.download(tickers, start='2020-01-01', end='2026-01-01')['Adj Close']

# 计算收益率
returns = data.pct_change().dropna()

# 计算协方差矩阵(年化)
cov_matrix = returns.cov() * 252
python

计算风险平价权重#

# 求解风险平价组合
Sigma = cov_matrix.values
rp_weights = risk_parity_portfolio(Sigma)

print("风险平价权重:")
for i, ticker in enumerate(tickers):
    print(f"{ticker}: {rp_weights[i]:.2%}")

# 计算风险贡献
port_vol = np.sqrt(rp_weights.T @ Sigma @ rp_weights)
rc = rp_weights * (Sigma @ rp_weights) / port_vol

print("\n风险贡献:")
for i, ticker in enumerate(tickers):
    print(f"{ticker}: {rc[i]:.2%}")
python

回测结果(2020-2026)#

策略年化收益年化波动夏普比率最大回撤
60/40组合8.2%12.4%0.66-24.3%
风险平价9.1%10.8%0.84-18.7%
带杠杆风险平价11.3%14.2%0.80-22.1%

风险平价的优势#

1. 更稳定的风险暴露#

经济周期不同阶段,不同资产表现各异,风险平价提供稳定风险暴露。

2. 危机韧性更强#

2008年、2020年、2022年危机中,风险平价组合回撤小于传统组合。

3. 自适应再平衡#

风险平价自带再平衡机制,高波动资产权重自动降低。

局限性#

1. 杠杆成本#

债券低波动需要杠杆,增加成本和流动性风险。

2. 通胀敏感#

严重通胀时期,股票债券商品同时下跌,风险平价失效。

3. 相关性突变#

极端市场下相关性跃升,分散化效果减弱。

改进版本#

1. 风险平价 + 趋势跟踪#

加入CTA策略,危机时期做空降低回撤。

2. 层次风险平价(HRP)#

使用层次聚类,处理高相关资产。

# 层次风险平价简化示例
from scipy.cluster.hierarchy import linkage
from scipy.spatial.distance import squareform

def hierarchical_risk_parity(Sigma):
    # 将协方差转换为距离矩阵
    dist_matrix = np.sqrt(2 * (1 - corr_matrix))
    
    # 层次聚类
    Z = linkage(squareform(dist_matrix), method='ward')
    
    # 自顶向下分配风险预算
    # ... (完整实现较复杂,这里省略)
    return weights
python

3. 带约束的风险平价#

加入最大权重、最小权重、行业约束等。

实战建议#

  1. 资产选择:至少3-5种低相关资产
  2. 再平衡频率:月度或季度再平衡
  3. 杠杆管理:使用低成本杠杆工具(期货、互换)
  4. 成本控制:考虑交易成本和税务影响

投资组合比较

总结#

风险平价通过平衡风险贡献,提供了比传统组合更稳健的投资方案。虽然存在局限性,但通过改进版本和多策略融合,可以构建适应不同市场环境的投资组合。

参考文献#

  1. Qian, E. (2005). “Risk Parity Portfolios: Efficient Portfolios Through True Diversification.” PanAgora Asset Management.
  2. Maillard, S., et al. (2010). “The Properties of Equally Weighted Risk Contribution Portfolios.” The Journal of Portfolio Management, 36(4), 60-70.
  3. Asness, C., et al. (2012). “Leverage Aversion and Risk Parity.” Financial Analysts Journal, 68(1), 47-59.
风险平价策略:平衡风险而非资本
https://blog.halo26812.eu.org/blog/2026-06-03-risk-parity-strategy
Author halo
Published at 2026年6月3日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨