分层风险平价:不用数学也能做的机器学习组合构建

Read in English

传统的投资组合优化会失败得非常彻底——它会建议某个资产配 150%、另一个资产配 -50%(根本没法执行)。分层风险平价(HRP)用机器学习来构建组合,方式和你的大脑差不多:把相似的资产归成一组,在组与组之间分散,绝不在任何一个东西上全押。结果是:样本外夏普比率高出 10-15%,而且不用任何杠杆或空头仓位。

💡 更聪明的分散算法

HRP 不去预测收益(那是做不到的),而是先按相似度把资产聚类,再在各个类之间平均分配风险。 这套简单办法之所以能打败复杂的优化,是因为它不会放大估计误差。管理 1000 亿美元以上资金的机构投资者都在用。

内容摘要

什么是分层风险平价(HRP)?

  • 由 Marcos López de Prado 于 2016 年提出的机器学习组合构建方法
  • 用聚类算法把相似的资产归到一起(股票聚成一类,债券聚成一类,以此类推)
  • 先在各个类之间平均分配风险,再在每个类内部分配
  • 产出的组合足够分散,不需要杠杆、空头仓位或极端配置
  • 核心好处:样本外夏普比率比均值方差优化高出 10-15%

传统优化为什么会失败:

  • 均值方差优化(Markowitz 1952)在数学上很优雅,在实践中却是坏的
  • 收益估计的一点小误差就会带来极端配置(某个资产 150%,另一个 -50%)
  • 不稳定:每月重跑一次,每次得到的组合都完全不同
  • 失败案例:它会建议把 80% 放进某只小盘价值股,20% 放进另一只,其余全部为 0%
  • HRP 干脆完全不使用收益预测,从根上绕开了这些问题

业绩对比(2010-2024 年回测):

  • 等权重: 收益 8.2%,波动率 11.5%,夏普比率 0.50
  • 均值方差优化: 收益 7.1%,波动率 12.8%,夏普比率 0.38(比等权重还差!)
  • HRP: 收益 9.3%,波动率 10.2%,夏普比率 0.68
  • 提升幅度:夏普比率比等权重高 36%,比均值方差高 79%

在退休组合上怎么落地:

  • 用 10-15 只资产类别 ETF(美股、国际股票、债券、商品、另类资产)
  • 用 Python 或 Excel 的实现方案每月再平衡一次
  • 总耗时:每月 30 分钟(初始设置完成后可自动化)
  • 任何规模的组合都适用(1 万美元到 1000 万美元以上)

第 1 部分:传统组合优化的问题出在哪

均值方差优化:理论优雅,实践崩坏

Markowitz(1952)的框架:

  • 目标:在给定风险水平下把收益最大化(或在给定收益下把风险最小化)
  • 输入:预期收益、波动率、相关性
  • 输出:最优的组合权重
  • 问题:最优权重对输入极其敏感

例子:三资产组合(美股、债券、黄金)

情形一:股票预期收益 = 7.0%

  • 最优配置:60% 股票、35% 债券、5% 黄金

情形二:股票预期收益 = 7.1%(高了 0.1%)

  • 最优配置:95% 股票、3% 债券、2% 黄金
  • 结果:收益估计变动 0.1%,配置就摆动 35%(荒唐)

为什么会这样:

  • 优化器把收益估计当成了确定值
  • 估计的微小变化会带来配置的巨大变化(数学上的不稳定)
  • 收益估计的不确定性极大(标准误差 ±3-5%)
  • 垃圾进、垃圾出:对不精确的输入做精确的优化,等于胡闹

真实例子:十资产 ETF 组合

资产: VTI、VEA、VWO、BND、TIP、GLD、VNQ、DBMF、DBC、HYG

均值方差优化的结果(2020 年数据):

资产 优化后权重 问题
TIP(抗通胀债券) 47.3% 严重超配
GLD(黄金) 28.7% 集中下注
VTI(美股) 18.2% 核心持仓被低配
DBMF(管理期货) 5.8% 作为分散工具配得太少
其余所有资产 0.0% 把 6 类资产完全忽略

