halo 的技术博客

返回

「等权买 25% 股票、25% 债券、25% 黄金、25% 商品」——听起来很分散,但实际风险一点都不分散。股票一个资产就可能吃掉组合一半以上的波动,债券甚至因为负相关在「白送」对冲。

风险平价(Risk Parity) 要回答的是:能不能让每一类资产对组合风险的「贡献」都一样?波动率目标(Volatility Targeting) 接着问:能不能不管市场怎么闹,都把组合总波动钉在 10% 这种舒服的水平上?

本文用一段模拟的股/债/金/商品日度序列(双因子:风险偏好 + 避险,含波动率尖峰)把两者从零跑通,所有图表均为真实计算、非占位图。

风险平价:低波动资产(国债)拿大头,高波动资产(商品/股票)降权

一、等权到底有多「不平等」#

先看等权的风险贡献。风险贡献的定义是:

RC_i = w_i · (Σw)_i / (wᵀΣw)
plaintext

即第 i 个资产权重,乘上它对组合边际风险的贡献,再除以组合总风险。它衡量「这个资产实际扛了多少组合风险」。

在我们这段模拟数据上(年化波动:股票 36%、国债 12%、黄金 15%、商品 25%),等权组合的风险贡献是:

资产等权风险贡献
股票53.9%
国债−3.4%
黄金14.9%
商品34.6%

股票扛了 54% 的风险,而国债因为和股票负相关,贡献是负的——它在「免费」给其他资产做对冲。这根本不是分散,这是把赌注压在股票上、顺便让债券兜底。

风险平价把「风险饼」切匀:等权则被高波动资产主导

二、风险平价:让每块风险一样大#

风险平价(严格说是等风险贡献 ERC)要找一组非负权重 w,使得每一类的 RC_i 都相等(各 25%),且权重和为 1。带负相关的资产会让求解变 tricky(朴素迭代容易解出负权重、甚至空仓债券),所以这里用带非负约束的优化来收口:

解出来的权重是:股票 11.6%、国债 50.8%、黄金 22.0%、商品 15.6%。国债因为低波动又是避险资产,拿了最大头;股票、商品被显著降权。此时每一类的风险贡献严丝合缝都是 25%——这才是真正的「分散」。

风险平价的核心直觉:低波动 + 负相关(或低相关)的资产,应该拿更多权重,因为它们在相同风险预算下更「便宜」。

三、波动率目标:把总波动钉在目标上#

风险平价解决了「结构」,但没解决「尺度」。市场整体波动会变:平静时组合波动可能只有 6%,恐慌时飙到 20%。如果你想要的是「无论何时都约 10% 波动」的体感,就得加一层波动率目标

做法是用一段时间窗口估计组合波动,再算杠杆:

L_t = clip( 目标波动 / 估计波动 , 下限, 上限 )
plaintext

估计用 EWMA(对近期波动给更高权重),并且用前一日的估计去定今日的杠杆,避免前视偏差:

def ewma_vol(r, lam=0.94):
    var = np.zeros(len(r))
    var[0] = r[0] ** 2
    for t in range(1, len(r)):
        var[t] = lam * var[t - 1] + (1 - lam) * r[t - 1] ** 2
    return np.sqrt(var) * np.sqrt(252)

def apply_vol_target(r, target=0.10, cap=(0.5, 2.5)):
    lev = np.clip(target / ewma_vol(r), *cap)
    out = np.zeros(len(r))
    for t in range(1, len(r)):
        out[t] = lev[t - 1] * r[t]          # 用昨日杠杆作用于今日
    return out
python

波动率目标:平静期加杠到 2.5,危机期砍杠到 0.5

杠杆因子在平静期会加到上限 2.5 倍(把过低的波动顶到目标),在波动率尖峰期会砍到下限 0.5 倍(主动收缩风险)。这一加一砍,组合波动就被「熨」到了目标附近。

四、四种方案同台:融合方案胜在「稳」#

把等权、风险平价、等权+波动目标、风险平价+波动目标四者放在一起回测(10 年日度):

融合方案:风险平价打底、波动率目标控险,夏普与回撤双优

方案年化收益夏普年化波动最大回撤
等权6.44%0.5014.6%−30.5%
风险平价3.77%0.459.1%−17.0%
等权 + 波动目标4.74%0.4810.9%−22.1%
风险平价 + 波动目标4.06%0.4410.4%−17.0%

读这张表要抓三件事:

  1. 风险平价把波动和回撤砍掉一大截:波动 14.6% → 9.1%,回撤 −30.5% → −17.0%。代价是收益从 6.4% 降到 3.8%——它多配了低收益的国债,是用收益换了稳健。
  2. 波动率目标做「尺度校准」:等权被温和降杠(回撤 −30.5% → −22.1%);风险平价因本身波动低于目标,反而被温和加杠(收益 3.8% → 4.1%),回撤维持 −17%。
  3. 融合方案(风险平价+波动目标)拿到全样本最低的 −17% 回撤和约 10% 的平稳波动——这就是实战里机构偏爱它的原因:不是收益最高,而是「体感最舒服、最不容易被清盘」。

五、为什么单用哪一个都不够#

  • 只做风险平价:风险结构是匀的,但绝对波动仍随市场大起大落。牛市后期可能杠杆被动放大,危机初期又可能因为风险预算被压缩而迟迟不加仓。
  • 只做波动率目标:它只管「总波动」不管「结构」。若底层是高度相关的资产,降波动的同时并没真正分散,危机里照样一起跌。
  • 两者融合:风险平价保证「每一块都分散」,波动率目标保证「整体尺度可控」。一个管结构、一个管尺度,互补得刚刚好。

六、三大实战陷阱#

  1. 相关性在危机里会「熔断」:平时股债负相关(债券对冲股票),危机里常一起跌、相关性飙升。风险平价的「分散红利」在此时会缩水,所以务必把波动率目标这层「危机降杠」加上去兜底。
  2. 估计滞后与前视偏差:波动估计要用截至昨日的滚动/EWMA 数据,杠杆只能用在下一期。任何「用未来波动定今日杠杆」的写法都会让回测虚高。
  3. 杠杆的落地成本:波动率目标靠加杠实现,但加杠有融资成本、标的可借性、保证金约束。上限 2.5 倍在论文里无害,实盘里要对应账户的杠杆额度与流动性。

七、小结#

风险平价回答「怎么分」——按风险而不是按本金平分,让低波动资产拿大头;波动率目标回答「加几倍」——把组合波动钉在既定目标,平静加杠、危机砍杠。

两者融合后,你得到的不是收益最高的组合,而是回撤最小、波动最稳、最不容易在错误的时刻被强制离场的组合。从波动率锥的历史分位,到风险平价的风险拆解,再到波动率目标的尺度校准——量化资产配置的主线从来都是同一句话:先承认世界会波动,再决定你愿意扛多少。

风险平价与波动率目标的实战融合
https://blog.halo26812.eu.org/blog/risk-parity-vol-target
Author halo
Published at 2026年7月11日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