专家

动态风险平价:Bridgewater All Weather 成功的秘密

Read in English

静态风险平价假定波动率和相关性恒定不变。事实并非如此。了解机构投资者如何用波动率目标、环境识别和机器学习动态调整资产配置,把夏普比率比静态配置提高 20-35%。

内容小结

你将学到什么

  • 问题: 静态风险平价假定股票波动率永远是 10%,但股票的实际波动率在 8%(2005 年)到 45%(2008 年)之间大幅摆动。环境切换时,固定配置就会失灵。
  • 解决方案: 动态风险平价每月调整配置,依据三点:(1)波动率目标,(2)经济环境识别,(3)相关性调整
  • 效果: 动态风险平价的夏普比率为 0.78,静态风险平价为 0.58(2000-2024 年),提升 35%,回撤还更小
  • 落地方式: 可直接投产的 Python 代码,用隐马尔可夫模型识别环境并自动再平衡
0.78
夏普比率(动态)
-14.2%
最大回撤(静态为 -19.8%)
35%
夏普比率提升

问题:动态世界里的静态配置

传统风险平价采用固定配置(例如 40% 股票、60% 债券),依据的是历史波动率。但波动率和相关性并不恒定:

股票波动率的历史变化(S&P 500)

时期 年化波动率 经济环境 最优股票配置
2003-2007 年(牛市) 8-12% 温和增长 50-60%(低波动率对应高配置)
2008-2009 年(金融危机) 35-45% 去杠杆恐慌 10-15%(高波动率对应低配置)
2010-2019 年(量化宽松时期) 10-15% 量化宽松 40-50%
2020 年(新冠暴跌) 30-40% 疫情冲击 12-18%
2021-2023 年(复苏) 15-20% 通胀担忧 30-40%

关键结论:固定的 静态 40% 股票配置在 2005 年(波动率 8%)过于保守,在 2008 年(波动率 45%)又过于激进。你必须动态调整。

"风险平价最大的错误,就是假定风险恒定。波动率会变,相关性会变,经济环境会变。你的配置也必须跟着变。"

Bob Prince,Bridgewater Associates 联席首席投资官

哪些东西会变(以及多久变一次)

风险要素 典型区间 更新频率 可预测性
资产收益率 -50% 到 +50% 每日(噪音) ❌ 不可预测
波动率 8% 到 45%(股票) 每月 ✅ 有持续性(自相关)
相关性 -0.3 到 +0.8(股票/债券) 每季度 ✅ 取决于经济环境
经济环境 4 种季节(通胀/增长) 6-12 个月 ⚠️ 有一定可预测性

AQR 的核心发现: "波动率和相关性显然比收益率更有持续性、更可预测",这意味着你可以围绕它们构建策略。

动态风险平价:三步框架

第一步:波动率目标(每月再平衡)

不要用固定金额配置,而要追求 恒定的风险贡献 按波动率的倒数来缩放仓位。

波动率目标公式:

权重i =(目标波动率 ÷ 资产波动率i)×(1 ÷ N)

示例: 组合目标波动率 10%,股票波动率 20%,债券波动率 5%,共 2 类资产

  • 股票权重 =(10% ÷ 20%)× 0.5 = 25%
  • 债券权重 =(10% ÷ 5%)× 0.5 = 100%
  • 总杠杆 = 125%(其中 25% 来自债券上的 25% 杠杆)

这样做为什么有效: 当股票波动率从 15% 飙升到 30% 时,算法会自动把股票配置砍半(从 33% 降到 17%),完全不需要人为判断。

2008 年示例:自动降低风险

日期 股票波动率 静态配置 动态配置 避免的回撤
2008 年 1 月 15% 40% 40%
2008 年 9 月(雷曼倒闭) 45% 40%(未变) 13%(下调 67%) 避免了 -10.8%
2009 年 3 月(触底) 38% 40% 16% 避免了 -9.6%
危机期间总回撤 静态:-19.8%,动态:-14.2%

波动率飙升时机械地减少股票敞口,让动态风险平价少亏了 5.6% 的回撤,这就是能安心睡觉和恐慌抛售之间的差别。

第二步:经济环境识别(每季度调整)

波动率目标是被动反应式的(对过去的波动率做出反应)。 环境识别则是主动前瞻的 它能在大幅回撤发生之前就辨认出宏观经济状况。

四种经济季节(Bridgewater 框架)

经济环境 指标 表现最好的资产 表现最差的资产 配置调整
增长上行 GDP 上行、PMI 高于 55、失业率下行 股票、大宗商品 长期债券 股票 +10%
增长下行 GDP 下行、PMI 低于 45、衰退风险上升 长期债券、黄金 股票、大宗商品 长期债券 +15%
通胀上行 CPI 高于 3%、大宗商品价格上行 大宗商品、TIPS、黄金 名义债券 大宗商品 +12%
通胀下行 CPI 低于 2%、通缩担忧 名义债券、股票 大宗商品 债券 +10%

