3. 风险平价模型核心原理:等风险贡献原则、风险预算、组合构建逻辑

好,咱们今天来聊聊风险平价模型的核心原理。说实话,这个模型在量化圈子里火了这么多年,不是没有道理的。我最早接触它是在2015年,当时帮一家资管机构做资产配置方案,传统的60/40组合在极端行情下回撤太大,客户不满意。后来我引入了风险平价,效果确实不一样。

说白了,风险平价的核心思想就一句话:让组合里每个资产对总风险的贡献度相等。你想想看,传统组合里股票占了90%以上的风险,债券虽然配了40%的仓位,但风险贡献微乎其微。这合理吗?当然不合理。风险平价就是要打破这种不平衡。

3.1 等风险贡献原则

等风险贡献,英文叫Equal Risk Contribution,简称ERC。它的数学定义其实很直观:

假设组合有n个资产,每个资产的权重为w_i,组合的波动率为σ_p。那么第i个资产对组合的风险贡献可以写成:

RC_i = w_i × (∂σ_p / ∂w_i) = w_i × (Σw_j σ_ij) / σ_p

等风险贡献要求:

RC_1 = RC_2 = ... = RC_n

嗯,这里要注意。这个等式不是天然成立的,需要迭代求解。我习惯用牛顿法或者SQP算法来解这个优化问题。代码实现大概是这样的:

import numpy as np
from scipy.optimize import minimize

def risk_parity_weights(cov_matrix):
    n = cov_matrix.shape[0]
    
    def risk_contribution(w):
        sigma_p = np.sqrt(w @ cov_matrix @ w)
        return w * (cov_matrix @ w) / sigma_p
    
    def objective(w):
        rc = risk_contribution(w)
        target = np.mean(rc)
        return np.sum((rc - target) ** 2)
    
    constraints = ({'type': 'eq', 'fun': lambda w: np.sum(w) - 1})
    bounds = [(0, 1)] * n
    w0 = np.ones(n) / n
    
    result = minimize(objective, w0, bounds=bounds, 
                      constraints=constraints, method='SLSQP')
    return result.x

我在项目中遇到过一个问题:直接用这个算法算出来的权重,有时候会集中在少数几个资产上。为什么?因为协方差矩阵的条件数太大,数值不稳定。我的解决办法是加入一个正则化项,或者先对协方差矩阵做缩尾处理。

3.2 风险预算

等风险贡献是风险预算的一个特例。风险预算允许你给不同资产设定不同的风险权重。比如你觉得股票应该承担40%的风险,债券承担30%,商品承担30%,那就可以直接设定目标风险贡献向量。

数学上,风险预算模型可以写成:

RC_i = b_i × σ_p

其中b_i是预设的风险预算,满足Σb_i = 1。当b_i = 1/n时,就退化为等风险贡献。

我个人习惯把风险预算分成两类:

  • 静态风险预算:固定不变,适合长期配置
  • 动态风险预算:根据市场环境调整,适合战术配置

我曾经帮一个客户做动态风险预算,用滚动窗口估计协方差矩阵,每季度调整一次。结果遇到一个问题:调仓太频繁,交易成本吃掉了一部分收益。后来我改成用阈值触发,只有当风险贡献偏离目标超过20%时才调仓,效果好了很多。

小技巧:风险预算的设定可以参考资产的长期波动率。比如股票的长期波动率是15%,债券是5%,那么股票的风险预算可以设为债券的3倍。这样算出来的权重会更稳定。

3.3 组合构建逻辑

组合构建的逻辑,说白了就是三步走:

  1. 估计风险参数:主要是协方差矩阵。我建议用指数加权移动平均(EWMA)或者GARCH模型,比简单历史波动率更灵敏。
  2. 求解权重:用上面提到的优化算法,解出满足风险预算条件的权重向量。
  3. 执行与再平衡:按照权重买入,定期调整。

这里有个坑,我踩过好几次。协方差矩阵的估计误差会直接传导到权重上。你想想看,如果协方差矩阵不准,算出来的风险贡献就是错的,那整个组合就偏离了目标。我的经验是:用收缩估计(Shrinkage)方法,把样本协方差矩阵向一个结构化矩阵收缩,能显著提高稳定性。

下面这张图展示了风险平价组合的构建流程:

风险平价组合构建流程图 资产历史收益率数据 协方差矩阵估计 设定风险预算 b_i 优化求解权重 w_i 风险平价组合权重 关键要点 • 协方差矩阵建议用 EWMA或收缩估计 • 风险预算可静态或动态 • 优化算法推荐SQP • 再平衡用阈值触发 • 注意数值稳定性 • 交易成本不可忽视 • 定期回测验证

核心要点总结

  • 等风险贡献是风险预算的特例,b_i = 1/n
  • 风险预算允许你自定义风险分配比例
  • 组合构建的关键是协方差矩阵的准确估计
  • 再平衡策略直接影响实际收益
注意:风险平价模型假设资产收益率服从正态分布,但现实中存在肥尾和偏斜。我建议在极端行情下对模型做压力测试,看看组合在尾部风险下的表现。另外,杠杆的使用要谨慎,风险平价组合天然带有杠杆,别加过头了。

最后说一句,风险平价不是万能的。它适合长期配置,但在趋势行情中可能跑不过简单的60/40组合。不过话说回来,做投资最重要的是活得久,而不是赚得快。风险平价帮你控制住了下行风险,这才是它的价值所在。