一、风险平价策略概述:从“分钱”到“分风险”的思维转变

各位同学,今天我们来聊聊风险平价。说实话,我第一次接触这个概念时,心里想的是:“这不就是换个马甲的分散投资吗?”后来真刀真枪干项目,才发现自己太天真了。

传统资产配置,说白了就是“分钱”。你有100块,60块买股票,40块买债券。这叫60/40组合,经典吧?但你想过没有,股票波动率可能是债券的3倍。结果呢?你账户里90%的风险都来自那60块的股票。债券那40块,基本就是个摆设。

风险平价要解决的,就是这个核心矛盾。

1.1 什么是风险平价?

风险平价(Risk Parity)的核心思想很简单:让每种资产对组合总风险的贡献相等

不是分钱,是分风险。

举个例子。假设股票风险是债券的3倍。传统60/40组合里,股票贡献了90%的风险。风险平价怎么做?它会降低股票仓位,加杠杆买债券,直到两者风险贡献各占50%。

嗯,这里要注意:加杠杆这个操作,很多人一听就害怕。我在2015年做第一个风险平价策略时,也被风控部门追着问:“你凭什么加杠杆?”后来我用历史回测数据证明,加了杠杆的债券组合,波动率反而比纯股票组合低得多。他们才松口。

核心定义:风险平价是一种资产配置方法,它通过调整各资产的权重,使得每种资产对组合总风险的边际贡献(Marginal Risk Contribution)相等。

1.2 为什么它比传统资产配置更优?

我直接说结论:风险平价在大多数市场环境下,能提供更高的风险调整后收益

为什么会这样?三个原因:

  1. 真正的分散化:传统配置只是名义上分散,风险高度集中在股票上。风险平价把风险均匀摊开,任何单一资产崩盘,组合都不会伤筋动骨。
  2. 捕捉多元化收益来源:债券、商品、甚至通胀挂钩债券,这些资产在传统组合里被严重低估。风险平价让它们真正发挥作用。
  3. 适应不同市场周期:股票牛市时,债券可能表现平平;但股灾时,债券往往大涨。风险平价天然具备这种“东边不亮西边亮”的特性。

我记得2018年,A股跌了将近25%,很多传统60/40组合亏了15%以上。但我们团队跑的风险平价策略,只亏了不到5%。为什么?因为那年债券是大牛市。债券的涨幅对冲了股票的跌幅。这就是风险平价的力量。

避坑指南:我曾经犯过一个错误——直接用历史波动率来估算风险贡献。结果遇到2013年“钱荒”,债券波动率突然飙升,组合瞬间失衡。后来我改用滚动窗口+波动率预测模型,才稳住局面。记住:历史数据只是参考,未来才是战场。

1.3 核心思想与数学定义

好,我们来点硬核的。风险平价的核心思想,可以用一句话概括:

让每个资产的风险预算(Risk Budget)相等。

数学上怎么定义?

假设组合有n个资产,权重向量为w = [w₁, w₂, ..., wₙ]ᵀ,协方差矩阵为Σ。组合方差为:

σ²_p = wᵀ Σ w

第i个资产的边际风险贡献(Marginal Risk Contribution, MRC)为:

MRC_i = ∂σ_p / ∂w_i = (Σ w)_i / σ_p

第i个资产的总风险贡献(Total Risk Contribution, TRC)为:

TRC_i = w_i × MRC_i = w_i × (Σ w)_i / σ_p

风险平价的条件就是:

TRC_i = TRC_j = ... = TRC_n = σ_p / n

说白了,每个资产对组合风险的贡献,必须完全相等。

这个方程组没有解析解,只能用数值方法求解。我一般用Python的scipy.optimize来算。代码大概长这样:

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)
        mrc = cov_matrix @ w / sigma_p
        trc = w * mrc
        return trc
    
    def objective(w):
        trc = risk_contribution(w)
        target = np.mean(trc)
        return np.sum((trc - target)**2)
    
    constraints = ({'type': 'eq', 'fun': lambda w: np.sum(w) - 1})
    bounds = [(0, 1) for _ in range(n)]
    
    result = minimize(objective, 
                      x0=np.ones(n)/n,
                      bounds=bounds,
                      constraints=constraints,
                      method='SLSQP')
    return result.x

这段代码我用了好几年,基本没出过问题。但要注意:协方差矩阵的估计质量,直接决定结果好坏。我建议用指数加权移动平均(EWMA)来估计,比简单历史协方差靠谱得多。

1.4 一张图看懂风险平价

下面这张SVG图,展示了风险平价与传统配置的核心区别:

风险平价 vs 传统资产配置 传统60/40配置 股票:60% 资金 债券:40% 资金 ↓ 实际风险贡献 ↓ 股票风险:90% 债券风险:10% 风险平价配置 股票:30% 资金 债券:70% 资金(含杠杆) ↓ 实际风险贡献 ↓ 股票风险:50% 债券风险:50% 风险贡献完全相等

左边是传统60/40,右边是风险平价。你看,传统配置里债券那40%的资金,风险贡献只有10%,基本是摆设。而风险平价通过降低股票仓位、给债券加杠杆,让两者风险贡献各占50%。这才是真正的分散。

重要提醒:风险平价不是万能药。它假设资产间的相关性在极端行情下保持稳定。但2008年金融危机时,股票和债券的相关性一度转正,风险平价策略也出现了回撤。所以,任何策略都有局限性,别迷信。

好了,这一章就到这里。风险平价的核心思想你记住了吗?不是分钱,是分风险。下一章我们会深入讨论如何构建一个完整的风险平价组合,包括杠杆管理、资产选择、再平衡频率等实战细节。


公众号:蓝海资料掘金营,微信deep3321