halo 的技术博客

返回

经典 60/40 组合的尴尬在于:股票资产波动率远高于债券,90% 以上的组合风险其实来自那 40% 的股票。所谓「配置」,钱是分了,风险没分。风险平价(Risk Parity)要解决的就是这件事——不让钱平分,而让风险平分

把风险平价用到债券上,是一个被低估的好问题。债券宇宙内部的风险分布同样极其不均:一只 30 年期国债的久期是 2 年期国债的近 10 倍,波动也差出近一个数量级;高收益债的利差波动又远超投资级。结论先放这:等权买债,等于把大部分风险预算偷偷押给了长债和高收益;用久期(利率风险)和信用分层(利差风险)重构风险预算后,组合年化波动从 15.6% 降到 9.9%,最大回撤从 −48% 收敛到 −29%,且每只债券的风险贡献被拉平成 1/8。

为什么专门谈债券?因为债券内部的风险结构比股票更规整、也更容易被因子化:利率与信用两条主因子几乎能解释债券收益的绝大部分截面差异,而久期、利差久期是现成、可观测的「风险载荷」。相比之下股票因子(价值/成长/质量/动量)不仅难以直接观测、还彼此纠缠。这让债券成为实践风险平价最干净、最容易落地验证的试验田——你不必先训一个多因子模型,只要把久期和信用分层摆正,风险预算就会自动归位。

一、债券的风险从哪来:双因子拆解#

一只债券持有一个月的收益,风险主要来自两条因子:

  • 利率因子:久期 DD 衡量价格对利率的敏感度,利率波动 σR\sigma_R 是共同冲击;
  • 信用因子:利差久期 SDSD(信用敏感度)衡量对信用利差变化的敏感度,利差波动 σC\sigma_C 是共同冲击。

把两因子假设独立,任意两只债券 i,ji,j 的协方差为

Σij=DiDjσR2+SDiSDjσC2\Sigma_{ij} = D_i D_j\,\sigma_R^2 + SD_i\,SD_j\,\sigma_C^2

单资产月波动就是 σi=(DiσR)2+(SDiσC)2\sigma_i = \sqrt{(D_i\sigma_R)^2 + (SD_i\sigma_C)^2}。国债的 SD=0SD=0(纯利率风险),信用债的 SDSD 接近其久期(利差也久期化)。

我取一个 8 只债券的小宇宙:UST 2Y / 5Y / 10Y / 30Y 四档国债 + IG 投资级 / HY 高收益 / EM 主权债 / MBS 抵押债,参数按真实量级校准(σR=0.6%\sigma_R=0.6\%/月,σC=1.0%\sigma_C=1.0\%/月)。算出来的单资产月波动如下:

债券久期 D利差久期 SD月波动
UST 2Y1.90.01.14%
UST 5Y4.60.02.76%
UST 10Y8.80.05.28%
UST 30Y17.50.010.50%
IG 投资级7.06.57.74%
HY 高收益4.03.84.49%
EM 主权债6.56.07.16%
MBS 抵押债3.00.51.87%

单资产风险高度不均:UST 30Y(10.5%) 是 UST 2Y(1.1%) 的近 10 倍

UST 30Y 的月波动是 UST 2Y 的 9.2 倍——如果等权持有,长债会悄悄吃掉组合大部分风险。

二、等权 vs 风险平价:风险贡献的 redistibution#

组合里第 ii 个资产的风险贡献(Risk Contribution)定义为

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

它衡量「这只资产对组合总方差的贡献占比」,全部 RCiRC_i 加起来等于 1。风险平价的目标就是让 RCi=1/nRC_i = 1/n 对所有资产相等——不是钱平分,是方差贡献平分

我用一个不动点迭代求解等风险贡献权重(见第五节代码),并和等权、逆波动做对比:

组合月波动年化波动
等权4.52%15.64%
逆波动(1/σ)2.80%9.70%
风险平价2.86%9.90%

等权的风险贡献严重失衡:UST 30Y 独占 25.7%,IG 18.7%,EM 17.3%,三只加起来超过 60%,而 UST 2Y 只贡献 2.8%。风险平价把这八只全部拉平成 12.5%(=1/8)。

等权把风险堆在长债与高收益;风险平价拉平成 1/8

注意一个细节:本例里逆波动(1/σ 加权)和风险平价几乎重合(年化 9.70% vs 9.90%)。原因是我们假设利率、信用两因子相互独立,此时逆波动已非常接近真正的风险平价;一旦两因子相关(如危机中利率与信用联动),逆波动会系统性偏离,必须用完整协方差做真风险平价——这是下一节现实陷阱的伏笔。