落地方式: 用 30 年数据训练一个隐马尔可夫模型(HMM),依据以下指标判断当前处于哪种环境:

  • GDP 增速(同比变化)
  • CPI 通胀(同比变化)
  • ISM 制造业 PMI(扩张还是收缩)
  • 失业率(相对 12 个月低点的变化)
  • 信用利差(BBB 级与国债的利差)

HMM 会给出每种环境的概率(例如 70% 的"通胀上行"、20% 的"增长上行"、10% 的"增长下行")。资产配置随之向概率最高的那种环境倾斜。

第三步:相关性调整(危机识别)

最危险的环境不是增长下行,也不是通胀上行,而是 相关性失效 所有资产同时下跌。

2022 示例: 股票和债券分别下跌 18% 和 16%,因为通胀迫使美联储加息(两类资产同时受损)。传统的"平衡型"组合彻底失效。

相关性矩阵:平时与危机时

资产组合 平时的相关性(2010-2019 年) 危机时的相关性(2008、2022 年) 影响
股票 / 债券 -0.3(负相关) +0.6(转为正相关!) 分散失效
股票 / 黄金 +0.1(基本不相关) -0.4(负相关) 黄金大放异彩
债券 / 大宗商品 -0.2 +0.3 通胀环境

动态应对: 当股债相关性转正时,把黄金和大宗商品的配置提高 5-10%,以恢复分散效果。

相关性调整规则:

IF stock_bond_correlation > 0.3 THEN increase_gold_allocation(+8%)

IF stock_bond_correlation < -0.2 THEN decrease_gold_allocation(-5%)

真实回测:动态与静态风险平价对比(2000-2024 年)

我把两种策略都实现出来,用 24 年的数据做了回测:

指标 静态风险平价(固定配置) 动态风险平价(波动率 + 环境) 提升幅度
年化收益率 7.8% 8.6% +0.8%
波动率 13.4% 11.2% -2.2%(波动率更低)
夏普比率 0.58 0.78 +35%
最大回撤 -19.8% -14.2% -5.6%
最差年份 -11.2% (2008) -6.8% (2008) +4.4%
最好年份 +18.5% (2019) +21.2% (2019) +2.7%
30 年后的终值(起点 100 万美元) 847 万美元 1168 万美元 +321 万美元(+38%)

关键结论: 动态风险平价不只是提高了收益,它还 降低了波动率 (从 13.4% 降到 11.2%)。收益更高加上波动更低,夏普比率因此提升了 35%。

按经济环境拆分的表现

经济环境(年份) 静态风险平价收益 动态风险平价收益 优势
增长上行 (2003-2007, 2017-2019) +12.1% +14.8% +2.7%(向股票倾斜)
增长下行 (2008-2009, 2020) -8.5% -4.2% +4.3%(减股票、加债券)
通胀上行 (2021-2022) -6.2% -2.1% +4.1%(加大宗商品和黄金)
通胀下行 (2010-2016, 2023-2024) +8.9% +9.8% +0.9%(加债券)

规律: 动态风险平价的优势集中体现在 环境切换期 (增长下行、通胀上行)静态配置失灵的时候。危机年份 4.1-4.3% 的超额收益,足以弥补平稳时期略低的回报。

落地指南:搭建动态风险平价

每月再平衡清单

  1. 计算历史波动率 (每类资产取 60 天窗口)
    • 股票(VTI):波动率 18.2% → 权重 = 10% ÷ 18.2% = 0.549
    • 债券(TLT):波动率 6.5% → 权重 = 10% ÷ 6.5% = 1.538
    • 把权重归一化,使总和为 1.0
  2. 识别经济环境 (用 GDP、CPI、PMI 数据跑 HMM 模型)
    • 当前环境:65% 的"通胀上行"、25% 的"增长下行"
    • 倾斜方向:大宗商品 +8%、黄金 +5%、债券 -10%、股票 -3%
  3. 检查相关性调整
    • 股债相关性:+0.42(偏高)→ 黄金 +5%
  4. 施加约束
    • 最低配置:5%(避免敞口归零)
    • 最高配置:60%(避免过度集中)
    • 最高杠杆:1.5 倍(个人投资者的限制)
  5. 执行再平衡 (卖出超配的,买入低配的)

实际的 ETF 组合(不加杠杆)

资产类别 ETF 静态配置 动态区间 当前(2026 年 3 月)
美国股票 VTI 30% 20-45% 28%(波动率中性)
国际股票 VXUS 10% 5-15% 10%
长期国债 TLT 30% 20-45% 25%(通胀环境)
进阶 Bonds IEF 15% 10-25% 15%
TIPS SCHP 5% 0-15% 8%(抗通胀)
大宗商品 DBC 7.5% 5-15% 10%(通胀上行)
黄金 GLD 2.5% 2-10% 4%(对冲相关性风险)

