12 Algorithmen zur Portfoliooptimierung im Vergleich: HRP, Black-Litterman, NCO und mehr
Jeder Portfoliooptimierer beantwortet dieselbe Frage: Gegeben die Kurshistorien einer Handvoll Assets — welcher Kapitalanteil sollte in jedem einzelnen liegen? Der Haken dabei ist, dass es keine einzige richtige Antwort gibt — nur eine Familie von Antworten, jede das Produkt einer anderen Annahme darüber, wie sich Märkte verhalten und wie sehr man den eigenen Schätzungen vertraut.
Statt auf eine Methode zu setzen, haben wir daher ein Tool gebaut, das zwölf davon nebeneinander laufen lässt, alle hinter einer einzigen Schnittstelle, und Sie dabei zusehen lässt, wie sie sich an echten Daten uneinig sind. Es ist Open Source, in Rust geschrieben und live unter portfolio-optimizer.marketmaker.cc. Dieser Beitrag ist die Landkarte: woran jeder Algorithmus glaubt, woher die Mathematik stammt und was passiert, wenn man alle zwölf auf denselben Krypto-Korb ansetzt.
Eine Schnittstelle, zwölf Meinungen
Jeder Algorithmus im Projekt legt exakt dieselbe Funktionssignatur offen:
pub fn optimize(prices: &[Vec<f64>]) -> Vec<f64>
Preise rein, Gewichte raus. Die Gewichte sind long-only, nicht-negativ und summieren sich zu 1,0. Genau diese Einheitlichkeit ist der springende Punkt — sie bedeutet, dass Sie Hierarchical Risk Parity gegen Mean-Variance Optimization austauschen können, ohne eine einzige Zeile des aufrufenden Codes anzufassen, und dass Sie alle auf identischen Eingaben benchmarken können. Jeder Algorithmus lebt in seiner eigenen Crate (portfolio-hrp, portfolio-mvo, portfolio-nco, …), sodass Sie nur von der abhängen können, die Sie brauchen.
Unter der Haube könnten sie unterschiedlicher nicht sein. Gehen wir die Familien durch.
Der Klassiker: Mean-Variance Optimization (MVO)
Hier begann die moderne Portfoliotheorie — Harry Markowitz, 1952. MVO behandelt die Allokation als eine restringierte Optimierung: maximiere die erwartete Rendite für ein gegebenes Risikoniveau. Formal löst man
wobei der Vektor der erwarteten Renditen ist, die Kovarianzmatrix und Ihre Risikoaversion. Wenn die Eingaben gut sind, ist MVO unschlagbar: Es ist per Konstruktion die effiziente Grenze.
Das Problem ist, dass die Eingaben nie gut sind. Die erwarteten Renditen werden aus verrauschter Historie geschätzt, und MVO reagiert exquisit empfindlich darauf — eine winzige Änderung einer Schätzung kann die Allokation von 80 % in einem Asset zu 80 % in einem anderen kippen lassen. Praktiker nennen es "Fehlermaximierung": Der Optimierer schüttet bereitwillig Kapital in jenes Asset, dessen Rendite am stärksten überschätzt wurde. MVO ist der Maßstab, an dem sich jeder misst, und die mahnende Geschichte, die jeder zitiert.
Die hierarchische Familie: HRP, HERC, GHRP, MHRP
2016 schlug Marcos López de Prado eine andere Idee vor: die Kovarianzmatrix überhaupt nicht invertieren. Hierarchical Risk Parity (HRP) umgeht die Instabilität von MVO, indem es das Optimierungsproblem niemals direkt löst. Es arbeitet in drei Stufen:
- Baum-Clustering — die Korrelationsmatrix in eine Distanzmetrik umwandeln, , und eine Hierarchie von Assets aufbauen, sodass ähnliche Assets auf demselben Zweig sitzen.
- Quasi-Diagonalisierung — die Kovarianzmatrix so umsortieren, dass korrelierte Assets benachbart sind, wodurch große Werte entlang der Diagonalen konzentriert werden.
- Rekursive Bisektion — den Baum von oben nach unten aufteilen und Kapital zwischen den beiden Hälften umgekehrt proportional zu ihrer Varianz zuweisen.
Das Ergebnis ist ein Portfolio, das die Struktur des Marktes respektiert — korrelierte Assets konkurrieren untereinander um Gewicht, nicht mit allem auf einmal. HRP ist out-of-sample dramatisch stabiler als MVO, genau weil es niemals eine schlecht konditionierte Matrix invertiert.
Das Projekt liefert vier Mitglieder dieser Familie:
- HRP — der ursprüngliche López-de-Prado-Algorithmus.
- HERC (Hierarchical Equal Risk Contribution) — ersetzt die Inverse-Varianz-Aufteilung durch eine Equal-Risk-Contribution-Regel an jedem Knoten, sodass jeder Cluster gleichermaßen zum Gesamtrisiko beiträgt.
- GHRP (Generalized HRP) — eine parametrisierte Verallgemeinerung, mit der Sie die Clustering- und Allokationsschritte feinjustieren können.
- MHRP (Modified HRP) — eine Variante, die die Bisektionsgewichtung für schwerer besetzte Renditeverteilungen anpasst.
Sie sind enge Verwandte, doch auf echten Daten divergieren sie spürbar — genau deshalb ist es nützlich, alle vier zur Hand zu haben.
Eine Einschätzung einbringen: Black-Litterman
Das Black-Litterman-Modell (Goldman Sachs, 1990er) wurde entwickelt, um den praktischsten Schwachpunkt von MVO zu beheben: Es zwingt Sie, für jedes Asset eine erwartete Rendite anzugeben, selbst für solche, zu denen Sie keine Meinung haben. Black-Litterman startet stattdessen von einem neutralen, marktimpliziten Gleichgewicht und lässt Sie Ihre eigenen Einschätzungen einmischen, gewichtet danach, wie zuversichtlich Sie sind.
Hier ist die Gleichgewichtsrendite, und kodieren Ihre Einschätzungen ("Asset A wird Asset B um 2 % übertreffen"), und ist die Unsicherheit dieser Einschätzungen. Wenn Sie keine Einschätzungen haben, fällt es zurück auf das Marktportfolio; wenn Sie sich sicher sind, neigt es sich stark in Richtung Ihrer Wetten. Es ist das meinungsbewussteste der zwölf.
Der Hybride: Nested Clustered Optimization (NCO)
NCO, ebenfalls von López de Prado, ist eine geschickte Verbindung der beiden oben genannten Welten. Es clustert Assets wie HRP und führt dann eine kleine, gut konditionierte Mean-Variance Optimization innerhalb jedes Clusters sowie erneut über die Cluster hinweg aus. Indem es stets nur kleine, stabile Untermatrizen invertiert, fängt NCO die Optimalität von MVO dort ein, wo es sicher ist, sie zu nutzen, und vermeidet gleichzeitig die Instabilität, eine einzige riesige Kovarianzmatrix zu invertieren. Es ist oft das Beste beider Verhaltensweisen.
Der Rest der Aufstellung
- Entropy Pooling (Meucci) — ein probabilistisches Framework, das die Verteilung findet, die Ihrer Vorannahme am nächsten liegt (nach relativer Entropie), während es eine Reihe von Einschätzungen als Nebenbedingungen erfüllt. Elegant, wenn Sie Unsicherheit statt Punktprognosen ausdrücken möchten.
- OLPS (Online Portfolio Selection) — eine Familie sequenzieller Strategien (universelle Portfolios, Follow-the-Winner, Mean-Reversion), die neu balanciert, sobald neue Preise eintreffen, mit beweisbaren Regret-Schranken. Die einzige wirklich Online-Methode in der Sammlung.
- RBA (Robust Bayesian Allocation) — umhüllt die Allokation mit einer Bayes'schen Shrinkage-Schicht, die verrauschte Schätzungen zu einer sinnvollen Vorannahme hin zieht, sodass ein einzelner seltsamer Monat die Gewichte nicht dominieren kann.
- TIC (Theory-Implied Correlation) — ersetzt die rohe Stichproben-Korrelationsmatrix durch eine, die gegen eine theoretische Struktur (oft eine ökonomische Taxonomie) entrauscht wurde, was hierarchische Methoden, die sich von Korrelationen ernähren, deutlich verbessern kann.
- Pipeline — unser zusammengesetzter "Haus"-Algorithmus: ein HRP-Grundgerüst mit einem optionalen Long/Short-Overlay und einer CVaR-Nebenbedingung (Tail-Risiko). Über den einheitlichen, nur-long
optimize()-Einstiegspunkt verhält es sich wie HRP; seine Long/Short- und Tail-Risk-Maschinerie erwacht zum Leben, sobald Sie es mit expliziten Signalen antreiben. Wir zerlegen es vollständig in einer eigenen Tiefenanalyse: Inside Our House Algorithm: HRP + Long/Short + CVaR with Hull-White.
Was passiert, wenn man alle zwölf gegeneinander antreten lässt
Hier kommt der spaßige Teil. Wir haben alle zwölf auf einen absichtlich gemischten Korb angesetzt — drei starke Gewinner (ZEC, Tether Gold, 1000RATS) und drei schwere Verlierer (FLOW, KAVA, LINEA) — über das Fenster September 2025 bis Februar 2026, und jeden allokieren lassen.
| Algorithmus | Annualisierte Rendite | Sharpe |
|---|---|---|
| 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% | — |
Eine lautstarke Warnung, bevor Sie hier irgendetwas hineininterpretieren: Diese Zahlen stammen von einem Korb über ein Fenster, und der Korb wurde absichtlich so zusammengestellt, dass er extreme Gewinner und Verlierer enthält. Dies ist keine Performance-Aussage und absolut keine Anlageberatung — es ist eine Demonstration von Verhaltensdivergenz. Führen Sie es mit Ihren eigenen Assets aus, und die Rangfolge wird sich vollständig neu ordnen.
Aber die Form des Ergebnisses ist die Lektion. Die renditesuchenden Methoden — MVO, RBA, Entropy Pooling, NCO — konzentrierten Kapital auf die Gewinner und erzielten kräftig positive Renditen. Die reinen Risk-Parity-Methoden — HRP, TIC, MHRP, GHRP — verteilten das Gewicht gleichmäßig zugunsten der Diversifikation, was bedeutete, auch die Verlierer zu halten, und rutschten ins Negative. Keines der beiden Verhaltensweisen ist "falsch". Risk Parity ist darauf ausgelegt, zu überleben, wenn man Gewinner und Verlierer im Voraus nicht unterscheiden kann; bei einem Korb, dessen Zukunft absichtlich vorhersehbar gemacht wurde, zahlt es den Preis für seine Bescheidenheit. Diese Spannung — Konzentration versus Diversifikation, Überzeugung versus Robustheit — ist das gesamte Feld in einer einzigen Tabelle.
Open Source und live
Das Ganze ist offen: zwölf Rust-Algorithmus-Crates als Git-Submodule, ein Axum-HTTP-Backend, das alle davon ansteuert, und ein Next.js-Frontend mit einem interaktiven Effizienzgrenzen-Chart und einer nebeneinander stehenden Vergleichstabelle. Sie können:
- es live unter portfolio-optimizer.marketmaker.cc ausprobieren — Assets, einen Zeitraum und einen Algorithmus auswählen und zusehen, wie sich Gewichte und Grenze aktualisieren;
- den Tab Compare Methods öffnen, um alle zwölf gleichzeitig auf identischen Preisen laufen zu lassen;
- von jeder einzelnen Crate (
portfolio-hrp,portfolio-nco, …) in Ihrem eigenen Rust-Projekt abhängen.
Take-aways
- Es gibt keinen universell besten Optimierer. Die richtige Wahl hängt davon ab, wie sehr Sie Ihren Renditeschätzungen vertrauen. Vertrauen Sie ihnen → MVO/Black-Litterman. Vertrauen Sie ihnen nicht → HRP und Verwandte.
- MVO ist optimal und zerbrechlich. Es definiert die effiziente Grenze, maximiert aber den Schätzfehler. Behandeln Sie seine Gewichte mit Argwohn, sofern Ihre Eingaben nicht wirklich verlässlich sind.
- Hierarchische Methoden tauschen Spitzenperformance gegen Stabilität. Sie führen selten einen einzelnen Backtest an, brechen aber auch selten ein — was tatsächlich zählt, wenn die Zukunft unbekannt ist.
- Eine einheitliche Schnittstelle ist eine Superkraft. Sobald jeder Algorithmus
prices -> weightsist, kostet ein ehrlicher Vergleich nichts, und der Wechsel ist kostenlos.
Der beste Weg, zwölf Algorithmen zu verstehen, ist, ihnen beim Streiten zuzusehen. Führen Sie den Vergleich aus mit Assets, die Ihnen tatsächlich am Herzen liegen.
Referenzen
- 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
Zitation
@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/en/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.