三、久期分层:风险预算相等 → 权重反比于久期#

风险平价的精髓可以在国债阶梯内部单独玩一遍。只取 UST 2Y/5Y/10Y/30Y 四档,做等风险贡献,得到的权重是:

债券久期风险平价权重
UST 2Y1.957.6%
UST 5Y4.623.8%
UST 10Y8.812.4%
UST 30Y17.56.2%

久期分层:风险预算相等 → 权重与久期近似成反比

规律非常干净:权重近似与久期成反比(拟合 1/waD1/w \approx a\cdot D 极好)。想让 2 年期和 30 年期对组合贡献同等风险,就得给 2 年期近 10 倍的仓位——因为 30 年期的波动是 2 年期的近 10 倍。这就是「风险预算」而非「资金预算」的直接体现。

把信用债也按同一逻辑分层(IG / HY / EM / MBS 各自分到相等的风险预算),就得到完整的债券风险平价:利率风险与信用风险被分别切块,再在块内按久期/利差久期二次分配。整条链路的钥匙只有一把——让每个风险源贡献相等的方差

四、30 年模拟:更平的曲线、更浅的回撤#

用上面两因子模型生成 360 个月(30 年)收益路径,比较等权与风险平价的累计净值:

  • 等权:终值 1.16×,最大回撤 −48.4%,年化 Sharpe 0.11;
  • 风险平价:终值 1.47×,最大回撤 −28.7%,年化 Sharpe 0.18。

30 年模拟:风险平价下行更平滑、回撤更浅

风险平价在波动和回撤上全面占优,且净值终值更高——因为它不再把组合命运绑在长债和高收益的单边暴露上。需要说明:债券风险平价组合年化波动(9.9%)显著低于股票型风险平价,通常不需要像股债风险平价那样大幅加杠杆去够目标波动;但若你想把它和股票组合拼接成全资产配置,这一层债券内部的风险平价,正是上层风险预算的可靠底座。也正因债券因子更易观测,它常被用作多资产风险平价的「压舱石」——先让债券这一块内部风险归位,再和股票、商品层做跨资产的风险平价,比直接对一篮子异质资产做风险平价更稳。

五、复现:风险平价求解与模拟#

核心求解器(等风险贡献不动点迭代)和 30 年模拟,numpy 即可跑:

跑出来等权风险贡献集中在长债(约 25.7%)与信用债,风险平价八只齐刷刷 12.5%,组合月波动 4.52% → 2.86%——和正文数字一致。

六、债券风险平价的真实陷阱#

模型漂亮,落地要小心至少五个坑:

  1. 久期只是一阶近似:它假设收益率曲线平行移动。现实中曲线会扭动(牛陡/熊平),凸性(convexity)在长端显著,单用久期会低估长债的真实风险,风险预算因此偏移。
  2. 危机中相关性反转:平时利率与信用弱相关,风险平价稳;但避险时「国债涨、信用利差爆」,两因子瞬间强负相关,分散效应消失,等风险贡献的前提被打破,组合回撤会比模型预言的深。
  3. σ_C 估计极不稳定:信用利差波动在平静期与危机期能差 5 倍以上,用长期平均 σ 做预算,会在危机前严重低估 HY/EM 的风险贡献。
  4. 杠杆隐形成本:若想用债券风险平价去匹配股票组合的目标波动,往往需要加杠杆,而杠杆有融资成本和Margin Call风险,模型里没有。
  5. 再平衡摩擦:风险平价要持续再平衡以维持等风险贡献,债券换手虽低,但调久期涉及交易成本与税收,长期会侵蚀优势。

结语#

风险平价进债券,本质是把「按钱分配」换成「按风险分配」:用久期切利率风险、用信用分层切利差风险,让每一档久期、每一层信用都贡献相等的方差。等权看似公平,实则把赌注压在长债和高收益上;风险平价把组合波动从 15.6% 砍到 9.9%、回撤从 −48% 收敛到 −29%,代价是要正视曲线非平行移动、危机相关性反转和 σ_C 估计失真这三道真实裂缝。理解了债券内部的风险预算,你才真正握住了多资产配置那块最稳的底座。

注:本文为教学用极简双因子模型,参数为演示校准,所有数字由脚本真实计算,不代表任何真实债券指数或某只标的的历史表现。实盘需以真实收益率曲线、信用利差与交易日历数据替换,并计入交易成本与税务;本文不构成任何投资建议。

风险平价在债券组合中的应用:用久期与信用分层重构风险预算
https://blog.halo26812.eu.org/blog/risk-parity-fixed-income
Author halo
Published at 2026年7月12日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