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.