halo 的技术博客

返回

桥水「全天候」让风险平价(Risk Parity)成了资管圈的显学:不让资金等权分配,而让每一类资产对组合风险的贡献相等。直觉很漂亮——股票波动大就少配,债券波动小就多配,谁也不该独自主导组合的命运。

但桥水的舞台是股票 + 债券 + 商品 + 黄金这种跨资产、低相关的组合。把这套搬到中国 A 股就有问题了:A 股几乎全是权益、彼此高相关、还普遍不能杠杆和做空。那么风险平价在 A 股到底还有没有用? 本文用 numpy + scipy 从零实现长仓等风险贡献(ERC)求解器,在 10 个 A 股行业(年化波动 22%–40%、板块高相关)的合成数据上做一次诚实的再检验。

风险贡献对比:等权下风险高度集中于半导体(13.3%)、新能源(13.3%)、军工(10.8%),ERC 强制把十类资产全部拉平到 10%

一、风险贡献:被忽略的那一半#

一个资产对组合总风险的「贡献」不是它的权重,而是:

RCi=wi(Σw)iwΣwRC_i = w_i \frac{(\Sigma w)_i}{w^{\top}\Sigma w}

分子 wi(Σw)iw_i(\Sigma w)_i 是资产 ii 的边际风险贡献乘以权重,分母 wΣww^{\top}\Sigma w 是组合总方差,归一化后 RCiRC_i 加总为 1。等权组合里,高波动且高相关的资产会吃掉远超其份额的风险——这正是风险平想要纠正的。

import numpy as np

def risk_contrib(w, Sigma):
    port_var = w @ Sigma @ w
    mrc = Sigma @ w                 # 边际风险贡献
    rc = w * mrc                    # 资产 i 的总风险贡献
    return rc / port_var, port_var  # 归一化风险贡献 + 组合方差

# 等权下 10 个 A 股行业的风险贡献(%):
# 银行 7.7 | 券商 10.0 | 地产 10.7 | 白酒 9.6 | 医药 8.2
# 半导体 12.3 | 新能源 13.3 | 军工 10.8 | 煤炭 8.5 | 化工 8.9
# → 风险悄悄集中在半导体/新能源,银行/煤炭被「低配风险」
python

风险平价的目标,就是让所有 RCi=1/NRC_i = 1/N(N 类资产时各占 10%)。

二、从零实现 ERC 长仓求解器#

无约束 ERC 没有漂亮闭式解(只有「等相关系数」特例才有 wi1/σiw_i \propto 1/\sigma_i)。实战里 A 股不能做空,所以要加 wi0w_i \ge 0 约束,用数值优化:

跑出来 rc_erc 每个都是 10.00%——求解器确实把风险贡献拉平了。

三、A 股合成数据:权重反而很「均衡」#

我们用一个带市场因子 + 行业因子的模型造了 10 个 A 股行业(银行/券商/地产/白酒/医药/半导体/新能源/军工/煤炭/化工),年化波动 22%–40%、板块内高相关。三种权重摆一起:

资产年化波动ERC 权重逆波动权重等权EW 风险贡献ERC 风险贡献
银行22%12.5%12.8%10%7.7%10.0%
券商30%9.8%9.9%10%10.0%10.0%
地产35%9.2%9.0%10%10.7%10.0%
白酒30%10.1%10.1%10%9.6%10.0%
医药28%11.7%11.4%10%8.2%10.0%
半导体38%8.0%8.0%10%12.3%10.0%
新能源40%7.4%7.5%10%13.3%10.0%
军工33%9.0%9.1%10%10.8%10.0%
煤炭28%11.4%11.2%10%8.5%10.0%
化工26%10.8%11.0%10%8.9%10.0%

权重对比:ERC(红)与逆波动(蓝)都只是温和低配高波动,远没有跨资产风险平价那种「重仓债券」的极端倾斜

第一个重要结论:在 A 股这种全权益、高相关的池子里,ERC 权重落在 7.4%–12.5% 的窄区间里,看起来几乎是「改良版等权」。原因有两点:

  1. 长仓约束:不能做空、不能杠杆,最低波动的资产最多也就给到 12.5%,没法像跨资产风险平价那样把低波动的债券配到 50%+。
  2. 高相关吞掉了分散空间:大家都在涨都在跌,靠「低相关」来分散风险的免费午餐基本不存在,优化器只能把权重维持在均衡附近。

真正的区别在于风险贡献那一列:等权把 13.3% 的风险压在新能源、12.3% 压在半导体,而 ERC 把它们全部压回 10%。风险平价在 A 股的价值,是「风险贡献的均衡」,不是「权重的极端倾斜」

四、样本外:它真的更赚吗?#

我们用同一因子模型独立抽样 60 个月、重复 300 条路径,给三类组合算样本外净值(含 A 股真实单边 10bp 交易成本、季度再平衡):

样本外 300 条路径的终值分布:逆波动(蓝)最靠前、等权(灰)次之、ERC(红)略靠后——高相关下 ERC 没有收益魔法

中位数终值:逆波动 1.62 > 等权 1.50 > ERC 1.47。年化波动三者分别 22.8% / 23.4% / 22.8%。

第二个重要结论(必须诚实说):在 A 股高相关环境下,风险平价并没有带来更高的样本外收益——ERC 甚至略低于等权。它的红利是:

  • 把风险贡献压平 → 单一高波动板块不会在暴跌时独挑组合回撤;
  • 波动略低于等权(22.8% vs 23.4%);
  • 比「逆波动」更稳健:逆波动把最多权重压进单一最低波动行业,对波动率估计误差更敏感、更脆。