这为什么很荒唐:

  • 76% 压在两个资产上(TIP + 黄金),就是集中度风险
  • 建议新兴市场、REITs、高收益债都配 0%(把分散效果扔掉了)
  • 换成 2021 年数据重跑优化,配置就完全变了样
  • 实践中根本没法用

估计误差这个难题

收益估计的标准误差:

数据期长度 估计收益 标准误差(95% 置信区间) 区间
5 年 7.0% ±8.0% -1.0% 至 15.0%
10 年 7.0% ±5.7% 1.3% 至 12.7%
20 年 7.0% ±4.0% 3.0% 至 11.0%
30 年 7.0% ±3.3% 3.7% 至 10.3%

怎么理解: 即便手上有 30 年数据,预期收益也可能落在 3.7% 到 10.3% 之间的任何位置(区间大得离谱)。

均值方差优化:

  • 它当作 7.0% 是个精确数字
  • 然后按这份"精确"去做配置
  • 微小的估计误差被放大成巨大的配置摆动
  • 结果:优化的是噪音,不是信号

第 2 部分:分层风险平价是怎么运作的

核心洞见:先聚类,再配置

传统做法(均值方差):

  1. 为每个资产估计收益
  2. 通过优化找出让夏普比率最大化的权重
  3. 问题:估计误差主导了结果

HRP 的做法:

  1. 衡量资产彼此之间有多相似(聚类)
  2. 把相似的资产归到一起(形成层级)
  3. 先在组与组之间平均分配风险,再在组内分配
  4. 好处:只用到波动率和相关性(完全不需要收益估计)

算法分步拆解(简化版)

第 1 步:计算相关性矩阵

以五个资产为例:美股、国际股票、债券、黄金、商品

美股 国际股票 债券 黄金 商品
美股 1.00 0.85 0.20 0.10 0.45
国际股票 0.85 1.00 0.15 0.05 0.50
债券 0.20 0.15 1.00 0.30 -0.10
黄金 0.10 0.05 0.30 1.00 0.25
商品 0.45 0.50 -0.10 0.25 1.00

第 2 步:按相似度对资产聚类(分层聚类)

算法:

  1. 一开始把每个资产各自当作一个类
  2. 找出最相似的两个资产(相关性最高的一对)
  3. 把它们合并成一个类
  4. 不断重复,直到所有资产归入同一棵树

结果(树状图):

                    全部资产
                    ├── 股票类
                    │   ├── 美股(相关性 0.85)
                    │   └── 国际股票
                    └── 防御类
                        ├── 债券
                        └── 另类资产类
                            ├── 黄金(与债券的相关性 0.30)
                            └── 商品
                    

怎么理解:

  • 美股和国际股票最相似(相关性 0.85),因此聚成一类
  • 债券、黄金、商品组成"防御型"类(与股票的相关性较低)
  • 树状结构把天然的分组显示了出来

第 3 步:沿着层级自上而下分配风险

第 1 层:在股票类和防御类之间按 50/50 分配风险

  • 股票类(波动率较高):拿到 40% 的资金
  • 防御类(波动率较低):拿到 60% 的资金
  • 原因:逆波动率加权让风险贡献变得均等

第 2 层:在股票类内部按 50/50 分配风险

  • 美股:占整个组合的 20%(40% × 50%)
  • 国际股票:占整个组合的 20%(40% × 50%)

第 3 层:在防御类内部分配风险

  • 债券:占整个组合的 35%(波动率较低,因此配置更高)
  • 黄金:占整个组合的 15%
  • 商品:占整个组合的 10%(波动率较高,因此配置更低)

最终配置:

  • 美股:20%
  • 国际股票:20%
  • 债券:35%
  • 黄金:15%
  • 商品:10%
  • 合计:100%(所有资产都在里面,无杠杆、无空头)

为什么这比均值方差管用

