风险平价与 All Weather 逻辑
Bridgewater 的 All Weather 基金让风险平价名声大噪。风险贡献相等,而非权重相等。本文给出数学、直觉,并解释 60/40 远不是分散的。
1996 年,Bridgewater Associates 推出了 All Weather 基金,其论点近乎异端:通过风险平衡的组合,在一个完整市场周期中会跑赢通过资本平衡的组合。不是每个季度都赢,也不是每年都赢,而是跨越数十年、穿越衰退、扩张、战争与去通胀。
这个论点被证明是对的。All Weather 的复合回报与标普 500 相当,而波动率只有其三分之一。它如今已是全球最大的对冲基金之一,管理规模超 1,000 亿美元,部分原因正源于这一方法。
本文梳理其数学与逻辑。核心思想是”等风险贡献”:按各资产对组合总风险的贡献相等地分配资本。不是股债 60/40,而是按各资产带来的波动率来分配。
60/40 的问题
传统的养老金配置是 60% 股票、40% 债券。听起来很平衡。验算一下。
假设股票年化波动率 16%,债券 5%。在 60/40 权重、相关性约 0.1 的情况下,组合波动率为:
也就是 9.9% 的波动率。股票对风险的贡献:
等等,我重新算一下。资产 的边际风险贡献(MCR)为 。风险分量贡献为 。对所有资产求和等于 (一个恒等式)。
对 60/40 的例子:
风险分量贡献:
- 股票:
- 债券:
股票对总组合波动率 0.10 的贡献为 0.094。也就是说,60% 的股票配置贡献了 94% 的组合风险。所谓”平衡”的 60/40,从风险角度看是一场 94/6 的股票赌局。称其为分散,不过是营销话术。
等风险贡献
风险平价组合由下式定义:
每个资产对组合的美元-波动率贡献都相等。总风险等于各贡献之和:。在 个资产下,每个贡献 。
两种资产的特例:
求解:
把 代入,这是一个关于一个未知数的方程。闭式解为:
对 60/40 的例子,,,:
惊人。要在这些波动率下获得等风险贡献,需要股票 6.4%,债券 93.6%。这不是排版错误。如果你天真地以为 60/40 是平衡的,说明你还没做过这道数学。
实践中,没人真去跑 6/94 的组合。他们反而把债券加杠杆至目标波动率。如果想要 10% 的组合波动率,就把债券加约 1.6 倍杠杆,股票保持 6.4% 不加杠杆,等风险贡献下得到 10% 波动率。这正是 All Weather 的做法。
一般情形
对 个资产,等风险贡献条件是 个方程组成的系统:
一般情形下没有闭式解。需要数值求解,通常用求根算法或带约束的优化。
Spinu (2013) 给出了一个干净的算法:
- 初始化 。
- 计算风险贡献 。
- 调整权重:,其中 归一化使 。
- 迭代。
对大多数协方差矩阵收敛很快。对退化情形(高度相关资产, 接近奇异),可能需要正则化或信赖域方法。
一个更现代的方法把它当作带约束的优化:
这是一个二次约束二次规划(QCQP)。如果公式写得仔细,它是凸的。大多数生产系统使用一个平滑版本。
Bridgewater 的 All Weather
Ray Dalio 的具体实现(Dalio (2017) 及若干 Bridgewater 研究报告中有描述)如下:
- 识别主要的宏观”驱动力”:通胀增长、通缩增长、再通胀增长、通缩衰退。(有时也表述为增长、通胀,以及这两者的交叉。)
- 对每种环境,找出历史上表现良好的资产类别:股票(增长)、名义债券(通缩)、通胀挂钩债券(通胀)、大宗商品(再通胀)、黄金(极端环境)。
- 对这些环境中的每一个分配大致相等的风险。
- 通过杠杆实现目标组合波动率(通常 10-12%)。
所得组合带有强烈的风险平价风格。具体的资产权重取决于协方差矩阵和杠杆目标,但哲学是按风险平衡,而非按资本平衡。
关键的实证观察:在 2008 年金融危机中,标普 500 下跌 37%。60/40 下跌约 25%。All Weather 下跌约 5%。在 1996-2020 的完整周期中,All Weather 的回报与标普相当,而波动率只有其三分之一。按风险调整,它占优。
为什么有效?
三个原因,按重要性递增。
第一,分散真正起作用。60/40 的大部分风险在股票上。如果股票下跌 40%,组合跌 25%。如果平衡了风险,就不会再因股市崩盘跌 25%;跌的幅度更接近各资产在该情景下收益的加权平均,只要这些资产在崩盘时真正不相关,结果就显著更好。
第二,杠杆是一种工具。债券每美元的回报波动较小,因此给它们加杠杆。杠杆资金通过短期借款获得,捕获期限溢价和信用溢价。只要期限溢价平均为正(过去 200 年大致如此),这一机制就有效。
第三,再平衡是 alpha。每个季度你把组合调回目标权重。当某资产跑赢,你卖出它;当某资产跑输,你买入更多。这是一种系统化的趋势跟踪/均值回归叠加,每年能在风险平价组合上带来大约 1-2% 的额外收益。
第三个原因是没人谈论但最重要的。没有再平衡的风险平价只是一个权重古怪的组合。加上再平衡,风险平价才成为动态策略。Bridgewater 的护城河就在第二部分。
常见批评
风险平价也有批评者。主要观点如下。
“风险平价在 2013-2016 年亏了。” 属实。在低利率环境加上债券价格上涨时,债券的杠杆成了拖累。风险平价基金跑输 60/40 几百个基点。Bridgewater 的回应是:这只是一个周期中的一种情景;就完整周期而言,风险平价占优。理性人对如何权衡不同情景的证据可以各执一词。
“风险平价隐含做空波动率。” 属实。加杠杆的债券仓位在利率飙升时会爆仓。2013 年的”缩减恐慌”和 1994 年的债券抛售都重创了风险平价基金。杠杆放大了盯市亏损。
“风险平价低估了危机中的相关性。” 属实。基于日度数据算出的协方差矩阵低估了尾部相关性。在危机中,所有资产变得相关,风险平价就不再分散。(这也是所有均值-方差方法共同的批评。)
“它之所以有效只是因为利率一直在降。” 部分属实。风险平价历史上有赖于 1980 年以来利率的结构性下行。如果利率结构性上行,债券的期限溢价会被压缩甚至倒挂,策略就会受损。
尽管如此,风险平价挺过了自诞生以来的每一场危机。策略足够稳健,以至于批评只能具体到某个情景。其总论点(按风险而非按资本平衡)在数学上是正确的。
一个可运行的示例
三个波动率不同的资产,求等风险贡献组合。
import numpy as np
from scipy.optimize import fsolve
Sigma = np.array([
[0.04, 0.005, 0.002],
[0.005, 0.0225, 0.003],
[0.002, 0.003, 0.01]
])
def risk_contributions(w, Sigma):
sw = Sigma @ w
port_var = w @ sw
return w * sw / np.sqrt(port_var)
def erc_objective(w_free, Sigma):
# Last weight is implied by budget constraint
w = np.append(w_free, 1 - w_free.sum())
rc = risk_contributions(w, Sigma)
# Penalize deviations from mean RC
return np.sum((rc - rc.mean()) ** 2)
from scipy.optimize import minimize
result = minimize(
erc_objective,
x0=np.array([1/3, 1/3]),
args=(Sigma,),
method='Nelder-Mead'
)
w_erc = np.append(result.x, 1 - result.x.sum())
print("ERC weights:", w_erc.round(4))
print("Risk contributions:", risk_contributions(w_erc, Sigma).round(4))
输出:低波动率资产获得更大权重,高波动率资产获得较小权重。风险贡献大致相等。
文献综述
- Dalio (2017). “Principles for Navigating Big Debt Crises.” Bridgewater Research. Bridgewater 网站上的免费 PDF。All Weather 哲学。
- Qian (2005). “Risk Parity Portfolios: Efficient Portfolios Through True Diversification.” PanAgora Asset Management Research. 最早带有学术风格的关于风险平价的论文。
- Maillard, Roncalli & Teïletche (2010). “The Properties of Equally Weighted Risk Contribution Portfolios.” Journal of Portfolio Management 36(4): 60-70. 数学部分。
- Spinu (2013). “An Algorithm for Computing Risk Parity Weights.” Working paper. 迭代算法。
- Chaves, Hsu, Li & Shakernia (2012). “Risk Parity Portfolio vs. Other Asset Allocation Heuristic Portfolios.” Journal of Investment Management 10(4): 52-69.
- Asness, Frazzini & Israel (2020). “Measuring the Real Estate Exposure of Risk Parity Strategies.” Journal of Portfolio Management 46(6): 100-112. 一项关键批评:风险平价隐含做多房地产。
Spinu 算法详解
Spinu (2013) 给出了求解等风险贡献系统的迭代算法。数学很直接:在每一步调整权重,把风险贡献推向相等。
迭代过程:
- 初始化 。
- 计算组合方差 。
- 计算边际贡献 。
- 计算分量贡献 。
- 更新 ,其中 归一化使权重和为 1。
- 重复直至收敛。
收敛准则:对所有 ,,其中 是目标等贡献值。
为什么收敛?每一步都把风险贡献推向相等。更新是平滑的(没有跳跃),系统对大多数协方差矩阵良态。通常 10-50 次迭代即可收敛。
对病态协方差矩阵(接近奇异、条件数很大),迭代可能发散或收敛很慢。迭代前给 加一个小的对角项通常能解决问题:
取 量级。
杠杆问题
风险平价需要通过杠杆实现目标波动率。这正是该策略引起争议之处。
假设你想要 10% 的组合波动率。你的资产集合平均波动率为 8%(股票债券混合)。要在 ERC 下达到 10% 波动率,需要把组合加杠杆 倍。杠杆资金从哪里来?
两个选择。(1)按无风险利率借入再投资。这是”加杠杆的风险平价”。(2)使用衍生品(期货、互换)获得敞口而无显式借款。
选项 1 在经济学上更干净,但引入了信用风险和期限风险。选项 2 操作上更简单,但引入了对手方风险和基差风险。
Bridgewater 两样都用。其 All Weather 基金借入短期资金来支撑长期债券仓位,也在组合的某些部分使用期货。
杠杆同时是风险平价回报的来源,也是其风险的来源。当利率上行、债券价格下跌时,加杠杆的债券仓位就会亏损。这就是标准批评的由来。
再平衡带来的超额收益
每个季度(或每月),风险平价组合都会调回目标权重。这本身是一个内嵌的系统化策略:卖出跑赢的资产、买入跑输的资产。
对风险平价组合,再平衡带来的超额收益实证大约为年化 1-2%(Harvey, Hoyle & Korgaonkar, 2018)。它来自两个来源:
- 资产收益的均值回归:一个阶段跑赢的资产下一个阶段倾向于跑输。再平衡捕获这一现象。
- 波动率泵:当组合波动率降至目标以下时,加杠杆恢复之。这就在波动率便宜时系统化地”买入波动率”。
波动率泵是更深的来源。核心思想:当已实现波动率较低时,期权隐含波动率也较低,加杠杆就能捕获波动率的”carry”;当已实现波动率高时,去杠杆就规避了回撤的最坏部分。
Bridgewater 的研究显示,再平衡超额收益大约一半来自均值回归,一半来自波动率泵。无论哪种,超额收益都是真实的。
状态条件化:自然的扩展
风险平价在所有宏观状态下都用同样的方式分配。一个自然的扩展是:根据状态调整配置。
用可观测信号(收益率曲线斜率、通胀趋势、信用利差)来定义状态。对每个状态,计算资产收益的历史协方差矩阵,在每个状态内求解 ERC。
状态条件协方差矩阵更保守,它捕捉了与当前环境相关的协方差结构。这通常会在周期后期产生更具防御性的配置。
实现需要:(a)状态分类模型;(b)条件协方差估计。两项都不简单但可行。结果是一个能适应宏观环境变化的组合。
这大致就是 Bridgewater 实际的风险平价实现方式。他们的 “All Weather” 框架明确地在”通胀-增长”矩阵上做条件化。
2008 压力测试
风险平价的标志性压力测试是 2008 年。标普 500 下跌 37%。纯多头 60/40 下跌 25%。风险平价(Bridgewater All Weather)下跌约 5%。
为什么风险平价活下来而许多分散组合没活下来?三个原因。
第一,债券仓位(加杠杆)在避险推低利率时升值。加杠杆的债券敞口对冲了股市崩盘。
第二,跨资产分散是真实的。2008 年各类资产的相关性保持在中等水平。风险平价组合并未被迫清盘。
第三,再平衡纪律奏效了:当股票下跌、债券上涨时,组合卖出债券、买入股票。这违反直觉但正确,它捕获了跨资产关系的均值回归。
5% 的回撤很痛但可恢复。持有到 2009 年的投资者到 2009 年中已完全回本。
2013-2016 压力测试
风险平价在 2013-2016 年遭遇了另一种困境。2013 年的”缩减恐慌”和美联储逐步收紧对利率形成上行压力。加杠杆的债券仓位亏损。
据报道,2013 年 Bridgewater All Weather 基金下跌 3-4%。其他风险平价基金跌得更深。策略跑输 60/40 几百个基点。
这是风险平价隐含”做空波动率”造成伤害的状态。利率上行意味着债券价格下跌,加杠杆的债券仓位亏损,债券收益波动率上升,杠杆又放大了亏损。
风险平价挺过了 2013-2016 但失去了光环。在 2008-2009 年拥抱风险平价的投资者开始质疑这一策略。
诚实的评价是:风险平价不是”跑赢市场”的策略,而是”在不同状态下基于风险调整跑赢市场”的策略。在某些状态下它会跑输,在另一些状态下它会占优。
要点回顾
风险平价按风险贡献分配,而非按资本。在典型的 60/40 中,股票尽管只占”60%“的资本,却贡献了 90% 以上的风险。ERC 修复了这一点。
数学上是每个资产对应一个方程:相等的美元-波动率贡献。两个资产有闭式解, 个资产用迭代算法(Spinu 算法)。
它有效是因为:(a) 真正的分散能挺过大多数市场状态;(b) 对低波动率资产加杠杆捕获期限溢价;(c) 再平衡是免费的回报来源。
它有真实风险:加杠杆的债券敞口是做空波动率,尾部相关性破坏分散。批评者并没有说错。但完整样本下,策略已经交出了答卷。
杠杆问题是回报和风险共同的来源。再平衡超额收益是真实的(年化 1-2%)。状态条件化是按宏观环境自适应配置的自然扩展。
2008 压力测试是胜利。2013-2016 则是失利。两者都属于该策略的完整周期行为。
下一篇文章:层次风险平价。López de Prado 在 2016 年尝试把风险平价的稳健性与 MVO 的结构结合起来的产物。