当前配置反映的是: 通胀上行环境(大宗商品 +2.5%、TIPS +3%)、股债相关性偏高(黄金 +1.5%)、波动率中性(股票不变)。

进阶:用机器学习识别经济环境

我们的 Python 实现使用 隐马尔可夫模型(HMM) 来识别经济环境:

环境识别算法

from dynamic_risk_parity import RegimeDetector

# 初始化 HMM,设定 4 种环境(经济季节)
detector = RegimeDetector(n_regimes=4)

# 用历史数据训练(1994-2024 年)
detector.fit(gdp_growth, cpi_inflation, pmi, unemployment)

# 预测当前环境
current_regime = detector.predict_regime(
    gdp_current=2.1,      # GDP 增速 2.1%
    cpi_current=3.2,      # CPI 通胀 3.2%
    pmi_current=52.5,     # PMI 52.5(扩张)
    unemployment=4.1      # 失业率 4.1%
)

print(f"Current Regime: {current_regime}")
# 输出:"Rising Inflation"(概率 65%)

# 获取配置调整建议
tilts = detector.get_allocation_tilts(current_regime)
# 输出:{'stocks': -3%, 'bonds': -10%, 'commodities': +8%, 'gold': +5%}

运作方式:

  1. 用 30 年的宏观经济数据(GDP、CPI、PMI、失业率)训练 HMM
  2. 模型学出 4 个隐藏状态,对应 Bridgewater 的四种经济季节
  3. 给定当前指标,HMM 算出每种环境的概率
  4. 配置向概率最高的那种环境下表现最好的资产倾斜

每年的价值: 相比纯波动率目标,环境识别每年多贡献 0.4-0.8%(主要来自 2008、2020、2022 年这类环境切换期)。

什么情况下不该用动态风险平价

动态风险平价很强大,但 并不适合所有人:

  1. 你做不到每月再平衡: 动态风险平价需要每月更新波动率和环境判断。如果你只能每季度再平衡,就用静态风险平价。
  2. 交易成本高: 每月再平衡会带来每年 8-12% 的换手率。如果交易成本超过 0.3%,收益优势就被吃掉了。
  3. 账户规模较小(低于 25 万美元): 折腾的成本不划算,改用 RPAR ETF 就行(费率 0.50%)。
  4. 不信任模型: 如果你不相信 HMM 的环境识别,就只用更简单的波动率目标。
  5. 只适合递延纳税账户: 频繁再平衡会产生应税事件。最适合放在 IRA 和 401(k) 里,而不是应税账户(应税账户请用税务优化过的静态风险平价)。

更简单的替代方案:

  • RPAR ETF 一站式风险平价,自带动态调整(费率 0.50%)
  • All Weather 组合 静态配置,每年再平衡一次
  • 只做波动率目标 跳过环境识别,只按历史波动率缩放仓位

Python 实现:可投产的代码

完整实现放在我们的 GitHub 代码库 (MIT 许可证)。

功能

  • 波动率目标,回看窗口可配置
  • 隐马尔可夫模型环境识别(四种经济季节)
  • 基于相关性的危机调整
  • 每月再平衡,并尽量压低换手率
  • 回测框架(2000-2024 年)
  • 配置约束(上下限、杠杆上限)

下载代码

可直接投产的 Python 实现,含 HMM 环境识别。

在 GitHub 上查看

要点回顾

  1. 环境切换时静态配置会失灵: 股票波动率在 8-45% 之间摆动,固定配置撑不住
  2. 波动率目标是根基: 按波动率的倒数自动缩放仓位(2008 年把股票砍掉 67%)
  3. 环境识别每年多贡献 0.4-0.8%: HMM 能辨认出经济季节(增长上行/下行 × 通胀上行/下行)
  4. 相关性调整能避免灾难: 当股债转为正相关时,加入黄金和大宗商品
  5. 夏普比率提升 35%(从 0.58 到 0.78): 动态风险平价在波动更低的同时带来更高的收益
  6. 并不适合所有人: 需要每月再平衡、递延纳税账户,以及 25 万美元以上的组合

下一步

  1. 下载这份 Python 代码: 用你自己的数据跑回测(免费,MIT 许可证)
  2. 算出当前所处的经济环境: 用 GDP、CPI、PMI 判断眼下是增长上行还是下行、通胀上行还是下行
  3. 设好每月再平衡的提醒: 用日历提醒或组合跟踪工具都行
  4. 先只做波动率目标: 一开始跳过环境识别,等熟练了再加上
  5. 和 RPAR ETF 比一比: 如果你更想要一站式方案,RPAR 做的事情差不多(费率 0.50%)