换句话说,A 股风险平价卖的是「更稳的风险结构 + 更低尾部集中」,不是「更高收益」。想靠它跑赢等权,大概率会失望。

五、换手率:被忽视的实战成本#

风险平价要「维持等风险」,就得定期再平衡——资产涨了风险贡献就升,得卖一点。再平衡频率直接决定换手和成本:

再平衡频率与年化换手率:月度 0.49 倍、季度 0.28 倍、半年 0.20 倍、年度 0.14 倍;越频繁换手越高,但样本外收益差别极小

年化换手率(ERC 组合):月度 0.49 倍、季度 0.28 倍、半年 0.20 倍、年度 0.14 倍。有意思的是,样本外净收益在月度(9.5%)和年度(9.8%)之间几乎没差——更频繁地再平衡只是白白多交手续费

def simulate_turnover(w, reb_every, T=60, cost=0.001):
    total_turn = 0.0
    cur_w = w.copy()
    for t in range(T):
        # 组合随市场漂移,drift_w 是再平衡前的真实权重
        drift_w = cur_w * (1 + R[t]) / (1 + R[t] @ cur_w)
        if (t + 1) % reb_every == 0:
            total_turn += np.sum(np.abs(drift_w - w))   # 回到目标权重的单边换手
            cur_w = w.copy()
        else:
            cur_w = drift_w
    return total_turn
python

第三个结论:对 A 股风险平价来说,季度再平衡基本是甜点——换手适中(0.28 倍/年)、风险贡献不至于严重漂移、成本可控。月度再平衡是高认知税。

六、约束下的现实选择#

约束对 A 股风险平价的影响
不能杠杆退化成「温和均衡权重」,无法复制全天候的债券重仓
个股难做空只能长仓 ERC,无法用做空对冲高波动资产
两融成本高真正杠杆型风险平价的资金成本吃掉大部分超额
高板块相关分散靠「低相关」失效,收益提升有限

所以实务上 A 股风险平价更现实的落法是:

  1. 在板块/风格层面做,不是个股层面。10 只个股高相关,但「金融 / 消费 / 科技 / 周期」四个风格块的相关性更低,风险平价在块之间才有真正的分散空间。
  2. 用「逆波动」做无杠杆预算替代。长仓、不优化、直接 wi1/σiw_i \propto 1/\sigma_i,便宜稳健,本文里它样本外反而最好(1.62)。
  3. 季度再平衡 + 换手预算。设一道年化换手上限(比如 0.5 倍),超了就只调最偏离的几只。
  4. 波动率必须用收缩估计。A 股样本协方差噪声极大,直接 np.linalg.inv(Sigma) 会把错误放大进权重,务必先 Ledoit-Wolf 收缩。

七、一个有用的特例:等相关系数下 ERC 有闭式解#

完整 ERC 没有闭式解,但有一个漂亮特例值得记住:当所有资产两两相关系数都等于同一个 ρ 时,ERC 的解就是逆波动权重 wi1/σiw_i \propto 1/\sigma_i。直觉是:在「相关性处处相同」的对称结构里,要让每类资产风险贡献相等,只需让权重反比于自身波动——波动高一倍,权重就砍一半,风险贡献自然拉平。

# 等相关系数 ρ 下的 ERC 解析解(轻量替代完整优化)
def erc_equal_corr(vol):
    ivol = 1.0 / np.asarray(vol)
    return ivol / ivol.sum()
python

这就是为什么上一篇文章里提到的「逆波动权重」那么常用:它是 ERC 在对称相关假设下的解析近似,便宜、稳定、不需要解优化器。代价是它假设了相关性处处相等——真实市场里板块相关性并不对称,所以正式组合还是该用第四节的数值求解器;但作为快速原型或预算约束下的替代品,逆波动已经是 80% 的 ERC。

八、把风险平价放到「风格块」上才有意义#

本文在 10 只个股上做风险平价,结果权重很均衡、收益也未跑赢等权——这其实揭示了一个更深的实操结论:在个股层面做 A 股风险平价,价值有限,因为个股高相关、分散不掉。真正的分散空间在「风格块」之间:

  • 金融地产(银行/券商/地产):低估值、低波动、对利率敏感
  • 消费医药(白酒/医药):稳定现金流、防御属性
  • 科技制造(半导体/新能源/军工):高波动、高弹性、对产业周期敏感
  • 周期资源(煤炭/化工):与大宗、通胀高度联动

这四块的相关系数明显低于块内个股。把风险平价放到块级别(先定四块各 25% 风险预算,再在块内做等权或 ERC),才能拿到风险平价真正的「不把鸡蛋放一个篮子」红利。本文在个股层面的检验,恰恰证明了「层级化风险预算(hierarchical risk parity)」在 A 股比扁平 ERC 更值得做——这也是下一篇可以展开的方向。


一句话总结:风险平价的灵魂是「让每类资产对风险的贡献相等」,但在中国 A 股这个全权益、高相关的池子里,长仓 ERC 退化成 7.4%–12.5% 的温和均衡权重,真实红利是风险贡献被压平(全部 10%)、波动略低于等权、尾部更不集中,而不是更高收益——样本外它甚至略跑输等权。配合季度再平衡(年化换手 0.28 倍)、收缩波动率估计,以及把平价逻辑提升到「金融/消费/科技/周期」风格块层面,才是能在 A 股落地的版本。

风险平价在中国 A 股:换手与约束下的实战再检验
https://blog.halo26812.eu.org/blog/risk-parity-a-shares-practice
Author halo
Published at 2026年9月1日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