12 Algoritma Pengoptimuman Portfolio Dibandingkan: HRP, Black-Litterman, NCO dan Lebih
Setiap pengoptimum portfolio menjawab soalan yang sama: berdasarkan sejarah harga beberapa aset, apakah pecahan modal yang patut diletakkan dalam setiap satunya? Kesukaran terletak pada hakikat bahawa tiada jawapan tunggal yang benar — hanya sekumpulan jawapan, setiap satunya hasil daripada andaian yang berbeza tentang cara pasaran berkelakuan dan sejauh mana anda mempercayai anggaran anda sendiri.
Jadi daripada bergantung pada satu kaedah, kami membina alat yang menjalankan dua belas daripadanya secara serentak, semuanya di sebalik satu antara muka, dan membolehkan anda melihat perselisihan mereka pada data sebenar. Ia adalah sumber terbuka, ditulis dalam Rust, dan tersedia di portfolio-optimizer.marketmaker.cc. Artikel ini adalah petanya: apa yang dipercayai oleh setiap algoritma, dari mana datangnya matematik itu, dan apa yang berlaku apabila anda mengarahkan kesemua dua belas kepada bakul kripto yang sama.
Satu antara muka, dua belas pendapat
Setiap algoritma dalam projek ini mendedahkan tandatangan fungsi yang sama persis:
pub fn optimize(prices: &[Vec<f64>]) -> Vec<f64>
Harga masuk, pemberat keluar. Pemberat adalah jenis panjang sahaja (long-only), tidak negatif, dan berjumlah 1.0. Keseragaman itulah yang menjadi inti pati keseluruhannya — ia bermakna anda boleh menukar Hierarchical Risk Parity kepada Mean-Variance Optimization tanpa menyentuh satu baris pun kod pemanggil, dan anda boleh membuat penanda aras semua daripadanya pada input yang sama. Setiap algoritma tinggal dalam crate tersendiri (portfolio-hrp, portfolio-mvo, portfolio-nco, …) supaya anda boleh bergantung hanya pada yang anda perlukan.
Di balik tabir, mereka tidak boleh lebih berbeza. Mari kita susuri keluarga-keluarganya.
Klasik: Mean-Variance Optimization (MVO)
Di sinilah teori portfolio moden bermula — Harry Markowitz, 1952. MVO menganggap peruntukan sebagai pengoptimuman berkekangan: memaksimumkan pulangan yang dijangka untuk tahap risiko tertentu. Secara formal, anda menyelesaikan
di mana ialah vektor pulangan yang dijangka, ialah matriks kovarian, dan ialah keengganan risiko anda. Apabila input adalah baik, MVO tidak tertandingi: ia adalah, mengikut pembinaannya, sempadan efisien.
Masalahnya ialah input tidak pernah baik. Pulangan yang dijangka dianggarkan daripada sejarah yang penuh dengan bunyi, dan MVO amat sensitif terhadapnya — perubahan kecil dalam anggaran boleh mengubah peruntukan daripada 80% dalam satu aset kepada 80% dalam aset yang lain. Pengamal memanggilnya "pemaksimuman ralat": pengoptimum dengan senang hati menuangkan modal ke dalam aset yang pulangannya paling terlebih anggaran. MVO adalah penanda aras yang diukur oleh semua orang dan cerita amaran yang disebut oleh semua orang.
Keluarga hierarki: HRP, HERC, GHRP, MHRP
Pada tahun 2016, Marcos López de Prado mencadangkan idea yang berbeza: jangan songsangkan matriks kovarian langsung. Hierarchical Risk Parity (HRP) mengelak ketidakstabilan MVO dengan tidak menyelesaikan masalah pengoptimuman secara langsung. Ia berfungsi dalam tiga peringkat:
- Pengelompokan pokok — tukarkan matriks korelasi kepada metrik jarak, , dan bina hierarki aset supaya aset yang serupa berada di cabang yang sama.
- Penyasunan kuasi-pepenjuru — susun semula matriks kovarian supaya aset yang berkorelasi bersebelahan, menumpukan nilai besar di sepanjang pepenjuru.
- Pembahagian dua rekursif — belah pokok dari atas ke bawah, memperuntukkan modal antara dua bahagian dalam nisbah songsang kepada varians masing-masing.
Hasilnya ialah portfolio yang menghormati struktur pasaran — aset yang berkorelasi bersaing antara satu sama lain untuk mendapat pemberat, bukan dengan semua sekaligus. HRP jauh lebih stabil di luar sampel berbanding MVO tepat kerana ia tidak pernah menyongsangkan matriks yang kurang terkondisi.
Projek ini menyertakan empat ahli keluarga ini:
- HRP — algoritma López de Prado yang asal.
- HERC (Hierarchical Equal Risk Contribution) — menggantikan pembahagian varians songsang dengan peraturan sumbangan risiko saksama pada setiap nod, supaya setiap kluster menyumbang sama rata kepada jumlah risiko.
- GHRP (Generalized HRP) — generalisasi berparameter yang membolehkan anda menala langkah pengelompokan dan peruntukan.
- MHRP (Modified HRP) — varian yang melaraskan pemberat pembahagian dua untuk taburan pulangan berekor lebih berat.
Mereka adalah sepupu rapat, tetapi pada data sebenar mereka berbeza secara bermakna — itulah sebabnya memiliki kesemua empat adalah berguna.
Menyuntik pandangan: Black-Litterman
Model Black-Litterman (Goldman Sachs, 1990-an) dibina untuk membetulkan kelemahan paling praktikal MVO: ia memaksa anda membekalkan pulangan yang dijangka untuk setiap aset, walaupun yang anda tidak ada pendapat tentangnya. Black-Litterman sebaliknya bermula dari keseimbangan tersirat pasaran yang neutral dan membolehkan anda mencampurkan pandangan anda sendiri, diberi pemberat mengikut keyakinan anda.
Di sini ialah pulangan keseimbangan, dan mengekodkan pandangan anda ("aset A akan mengatasi aset B sebanyak 2%"), dan ialah ketidakpastian pandangan tersebut. Apabila anda tiada pandangan, ia kembali semula kepada portfolio pasaran; apabila anda pasti, ia condong kuat ke arah pertaruhan anda. Ia adalah yang paling sedar pandangan daripada dua belas algoritma.
Hibrid: Nested Clustered Optimization (NCO)
NCO, juga daripada López de Prado, adalah perkahwinan bijak antara dua dunia di atas. Ia mengelompokkan aset seperti HRP, kemudian menjalankan Mean-Variance Optimization yang kecil dan terkondisi dengan baik di dalam setiap kluster dan sekali lagi merentasi kluster. Dengan hanya menyongsangkan sub-matriks kecil yang stabil, NCO menangkap keoptimalan MVO di tempat yang selamat untuk menggunakannya, sambil mengelakkan ketidakstabilan menyongsangkan satu matriks kovarian yang besar. Ia sering kali menunjukkan yang terbaik daripada kedua-dua perilaku.
Selebihnya dalam barisan
- Entropy Pooling (Meucci) — rangka kerja kebarangkalian yang mencari taburan paling hampir dengan sebelum anda (mengikut entropi relatif) sambil memenuhi set pandangan sebagai kekangan. Elegan apabila anda ingin menyatakan ketidakpastian berbanding ramalan titik.
- OLPS (Online Portfolio Selection) — keluarga strategi berurutan (portfolio universal, ikut-pemenang, mean-reversion) yang menyeimbang semula apabila harga baharu tiba, dengan batas penyesalan yang boleh dibuktikan. Satu-satunya kaedah yang benar-benar dalam talian dalam set tersebut.
- RBA (Robust Bayesian Allocation) — membalut peruntukan dalam lapisan pengecutan Bayesian, menarik anggaran yang penuh bunyi ke arah sebelum yang munasabah supaya satu bulan yang pelik tidak boleh mendominasi pemberat.
- TIC (Theory-Implied Correlation) — menggantikan matriks korelasi sampel mentah dengan matriks yang ditanggalkan hinga kepada struktur teoritikal (sering taksonomi ekonomi), yang boleh meningkatkan dengan ketara kaedah hierarki yang bergantung pada korelasi.
- Pipeline — algoritma komposit "dalaman" kami: tulang belakang HRP dengan lapisan panjang/pendek pilihan dan kekangan CVaR (risiko ekor). Melalui titik masuk
optimize()panjang-sahaja yang seragam, ia berkelakuan seperti HRP; jentera panjang/pendek dan risiko ekornya hidup apabila anda memandunya dengan isyarat eksplisit. Kami membincangkannya secara terperinci dalam penerokaan mendalam yang khusus: Di Dalam Algoritma Dalaman Kami: HRP + Long/Short + CVaR dengan Hull-White.
Apa yang berlaku apabila anda memperlumbakan kesemua dua belas
Inilah bahagian yang seronok. Kami mengarahkan kesemua dua belas kepada bakul campuran yang sengaja dipilih — tiga pemenang kukuh (ZEC, Tether Gold, 1000RATS) dan tiga yang kalah teruk (FLOW, KAVA, LINEA) — sepanjang tempoh September 2025 hingga Februari 2026, dan membiarkan setiap satunya membuat peruntukan.
| Algoritma | Pulangan tahunan | 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% | — |
Amaran keras sebelum anda membaca apa-apa daripada ini: angka-angka ini berasal dari satu bakul sepanjang satu tempoh, dan bakul itu sengaja direka untuk mengandungi pemenang dan pihak yang kalah yang melampau. Ini bukan dakwaan prestasi dan sama sekali bukan nasihat — ia adalah demonstrasi perbezaan perilaku. Jalankannya pada aset anda sendiri dan penarafan akan tersusun semula sepenuhnya.
Tetapi bentuk hasilnya adalah pelajaran yang sebenar. Kaedah yang mencari pulangan — MVO, RBA, Entropy Pooling, NCO — menumpukan modal kepada pemenang dan mencetak pulangan positif yang kukuh. Kaedah pariti risiko tulen — HRP, TIC, MHRP, GHRP — menyebarkan pemberat secara saksama demi kepelbagaian, yang bermakna memegang pihak yang kalah juga, dan menjadi negatif. Tiada satu perilaku pun yang "salah." Pariti risiko dibina untuk bertahan apabila anda tidak boleh membezakan pemenang daripada pihak yang kalah terlebih dahulu; pada bakul di mana masa depan telah direka untuk boleh diketahui, ia membayar harga atas kekhusuannya. Ketegangan itu — tumpuan berbanding kepelbagaian, keyakinan berbanding keteguhan — adalah keseluruhan bidang dalam satu jadual.
Sumber terbuka dan langsung
Kesemuanya terbuka: dua belas crate algoritma Rust sebagai submodul git, bahagian belakang HTTP Axum yang menghantar semua daripadanya, dan bahagian depan Next.js dengan carta sempadan efisien interaktif dan jadual perbandingan sebelah-menyebelah. Anda boleh:
- mencubanya secara langsung di portfolio-optimizer.marketmaker.cc — pilih aset, julat tarikh, dan algoritma, dan tonton pemberat serta sempadan dikemas kini;
- buka tab Compare Methods untuk menjalankan kesemua dua belas pada harga yang sama sekaligus;
- bergantung pada mana-mana crate tunggal (
portfolio-hrp,portfolio-nco, …) dalam projek Rust anda sendiri.
Pengajaran
- Tiada pengoptimum universal terbaik. Pilihan yang tepat bergantung pada sejauh mana anda mempercayai anggaran pulangan anda. Percayainya → MVO/Black-Litterman. Tidak → HRP dan rakan-rakannya.
- MVO adalah optimum dan rapuh. Ia mentakrifkan sempadan efisien tetapi memaksimumkan ralat anggaran. Perlakukan pemberatnya dengan syak wasangka melainkan input anda benar-benar boleh dipercayai.
- Kaedah hierarki menukar prestasi puncak dengan kestabilan. Mereka jarang mengungguli dalam satu ujian balik tetapi jarang meledak juga — itulah yang sebenarnya penting apabila masa depan tidak diketahui.
- Antara muka seragam adalah kuasa super. Setelah setiap algoritma adalah
harga -> pemberat, membandingkan mereka secara jujur tidak memerlukan apa-apa kos, dan menukar adalah percuma.
Cara terbaik untuk memahami dua belas algoritma adalah dengan melihat mereka berhujah. Pergi jalankan perbandingan pada aset yang benar-benar anda minati.
Rujukan
- 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
Petikan
@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/ms/blog/post/portfolio-optimization-algorithms-compared},
description = {Tinjauan dua belas algoritma peruntukan portfolio — MVO, keluarga hierarki (HRP, HERC, GHRP, MHRP), Black-Litterman, NCO, Entropy Pooling, OLPS, RBA, TIC dan saluran paip komposit — di sebalik satu antara muka Rust, dengan perbandingan sebelah-menyebelah yang jujur pada bakul kripto campuran.}
}
Pengarang
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.