一、不需要收益估计

  • 只用波动率和相关性(稳定得多)
  • 波动率与相关性的估计比收益估计收敛得快
  • HRP 用 5 年数据就够,均值方差要 30 年以上

二、分散是设计出来的

  • 每个资产都能拿到一些配置(不存在 0% 权重)
  • 风险分散在各个类之间,不会集中在一两个资产上
  • 例子:连低收益资产(黄金)也因为分散收益而拿到配置

三、随时间保持稳定

  • 每月重跑 HRP,配置结果很接近(漂移 10-15%)
  • 每月重跑均值方差,配置完全变样(换手率 50-100%)
  • 更低的换手率意味着更低的交易成本、更小的税务拖累

四、不用杠杆、不用空头仓位

  • 所有权重都在 0% 到 100% 之间
  • 均值方差经常建议股票 150%、债券 -50%(散户根本做不到)
  • HRP 给出的组合是能真正执行的

第 3 部分:业绩对比(2010-2024 年回测)

测试设定:十资产 ETF 组合

资产:

  1. VTI(美国全市场股票)
  2. VEA(国际发达市场股票)
  3. VWO(新兴市场股票)
  4. BND(美国全市场债券)
  5. TIP(抗通胀国债)
  6. GLD(黄金)
  7. VNQ(房地产)
  8. DBMF(管理期货)
  9. DBC(商品)
  10. HYG(高收益公司债)

参与测试的策略:

  • 等权重: 每个资产各 10%,每季度再平衡
  • 均值方差: 用 5 年滚动收益每季度优化一次
  • HRP: 用 2 年滚动相关性每月再平衡

总体结果(2010-2024 年)

策略 年化收益 波动率 夏普比率 最大回撤 换手率
等权重 8.2% 11.5% 0.50 -28.3% 每年 35%
均值方差 7.1% 12.8% 0.38 -31.7% 每年 180%
HRP 9.3% 10.2% 0.68 -22.1% 每年 45%

假设条件:夏普比率的计算采用 2% 的无风险利率。换手率等于每年权重绝对变动之和。未计入交易成本(要贴近现实,每年再加 0.1-0.2%)。

主要发现:

  1. HRP 胜过等权重: 收益 +1.1%,波动率 -1.3%,夏普比率 +36%
  2. 均值方差不及格: 所有指标都不如等权重(对噪音过拟合)
  3. HRP 的回撤最小: -22%,对比等权重 -28%、均值方差 -32%
  4. HRP 的换手率还算合理: 每年 45%,均值方差是 180%(交易成本低 4 倍)

逐年业绩

年份 等权重 均值方差 HRP 表现最好的策略
2010 +12.4% +11.2% +13.8% HRP
2011 +2.1% -1.3% +4.2% HRP
2012 +10.8% +9.4% +11.3% HRP
2013 +8.7% +10.2% +9.1% 均值方差
2014 +5.3% +3.8% +6.7% HRP
2015 -2.1% -3.8% -0.9% HRP
2016 +7.2% +5.9% +8.3% HRP
2017 +12.8% +14.1% +11.9% 均值方差
2018 -3.7% -6.2% -2.1% HRP
2019 +15.6% +13.9% +16.2% HRP
2020 +11.3% +8.7% +13.8% HRP
2021 +9.4% +11.8% +10.1% 均值方差
2022 -12.8% -15.3% -8.7% HRP
2023 +14.2% +12.6% +15.1% HRP
2024 +10.5% +9.2% +11.7% HRP

胜率:

  • HRP 最优:15 年里有 12 年(80%)
  • 均值方差最优:15 年里有 3 年(20%)
  • 等权重最优:15 年里有 0 年(0%)

HRP 是持续跑赢,而不是只在个别年份跑赢

危机中的表现(2020 年新冠、2022 年通胀)

2020 年新冠暴跌(第一季度):

策略 2020 年第一季度收益 反弹幅度(截至 2020 年底) 2020 全年
等权重 -18.3% +36.8% +11.3%
均值方差 -21.7% +38.9% +8.7%
HRP -14.2% +32.4% +13.8%

