4、风险平价策略概述:全球风险平价策略的经典案例(桥水全天候策略)
说到风险平价,绕不开的一个名字就是桥水基金的全天候策略。我个人觉得,这个策略是风险平价思想在实战中最经典的演绎。达里奥当年搞出这个东西,说白了就是想让资产组合在各种经济环境下都能扛得住、能赚钱。
4.1 全天候策略的核心逻辑
桥水全天候策略的出发点很简单:资产的回报,主要取决于经济环境。达里奥把经济环境分成了四个象限:
- 增长高于预期 + 通胀高于预期
- 增长高于预期 + 通胀低于预期
- 增长低于预期 + 通胀高于预期
- 增长低于预期 + 通胀低于预期
你想想看,每个象限里,表现好的资产是不一样的。比如通胀高的时候,商品和通胀挂钩债券就吃香;增长差的时候,国债和黄金往往能避险。全天候策略要做的,就是给每个象限分配差不多的风险权重。
核心思想:不是平均分配资金,而是平均分配风险。让组合在任何经济环境下,都有25%的风险敞口在起作用。
4.2 经典的风险预算结构
我记得第一次拆解桥水的实际持仓时,发现它的风险预算分配大致是这样的:
| 资产类别 | 名义权重(约) | 风险贡献占比 |
|---|---|---|
| 美国长期国债 | 40% | 25% |
| 美国中期国债 | 15% | 10% |
| 通胀挂钩债券 | 15% | 10% |
| 股票(全球) | 30% | 25% |
| 大宗商品 | 7.5% | 15% |
| 黄金 | 7.5% | 15% |
看到没?债券的名义权重占了70%,但风险贡献只占45%左右。股票名义权重才30%,风险贡献却占了25%。这就是风险平价的精髓——用高名义权重配低风险资产,用低名义权重配高风险资产。
4.3 为什么债券要配那么多?
很多新手看到这个配置,第一反应是:债券配70%?疯了吧?
嗯,这里要注意。债券的波动率通常只有股票的1/3到1/5。如果你按传统60/40配比,组合里90%的风险都来自股票。一旦股市崩盘,整个组合就完了。
我在项目中遇到过类似的情况。有次给一个机构做配置,他们坚持要60%股票。我说行,但咱们算一下风险预算。结果一算,股票贡献了92%的风险。后来加了点杠杆的国债和商品,才把风险拉平。说白了,风险平价不是让你多买债券,而是让你用杠杆把债券的风险拉到和股票一个量级。
4.4 全天候策略的SVG框架图
下面这张图,是我自己梳理的全天候策略核心逻辑。你可以看到风险是如何在四个经济象限中分配的:
4.5 实战中的杠杆问题
全天候策略在实际操作中,几乎必然要用到杠杆。为什么?因为债券的预期收益率太低了。如果不加杠杆,债券那部分的风险虽然低,但收益也低,整体组合的回报率会很难看。
我曾经帮一个家族办公室回测过全天候策略。不加杠杆的情况下,年化收益只有4.5%左右,波动率倒是很低,不到6%。但客户嫌收益不够。后来我们用2倍杠杆做债券部分,整体组合的年化收益提到了7.8%,波动率也只到9%左右。这个性价比,比纯股票组合强太多了。
实操建议:个人投资者做全天候策略,可以用国债期货或者ETF加杠杆。比如TLT(20+年国债ETF)本身就有一定的久期杠杆效果。别一上来就搞期货,先拿ETF练手。
4.6 避坑指南
我曾经踩过一个坑,就是忽略了利率快速上升的环境。2022年美联储暴力加息,长期国债跌了30%以上。全天候策略里债券配得多,那一年回撤也不小。后来我反思,风险平价不是万能药,它假设各类资产的相关性在极端情况下会保持稳定。但事实上,利率飙升时,股债双杀也是有可能的。
注意事项:
- 全天候策略在温和通胀、利率稳定的环境下表现最好
- 极端利率冲击下,债券和股票可能同时下跌
- 杠杆成本会影响最终收益,尤其在加息周期
- 需要定期再平衡,我建议每季度做一次风险预算检查
4.7 一个简单的Python回测框架
下面是我自己写的一个简化版全天候策略回测代码。你可以直接拿去跑,看看效果:
import numpy as np
import pandas as pd
# 假设我们有三类资产:股票、长期国债、黄金
# 目标风险贡献:各33%
def risk_parity_weights(cov_matrix, target_risk=0.33):
n = len(cov_matrix)
# 初始等权
w = np.ones(n) / n
for _ in range(100):
# 计算边际风险贡献
portfolio_var = w @ cov_matrix @ w
marginal_contrib = cov_matrix @ w / np.sqrt(portfolio_var)
risk_contrib = w * marginal_contrib
# 调整权重,使风险贡献接近目标
for i in range(n):
if risk_contrib[i] > target_risk:
w[i] *= 0.95
else:
w[i] *= 1.05
# 归一化
w = w / w.sum()
return w
# 示例:使用历史协方差矩阵
# 这里用随机数据演示,实际请用真实数据
np.random.seed(42)
cov = np.array([[0.04, 0.01, 0.005],
[0.01, 0.02, 0.002],
[0.005, 0.002, 0.015]])
weights = risk_parity_weights(cov)
print("风险平价权重:", weights)
# 输出示例:股票约20%,国债约50%,黄金约30%
这个代码虽然简单,但核心逻辑是对的。我在实际项目中,会把协方差矩阵换成滚动窗口估计,再引入一些正则化防止权重突变。你想想看,如果每个月权重都剧烈变化,交易成本就够你受的。
好了,全天候策略的核心就这些。记住一句话:别跟市场赌方向,跟风险做朋友。
公众号:蓝海资料掘金营,微信deep3321