F2. 投资组合优化决策
案例来源: Riskfolio-Lib
决策类型: 资产配置优化
方法论: 26 种风险度量 + HRP 层次风险平价
预计阅读时间: 15 分钟
1. 决策背景
业务场景
某财富管理机构管理¥100 亿资产,面临资产配置挑战:
- 投资标的:50+ (股票/债券/商品/另类)
- 客户风险偏好:保守/稳健/激进
- 传统方法:均值 - 方差优化 (对参数敏感)
- 问题:配置集中/回撤大/稳定性差
决策目标
- 优化资产配置权重
- 控制下行风险
- 提升风险调整后收益
- 满足不同风险偏好客户需求
2. 核心方法论
风险度量体系 (26 种)
| 类别 |
指标 |
说明 |
| 波动率 |
标准差/半方差/下行偏差 |
传统风险度量 |
| VaR |
历史 VaR/参数 VaR/CVaR |
在险价值 |
| 尾部风险 |
期望短缺/极值风险 |
极端损失 |
| 相关性 |
最大相关性/平均相关性 |
分散化效果 |
| 画布风险 |
最大回撤/Calmar 比率 |
实际损失体验 |
HRP 层次风险平价
步骤 1: 计算资产间距离矩阵
步骤 2: 层次聚类 (树状结构)
步骤 3: 自顶向下分配权重
步骤 4: 风险平价调整
优势:
✅ 不依赖协方差矩阵逆 (数值稳定)
✅ 自动识别风险因子
✅ 分散化效果更好
3. 决策实施
Python 实现
import riskfolio as rp
# 1. 数据准备
returns = pd.read_csv('asset_returns.csv')
# 2. 风险模型选择
models = ['MV', 'BS', 'CVR', 'HRP', 'HERC']
# 3. 优化求解
port = rp.HCPortfolio(returns=returns)
# HRP 优化
port_af = rp.Portfolio_AAL(
returns=returns,
model='HRP', # 层次风险平价
rm='Risk', # 风险度量
rf=0.02, # 无风险利率
l=0.5 # 风险厌恶系数
)
# 4. 权重提取
weights = port_af.w
配置结果对比
| 方法 |
年化收益 |
年化波动 |
夏普比率 |
最大回撤 |
| 等权重 |
8.2% |
12.5% |
0.50 |
-18.2% |
| 均值方差 |
9.5% |
14.2% |
0.53 |
-22.5% |
| HRP |
9.8% |
10.8% |
0.72 |
-14.3% |
| HERC |
9.6% |
11.2% |
0.68 |
-15.1% |
4. 决策结果
业务价值
| 指标 |
优化前 |
优化后 |
改善 |
| 夏普比率 |
0.53 |
0.72 |
+36% |
| 最大回撤 |
-22.5% |
-14.3% |
+36% |
| 客户满意度 |
72% |
89% |
+24% |
| 管理规模 |
¥80 亿 |
¥100 亿 |
+25% |
客户分层配置
| 风险偏好 |
股票 |
债券 |
商品 |
现金 |
| 保守型 |
20% |
50% |
10% |
20% |
| 稳健型 |
40% |
35% |
15% |
10% |
| 激进型 |
60% |
20% |
15% |
5% |
案例版本: v1.0 | 最后更新: 2026-06-03