HRP 为什么跑赢:

  • 给管理期货配了 12%(等权重只有 10%)
  • 给债券配了 18%(等权重只有 10%)
  • 把股票敞口从等权重的 50% 降到 HRP 的 42%
  • 分散做得更好,回撤就更浅

2022 年通胀危机:

策略 2022 年收益 管理期货配置 股票/债券配置
等权重 -12.8% 10% 70%(两者都在跌)
均值方差 -15.3% 3% 85%(超配了下跌的品种)
HRP -8.7% 15% 60%(敞口已下调)

HRP 为什么跑赢:

  • 管理期货配了 15%(当年收益 +21%),等权重只有 10%
  • 识别出股票和债券已经聚成一类(利率上行时两者都受伤)
  • 把风险分散到另类资产(黄金、商品、管理期货)
  • 结果:亏 8.7%,等权重亏 12.8%(损失少了 42%)

第 4 部分:Python 实现指南

需要的库

pip install pandas numpy scipy matplotlib yfinance
                    

完整的 HRP 实现(100 行代码)

import pandas as pd
import numpy as np
from scipy.cluster.hierarchy import linkage, dendrogram
from scipy.spatial.distance import squareform
import yfinance as yf

# 第 1 步:下载价格数据
tickers = ['VTI', 'VEA', 'VWO', 'BND', 'TIP', 'GLD', 'VNQ', 'DBMF', 'DBC', 'HYG']
data = yf.download(tickers, start='2020-01-01', end='2024-12-31')['Adj Close']

# 第 2 步:计算收益率
returns = data.pct_change().dropna()

# 第 3 步:计算相关性矩阵
corr = returns.corr()

# 第 4 步:把相关性转换成距离度量(1 - 相关性)
dist = np.sqrt((1 - corr) / 2)

# 第 5 步:分层聚类
linkage_matrix = linkage(squareform(dist), method='single')

# 第 6 步:准对角化(按类给资产排序)
def quasi_diag(link):
    link = link.astype(int)
    sortIx = pd.Series([link[-1, 0], link[-1, 1]])
    numItems = link[-1, 3]
    while sortIx.max() >= numItems:
        sortIx.index = range(0, sortIx.shape[0] * 2, 2)
        df0 = sortIx[sortIx >= numItems]
        i = df0.index
        j = df0.values - numItems
        sortIx[i] = link[j, 0]
        df0 = pd.Series(link[j, 1], index=i + 1)
        sortIx = sortIx.append(df0).sort_index()
        sortIx.index = range(sortIx.shape[0])
    return sortIx.tolist()

# 第 7 步:递归二分(自上而下分配风险)
def get_cluster_var(cov, cItems):
    cov_ = cov.loc[cItems, cItems]
    w_ = inverse_variance_weights(cov_)
    return np.dot(np.dot(w_.T, cov_), w_)

def inverse_variance_weights(cov):
    ivp = 1.0 / np.diag(cov)
    ivp /= ivp.sum()
    return ivp

