12种投资组合优化算法比较:HRP、Black-Litterman、NCO及其他
每个投资组合优化器都回答同一个问题:给定少量资产的价格历史,每种资产应配置多少比例的资本?问题在于,没有一个单一的正确答案——只有一系列答案,每个答案都是基于对市场行为和对自身估计的信任程度的不同假设而产生的。
因此,我们没有只押注一种方法,而是构建了一个工具,可以并行运行十二种算法,所有算法都在一个界面下,让您观察它们在真实数据上的分歧。它是开源的,用Rust编写,并可在portfolio-optimizer.marketmaker.cc上实时运行。这篇文章是地图:每种算法的信念、数学来源,以及当您将所有十二种算法指向同一篮子加密货币时会发生什么。
一个界面,十二种观点
项目中的每种算法都暴露了完全相同的函数签名:
pub fn optimize(prices: &[Vec<f64>]) -> Vec<f64>
输入价格,输出权重。权重是只做多、非负且总和为1.0。这种统一性是关键——这意味着您可以在不触及任何调用代码的情况下,将分层风险平价(HRP)替换为均值-方差优化(MVO),并且可以在相同的输入上对所有算法进行基准测试。每种算法都存在于自己的crate中(portfolio-hrp、portfolio-mvo、portfolio-nco等),因此您只需依赖您需要的那一个。
在底层,它们之间的差异再大不过了。让我们来看看这些家族。
经典:均值-方差优化(MVO)
现代投资组合理论始于此——哈里·马科维茨,1952年。MVO将资产配置视为一个受约束的优化问题:在给定风险水平下最大化预期收益。形式上,您求解
其中是预期收益向量,是协方差矩阵,是您的风险厌恶系数。当输入良好时,MVO是无与伦比的:它通过构建,就是有效前沿。
问题是输入从不完美。预期收益是从嘈杂的历史数据中估计出来的,MVO对它们极其敏感——估计中的微小变化可以将配置从一种资产的80%转向另一种资产的80%。从业者称之为**“误差最大化”**:优化器乐于将资本投入到其收益被高估最多的资产中。MVO是每个人都用来衡量基准的算法,也是每个人都引用的警示故事。
分层家族:HRP、HERC、GHRP、MHRP
2016年,马科斯·洛佩斯·德·普拉多提出了一个不同的想法:根本不对协方差矩阵求逆。**分层风险平价(HRP)**通过不直接解决优化问题来规避MVO的不稳定性。它分三个阶段工作:
- 树形聚类——将相关矩阵转换为距离度量,,并构建资产层次结构,使相似资产位于同一分支上。
- 准对角化——重新排序协方差矩阵,使相关资产相邻,将大值集中在对角线上。
- 递归二分——自上而下地分割树,将资本按其方差的倒数比例分配给两半。
结果是一个尊重市场结构的投资组合——相关资产相互竞争权重,而不是一次性与所有资产竞争。HRP在样本外比MVO更稳定,正是因为它从不对病态矩阵求逆。
该项目提供了该家族的四个成员:
- HRP——原始的洛佩斯·德·普拉多算法。
- HERC(分层等风险贡献)——用每个节点上的等风险贡献规则替换了逆方差分割,因此每个聚类对总风险的贡献相等。
- GHRP(广义HRP)——一种参数化泛化,允许您调整聚类和分配步骤。
- MHRP(修正HRP)——一种变体,根据重尾收益分布调整二分加权。
它们是近亲,但在真实数据上它们有显著差异——这正是拥有所有四种算法的用处。
注入观点:Black-Litterman
Black-Litterman模型(高盛,1990年代)旨在解决MVO最实际的缺陷:它强制您为每种资产提供预期收益,即使是您没有意见的资产。Black-Litterman模型则从一个中性的市场隐含均衡开始,并允许您根据自己的信心程度,将自己的观点融入其中。
这里是均衡收益,和编码了您的观点(“资产A将比资产B高出2%”),是这些观点的不确定性。当您没有观点时,它会回到市场投资组合;当您确定时,它会强烈倾向于您的押注。它是十二种算法中最能感知观点的。
混合:嵌套聚类优化(NCO)
NCO也来自洛佩斯·德·普拉多,是上述两种世界的巧妙结合。它像HRP一样对资产进行聚类,然后在每个聚类内部以及跨聚类运行一个小型、良态的均值-方差优化。通过只对小型、稳定的子矩阵求逆,NCO在安全使用MVO时捕捉其最优性,同时避免对一个巨大协方差矩阵求逆的不稳定性。它通常是两种行为中最好的。
其他阵容
- 熵池(Meucci)——一个概率框架,通过相对熵找到最接近您先验分布的分布,同时满足一组观点作为约束。当您想表达不确定性而不是点预测时,它非常优雅。
- OLPS(在线投资组合选择)——一系列顺序策略(通用投资组合、追随赢家、均值回归),随着新价格的到来进行再平衡,具有可证明的遗憾界限。这是集合中唯一真正的在线方法。
- RBA(鲁棒贝叶斯分配)——将分配包装在贝叶斯收缩层中,将嘈杂的估计拉向合理的先验,这样单个异常月份就不会主导权重。
- TIC(理论隐含相关性)——用一个根据理论结构(通常是经济分类)去噪的相关矩阵替换原始样本相关矩阵,这可以显著改善依赖相关性的分层方法。
- Pipeline——我们的复合“内部”算法:一个带有可选多空叠加和CVaR(尾部风险)约束的HRP骨干。通过统一的只做多
optimize()入口点,它表现得像HRP;当您用明确的信号驱动它时,它的多空和尾部风险机制就会活跃起来。我们在专门的深入探讨中详细介绍了它:我们的内部算法揭秘:HRP + 多空 + 基于Hull-White的CVaR。
当您让所有十二种算法赛跑时会发生什么
这是有趣的部分。我们让所有十二种算法在一个特意混合的篮子上运行——三种强劲的赢家(ZEC、Tether Gold、1000RATS)和三种严重的输家(FLOW、KAVA、LINEA)——在2025年9月至2026年2月期间,并让每种算法进行分配。
| 算法 | 年化收益 | 夏普比率 |
|---|---|---|
| RBA | +149% | — |
| MVO | +74% | 2.52 |
| Entropy Pooling | +57% | 1.93 |
| NCO | +44% | — |
| HERC | +30% | — |
| Black-Litterman | +7% | — |
| OLPS | −74% | — |
| MHRP | −78% | — |
| GHRP | −95% | — |
| HRP / Pipeline | −103% | −2.45 |
| TIC | −131% | — |
在您解读这些数字之前,请注意一个重要的警告:这些数字来自一个篮子在一个时间窗口内的表现,并且这个篮子是故意设计成包含极端赢家和输家的。这并非性能声明,也绝非建议——它只是行为差异的演示。在您自己的资产上运行,排名将完全重新排序。
但结果的形态才是教训。追求收益的方法——MVO、RBA、熵池、NCO——将资本集中在赢家身上,并取得了强劲的正收益。纯粹的风险平价方法——HRP、TIC、MHRP、GHRP——为了分散风险而均匀分配权重,这意味着也持有输家,因此产生了负收益。这两种行为都没有“错”。风险平价旨在当您无法提前区分赢家和输家时生存下来;在一个未来被设计成可知晓的篮子上,它为自己的谦逊付出了代价。这种紧张关系——集中与分散,信念与稳健——就是整个领域在一张表中的体现。
开源和实时
整个项目都是开放的:十二个Rust算法crate作为git子模块,一个分派所有算法的Axum HTTP后端,以及一个带有交互式有效前沿图和并排比较表的Next.js前端。您可以:
- 在**portfolio-optimizer.marketmaker.cc**上实时尝试——选择资产、日期范围和算法,并观察权重和前沿的更新;
- 打开比较方法选项卡,同时在相同价格上运行所有十二种算法;
- 在您自己的Rust项目中依赖任何单个crate(
portfolio-hrp、portfolio-nco等)。
总结
- **没有普遍的最佳优化器。**正确的选择取决于您对收益估计的信任程度。信任它们 → MVO/Black-Litterman。不信任 → HRP及其变体。
- **MVO是最优的,但很脆弱。**它定义了有效前沿,但最大化了估计误差。除非您的输入真正可靠,否则请对它的权重持怀疑态度。
- **分层方法以牺牲峰值性能换取稳定性。**它们很少在单个回测中名列前茅,但也很少崩溃——这在未来未知时才是真正重要的。
- **统一接口是一种超能力。**一旦每种算法都是
价格 -> 权重,诚实地比较它们就没有任何成本,并且切换是免费的。
理解十二种算法的最佳方式是观察它们争论。去运行比较您真正关心的资产。
参考文献
- Markowitz, H. (1952). Portfolio Selection. The Journal of Finance.
- López de Prado, M. (2016). Building Diversified Portfolios that Outperform Out of Sample. The Journal of Portfolio Management.
- López de Prado, M. (2020). Machine Learning for Asset Managers. Cambridge University Press.
- Black, F., & Litterman, R. (1992). Global Portfolio Optimization. Financial Analysts Journal.
- Meucci, A. (2008). Fully Flexible Views: Theory and Practice. Risk.
- Marketmaker.cc: marketmaker.cc
引用
@article{soloviov2026portfoliooptimization,
author = {Soloviov, Eugen and Zhuravleva, Marina and Kiselev, Kirill},
title = {12 Portfolio Optimization Algorithms, Compared: HRP, Black-Litterman, NCO and Beyond},
year = {2026},
url = {https://marketmaker.cc/zh/blog/post/portfolio-optimization-algorithms-compared},
description = {A tour of twelve portfolio allocation algorithms — MVO, the hierarchical family (HRP, HERC, GHRP, MHRP), Black-Litterman, NCO, Entropy Pooling, OLPS, RBA, TIC and a composite pipeline — behind a single Rust interface, with an honest side-by-side comparison on a mixed crypto basket.}
}
Authors
Trading-systems engineer
Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.
Financial mathematics
Fifth-year student at Bauman Moscow State Technical University (Automatic Control Systems), specializing in financial mathematics. Background in calibrating stochastic-volatility (Heston) and local-volatility (Dupire) models, fair pricing of options including exotics via both Monte-Carlo and analytic formulas, hedging-error reduction, and exposure to LSV models.
Portfolio optimization
Fourth-year student at the Faculty of Mechanics and Mathematics, Novosibirsk State University (NSU); thesis on Heston-model calibration and delta-hedging within the same model. Works on portfolio optimization.