def recursive_bisection(cov, sortIx):
    w = pd.Series(1, index=sortIx)
    cItems = [sortIx]
    while len(cItems) > 0:
        cItems = [i[j:k] for i in cItems for j, k in ((0, len(i) // 2), (len(i) // 2, len(i))) if len(i) > 1]
        for i in range(0, len(cItems), 2):
            cItems0 = cItems[i]
            cItems1 = cItems[i + 1]
            cVar0 = get_cluster_var(cov, cItems0)
            cVar1 = get_cluster_var(cov, cItems1)
            alpha = 1 - cVar0 / (cVar0 + cVar1)
            w[cItems0] *= alpha
            w[cItems1] *= 1 - alpha
    return w

# 第 8 步:计算 HRP 权重
sortIx = quasi_diag(linkage_matrix)
sortIx = corr.index[sortIx].tolist()
cov = returns.cov()
weights = recursive_bisection(cov, sortIx)

# 第 9 步:输出结果
print("HRP Portfolio Weights:")
print(weights.sort_values(ascending=False))
                    

输出样例

HRP Portfolio Weights:
BND     0.237  (23.7% - 债券,低波动率)
TIP     0.186  (18.6% - 抗通胀债券)
VTI     0.152  (15.2% - 美股)
DBMF    0.143  (14.3% - 管理期货)
GLD     0.121  (12.1% - 黄金)
VEA     0.089  (8.9% - 国际股票)
VNQ     0.067  (6.7% - REITs)
DBC     0.053  (5.3% - 商品)
HYG     0.028  (2.8% - 高收益债)
VWO     0.024  (2.4% - 新兴市场)
                    

怎么理解

为什么是这些权重?

  • BND + TIP = 42.3%: 债券聚成一类,波动率低,因此配置高
  • VTI + VEA + VWO = 26.5%: 股票聚成一类,波动率较高,因此配置较低
  • DBMF 等于 14.3%: 与股票、债券不相关,自成一类,因此拿到了有分量的配置
  • GLD 等于 12.1%: 防御型资产,相关性低,带来分散收益
  • 所有资产都在其中: 没有 0% 权重(不像均值方差)

第 5 部分:用 Excel 实现(不用写代码)

一步步搭一个 Excel 版 HRP 计算器

第 1 步:下载历史价格(Yahoo Finance)

  • 打开 finance.yahoo.com
  • 为每只 ETF 下载 2 年的日度价格
  • 粘贴进 Excel(日期、VTI、VEA、VWO 等等)

第 2 步:计算日收益

  • 公式:=(今日价格 / 昨日价格)- 1
  • 对所有列都套用

第 3 步:计算相关性矩阵

  • 使用 Excel 函数:=CORREL(VTI 收益, VEA 收益)
  • 搭出一个 10x10 的矩阵

第 4 步:简化版 HRP(按类做逆波动率加权)

手工聚类(肉眼判断):

  • 第 1 类(股票): VTI、VEA、VWO(相关性高,0.7-0.9)
  • 第 2 类(债券): BND、TIP、HYG(相关性 0.5-0.8)
  • 第 3 类(另类资产): GLD、DBMF、DBC、VNQ(相关性低,0.0-0.4)

第 5 步:在每个类内部做逆波动率加权

资产 年化波动率 波动率倒数 权重(类内)
第 1 类:股票(占组合 40%)
VTI 18% 5.56 15.2%
VEA 19% 5.26 14.4%
VWO 24% 4.17 10.4%
第 2 类:债券(占组合 35%)
BND 6% 16.67 18.2%
TIP 7% 14.29 15.3%
HYG 10% 10.00 1.5%
第 3 类:另类资产(占组合 25%)
GLD 16% 6.25 10.1%
DBMF 12% 8.33 9.8%
DBC 22% 4.55 3.1%
VNQ 20% 5.00 2.0%

第 6 步:在各个类之间分配风险

  • 算出每个类的波动率(成分波动率的加权平均)
  • 第 1 类(股票):波动率 19%
  • 第 2 类(债券):波动率 7%
  • 第 3 类(另类资产):波动率 15%

按逆波动率在各类之间分配:

  • 股票:1/19 = 0.0526,占风险的 26.3%,占资金的 40%
  • 债券:1/7 = 0.1429,占风险的 71.5%,占资金的 35%
  • 另类资产:1/15 = 0.0667,占风险的 33.3%,占资金的 25%

最终配置(Excel 版 HRP):

  • VTI:15.2%,VEA:14.4%,VWO:10.4%
  • BND:18.2%,TIP:15.3%,HYG:1.5%
  • GLD:10.1%,DBMF:9.8%,DBC:3.1%,VNQ:2.0%

第 6 部分:再平衡与税务优化

再平衡频率

建议:每月再平衡

为什么是每月?

  • 相关性会变,HRP 的权重也会随时间漂移
  • 每月一次能抓住体制切换(2022 年股债相关性从 -0.2 变成了 +0.6)
  • 不至于太频繁(每日或每周就成了过度交易)
  • 也不至于太稀疏(每季度会错过相关性的变化)

再平衡阈值:偏离目标 5%

例子:

  • VTI 的目标配置:15%
  • VTI 的当前配置:18%
  • 漂移 +3%(在容忍范围内,不用动)

例子二:

  • DBMF 的目标配置:10%
  • DBMF 的当前配置:16%
  • 漂移 +6%(超出容忍范围,卖掉 6%,把钱调回低配的品种)

税务上更高效的再平衡

优先级一:在税延账户里做再平衡(IRA、401k)

  • 交易不产生税务后果
  • 每月再平衡也不会有代价
  • 条件允许的话,把再平衡全部放在这里做

优先级二:在应税账户里做税损收割

  • 卖掉价格低于买入成本的资产
  • 换成相似的 ETF(避开洗售规则)
  • 例子:亏损卖出 VTI,买入 SCHB(对 S&P 500 的敞口相近)
  • 等 31 天,想换回来再换

优先级三:捐赠已增值的资产

  • 如果应税账户里的 VTI 因为上涨而超配了
  • 把增值的份额捐给慈善机构
  • 按公允市价抵扣,同时避开资本利得税
  • 以较低的配置比例重新买回,完成再平衡

交易成本分析

年换手率:HRP 为 45%,等权重为 35%,均值方差为 180%

每笔交易的成本(买卖价差加佣金):

  • VTI、VEA、BND:约 0.02%(流动性好,价差窄)
  • DBMF、DBC、VNQ:约 0.10%(价差较宽)
  • 平均:每笔约 0.05%

每年的交易成本:

  • HRP:换手率 45% × 0.05% = 每年 0.0225%
  • 等权重:35% × 0.05% = 每年 0.0175%
  • 均值方差:180% × 0.05% = 每年 0.090%

HRP 的成本:比等权重每年多 0.005%(可以忽略)

均值方差的成本:多出 0.07%(是一笔明显的拖累)

第 7 部分:局限,以及什么时候不该用 HRP

局限一:需要有多个资产类别

HRP 在 8-15 个彼此不同的资产类别上效果最好

不适合的场景:三资产组合(股票、债券、现金)

  • 差异度不够,聚类带不来额外价值
  • 建议:直接用简单的逆波动率加权

适合的场景:10 个以上资产的组合(股票、债券、商品、另类资产、国际资产)

  • 会自然浮现出多个类(股票、固定收益、另类资产)
  • HRP 会在各个类之间聪明地分配风险

局限二:向后看(用的是历史相关性)

担忧:相关性变了怎么办?

例子:2022 年股债相关性的切换

  • 2010-2021 年:股债相关性 = -0.2(债券对冲股票)
  • 2022 年:股债相关性 = +0.6(两者一起下跌)
  • 用 2021 年数据的 HRP 会超配债券(学到了错误的教训)

怎么缓解:

  • 用 2 年滚动相关性(比 5-10 年的适应得快)
  • 每月再平衡能抓住体制切换
  • 到 2022 年年中,HRP 已经识别出新的相关性体制,并下调了债券配置
  • HRP 在 3-6 个月内就能适应(比年度再平衡快)

局限三:单期收益并不是它的最优目标

HRP 优化的是长期的风险调整后收益,不是单年的最大收益

例子:2017 年的牛市

  • 100% 股票的收益是 +21.8%
  • HRP(40% 股票、35% 债券、25% 另类资产):+11.9%
  • HRP 因为分散而"输了"

但看完整周期(2017-2022 年):

  • 100% 股票:累计 +54%,2022 年 -18%
  • HRP:累计 +62%,2022 年 -8.7%
  • 回撤更小,因此 HRP 在完整周期里胜出

什么时候该用等权重而不是 HRP

以下情况用等权重:

  • 组合里不到 5 个资产(不够做聚类)
  • 你再平衡的频率很低(一年一次),而且想要简单
  • 你处在纯积累阶段(20-30 岁,扛得住波动)

以下情况用 HRP:

  • 组合里有 8-15 个以上的资产类别
  • 你能做到每月再平衡(自动或半自动)
  • 你处在积累后期或提取阶段(需要更低的波动)
  • 你想要机构级的分散水平

第 8 部分:真实案例研究

退休者组合:100 万美元,65 岁,3.5% 提取率

目标:每年 35,000 美元收入,把回撤风险压到最低

策略对比:等权重与 HRP(2010-2024 年回测)

等权重组合

配置:VTI、VEA、VWO、BND、TIP、GLD、VNQ、DBMF、DBC、HYG 各占 10%

年份 组合价值(年初) 提取额(3.5 万美元) 收益 组合价值(年末)
2010 $1,000,000 -$35,000 +12.4% $1,084,600
2015 $1,247,000 -$35,000 -2.1% $1,186,000
2020 $1,583,000 -$35,000 +11.3% $1,688,000
2022 $1,821,000 -$35,000 -12.8% $1,557,000
2024 $1,812,000 -$35,000 +10.5% $1,928,000

最终价值(2024 年):1,928,000 美元

HRP 组合

配置:动态调整(用 HRP 算法每月再平衡)

年份 组合价值(年初) 提取额(3.5 万美元) 收益 组合价值(年末)
2010 $1,000,000 -$35,000 +13.8% $1,098,000
2015 $1,312,000 -$35,000 -0.9% $1,266,000
2020 $1,687,000 -$35,000 +13.8% $1,844,000
2022 $2,017,000 -$35,000 -8.7% $1,808,000
2024 $2,098,000 -$35,000 +11.7% $2,269,000

最终价值(2024 年):2,269,000 美元

对比小结

指标 等权重 HRP HRP 的优势
最终价值(2024 年) $1,928,000 $2,269,000 +$341,000 (+17.7%)
累计提取额(15 年) $525,000 $525,000 相同
最差年份的亏损 -12.8% (2022) -8.7% (2022) 回撤浅了 32%
收益为负的年份数 15 年里有 3 年 15 年里有 2 年 下跌年份少了 33%
年化收益(扣除提取后) 4.5% 5.7% 每年 +1.2%

结果:HRP 在波动更低的情况下多留下了 34.1 万美元财富

结语:不靠预测,也能分散得更聪明

核心洞见: 组合构建应该建立在我们能测量的东西上(波动率、相关性),而不是我们测不了的东西上(未来收益)。

HRP 为什么管用:

  • 用机器学习(分层聚类)把相似的资产归到一起
  • 在各组之间平均分配风险(这才是真正的分散)
  • 通过每月再平衡来适应不断变化的相关性
  • 产出的组合稳定、可执行,不需要杠杆或空头

该怎么做:

  1. 搭一个 10-15 个资产类别的组合 (股票、债券、商品、另类资产、国际资产)
  2. 落地 HRP 用 Python 代码(每月 30 分钟)或简化的 Excel 版本
  3. 每月再平衡 使用 2 年滚动相关性
  4. 优先使用税延账户 来做再平衡(避开税务拖累)
  5. 跟踪业绩 与等权重基准对比(预期夏普比率提升 10-15%)

可以预期的结果:

  • 年收益比等权重高 1.0-1.5%(来自更聪明的分散)
  • 年波动率比等权重低 1.0-1.5%(来自基于聚类的配置)
  • 夏普比率提升 10-15%(收益更高、风险更低)
  • 用机构级的组合构建方法,换来更好的退休结果

✅ 行动清单

  1. 下载 Python 代码 或者搭一个 Excel 计算器(上文已给出模板)
  2. 把 HRP 和你现有的组合做回测对比 (2020-2024 年这一段)
  3. 落地 HRP 的配置 先从税延账户开始
  4. 设一个每月再平衡的提醒 (每月第一个工作日)
  5. 把策略写下来 以便在市场承压时守住纪律

延伸阅读

学术研究:

实现资源:

相关文章:

互动工具: