12のポートフォリオ最適化アルゴリズム比較:HRP、Black-Litterman、NCOなど
すべてのポートフォリオ最適化アルゴリズムは同じ問いに答えます。すなわち、いくつかの資産の価格履歴が与えられたとき、それぞれの資産に資本の何割を割り当てるべきか、という問いです。問題は、唯一の正解というものが存在しないことです。市場がどのように振る舞うか、そして自身の推定をどれだけ信頼するかについての異なる仮定から生まれる、一連の答えがあるだけです。
そこで、私たちは一つの手法に賭けるのではなく、12種類のアルゴリズムを並行して実行できるツールを構築しました。これらはすべて単一のインターフェースの背後にあり、実際のデータ上でそれらがどのように異なる意見を持つかを見ることができます。このツールはオープンソースで、Rustで書かれており、portfolio-optimizer.marketmaker.ccで公開されています。この記事はその地図です。各アルゴリズムが何を信じているのか、その数学的根拠はどこにあるのか、そして12種類すべてを同じ暗号資産のバスケットに適用するとどうなるのかを説明します。
一つのインターフェース、12の意見
プロジェクト内のすべてのアルゴリズムは、まったく同じ関数シグネチャを公開しています。
pub fn optimize(prices: &[Vec<f64>]) -> Vec<f64>
価格を入力し、ウェイトを出力します。ウェイトはロングオンリー、非負であり、合計すると1.0になります。この均一性が全体のポイントです。つまり、呼び出し元のコードを一行も変更することなく、階層的リスクパリティを平均分散最適化と交換でき、すべてのアルゴリズムを同一の入力でベンチマークできることを意味します。各アルゴリズムは独自のクレート(portfolio-hrp、portfolio-mvo、portfolio-ncoなど)に存在するため、必要なものだけを依存関係に追加できます。
内部的には、これらはこれ以上ないほど異なります。それぞれのファミリーを見ていきましょう。
クラシック:平均分散最適化(MVO)
現代ポートフォリオ理論はここから始まりました。ハリー・マーコウィッツ、1952年。MVOは、配分を制約付き最適化として扱います。すなわち、与えられたリスクレベルに対して期待リターンを最大化します。形式的には、以下の問題を解きます。
ここで、は期待リターンのベクトル、は共分散行列、はリスク回避度です。入力が良好であれば、MVOは無敵です。構成上、それは効率的フロンティアそのものです。
問題は、入力が常に良好であるとは限らないことです。期待リターンはノイズの多い履歴から推定され、MVOはそれらに非常に敏感です。推定値のわずかな変化が、ある資産への配分を80%から別の資産への80%へと大きく変動させることがあります。実務家はこれを**「誤差最大化」**と呼びます。最適化アルゴリズムは、最も過大評価された資産に喜んで資本を投入します。MVOは誰もが比較対象とするベンチマークであり、誰もが引用する警告の物語でもあります。
階層的ファミリー:HRP、HERC、GHRP、MHRP
2016年、マルコス・ロペス・デ・プラドは異なるアイデアを提案しました。共分散行列をまったく反転させないというものです。**階層的リスクパリティ(HRP)**は、最適化問題を直接解くことを避けることで、MVOの不安定性を回避します。これは3つの段階で機能します。
- ツリークラスタリング — 相関係数を距離指標に変換し、類似する資産が同じブランチに位置するように資産の階層を構築します。
- 準対角化 — 相関のある資産が隣接するように共分散行列を並べ替え、大きな値を対角線に集中させます。
- 再帰的二分法 — ツリーをトップダウンで分割し、分散に反比例する形で2つの半分に資本を割り当てます。
その結果、市場の構造を尊重するポートフォリオが生まれます。相関のある資産は、一度にすべてと競合するのではなく、互いにウェイトを競い合います。HRPは、悪条件の行列を反転させないため、MVOよりもサンプル外で劇的に安定しています。
このプロジェクトには、このファミリーの4つのメンバーが含まれています。
- HRP — オリジナルのロペス・デ・プラドのアルゴリズム。
- HERC (Hierarchical Equal Risk Contribution) — 逆分散分割を、各ノードでの等リスク寄与ルールに置き換え、すべてのクラスターが総リスクに均等に寄与するようにします。
- GHRP (Generalized HRP) — クラスタリングと配分ステップを調整できるパラメータ化された一般化。
- MHRP (Modified HRP) — 裾の重いリターン分布に対して二分法の重み付けを調整するバリアント。
これらは密接な関係にありますが、実際のデータでは意味のある違いが生じます。だからこそ、これら4つすべてを持つことが有用なのです。
見解の注入:ブラック・リッターマン
ブラック・リッターマン・モデル(ゴールドマン・サックス、1990年代)は、MVOの最も実用的な欠陥を修正するために構築されました。それは、意見のない資産も含め、すべての資産の期待リターンを供給することを強制するというものです。ブラック・リッターマンは、代わりに中立的な市場に示唆される均衡から出発し、自身の見解を、その確信度に応じてブレンドすることを可能にします。
ここで、は均衡リターン、とはあなたの見解(「資産Aは資産Bを2%上回るだろう」)を符号化し、はそれらの見解の不確実性です。見解がない場合、それは市場ポートフォリオに戻ります。確信がある場合、それはあなたの賭けに強く傾きます。これは12のアルゴリズムの中で最も意見を意識したものです。
ハイブリッド:ネストされたクラスター最適化(NCO)
NCOもロペス・デ・プラドによるもので、上記の2つの世界の巧妙な融合です。HRPのように資産をクラスター化し、次に各クラスター内で小さな、条件の良い平均分散最適化を実行し、さらにクラスター間でも実行します。NCOは、常に小さく安定した部分行列のみを反転させることで、MVOの最適性を安全に利用できる場所で捉えつつ、巨大な共分散行列を反転させることによる不安定性を回避します。これはしばしば両方の特性の最良の組み合わせとなります。
その他のラインナップ
- エントロピー・プーリング (Meucci) — 事前分布に最も近い分布を(相対エントロピーによって)見つけ出す確率的フレームワークで、一連の見解を制約として満たします。点予測ではなく不確実性を表現したい場合にエレガントです。
- OLPS (Online Portfolio Selection) — 新しい価格が到着するたびにリバランスを行う一連の逐次戦略(ユニバーサルポートフォリオ、勝者追随、平均回帰)で、証明可能な後悔の限界があります。このセットの中で唯一真にオンラインな手法です。
- RBA (Robust Bayesian Allocation) — ベイズ的収縮層で配分を包み込み、ノイズの多い推定値を合理的な事前分布に引き寄せることで、単一の異常な月がウェイトを支配しないようにします。
- TIC (Theory-Implied Correlation) — 生のサンプル相関行列を、理論的な構造(しばしば経済分類)に対してノイズ除去されたものに置き換えます。これにより、相関に依存する階層的手法が大幅に改善される可能性があります。
- Pipeline — 私たちの複合的な「ハウス」アルゴリズム:オプションのロング/ショートオーバーレイとCVaR(テールリスク)制約を備えたHRPバックボーン。均一なロングオンリーの
optimize()エントリーポイントを通じてHRPのように動作します。そのロング/ショートおよびテールリスクのメカニズムは、明示的なシグナルで駆動すると活性化します。これについては、専用の深掘り記事で詳しく解説しています:社内アルゴリズムの内側:HRP + ロング/ショート + Hull-WhiteによるCVaR。
12種類すべてを競わせるとどうなるか
ここが面白い部分です。私たちは、2025年9月から2026年2月までの期間で、意図的に混合されたバスケット(3つの強い勝者(ZEC、Tether Gold、1000RATS)と3つの大きな敗者(FLOW、KAVA、LINEA))に12種類すべてを適用し、それぞれに配分させました。
| アルゴリズム | 年率リターン | シャープ |
|---|---|---|
| RBA | +149% | — |
| MVO | +74% | 2.52 |
| エントロピー・プーリング | +57% | 1.93 |
| NCO | +44% | — |
| HERC | +30% | — |
| ブラック・リッターマン | +7% | — |
| OLPS | −74% | — |
| MHRP | −78% | — |
| GHRP | −95% | — |
| HRP / Pipeline | −103% | −2.45 |
| TIC | −131% | — |
**これを読み取る前に大きな注意点があります。**これらの数値は、一つのバスケットと一つの期間からのものであり、バスケットは意図的に極端な勝者と敗者を含むように仕組まれています。これはパフォーマンスの主張ではなく、決してアドバイスでもありません。これは行動の相違を示すデモンストレーションです。ご自身の資産で実行すれば、ランキングは完全に変わるでしょう。
しかし、結果の形が教訓です。リターン追求型の手法(MVO、RBA、エントロピー・プーリング、NCO)は、勝者に資本を集中させ、強いプラスのリターンを記録しました。純粋なリスクパリティ手法(HRP、TIC、MHRP、GHRP)は、分散のためにウェイトを均等に広げたため、敗者も保有することになり、マイナスになりました。どちらの行動も「間違い」ではありません。リスクパリティは、事前に勝者と敗者を区別できない場合に生き残るために構築されています。将来が既知であるように仕組まれたバスケットでは、その謙虚さの代償を払うことになります。この緊張関係、すなわち集中と分散、確信と堅牢性は、この分野全体を一つの表にまとめたものです。
オープンソースとライブ
全体がオープンソースです。Gitサブモジュールとして12個のRustアルゴリズムクレート、それらすべてをディスパッチするAxum HTTPバックエンド、そしてインタラクティブな効率的フロンティアチャートと並列比較テーブルを備えたNext.jsフロントエンドがあります。次のことができます。
- portfolio-optimizer.marketmaker.cc でライブで試す — 資産、日付範囲、アルゴリズムを選択し、ウェイトとフロンティアの更新を観察します。
- Compare Methods タブを開いて、12種類すべてを同一の価格で一度に実行します。
- ご自身のRustプロジェクトで任意の単一クレート(
portfolio-hrp、portfolio-ncoなど)に依存します。
まとめ
- 普遍的に最適な最適化アルゴリズムは存在しない。 適切な選択は、リターン推定値をどれだけ信頼するかによって異なります。信頼するなら → MVO/ブラック・リッターマン。信頼しないなら → HRPとその仲間たち。
- MVOは最適だが脆弱である。 効率的フロンティアを定義するが、推定誤差を最大化する。入力が本当に信頼できるものでない限り、そのウェイトは疑ってかかるべきです。
- 階層的手法は、ピークパフォーマンスを安定性と引き換えにする。 単一のバックテストでトップになることは稀ですが、破綻することも稀です。これは将来が未知である場合に実際に重要なことです。
- 統一されたインターフェースは超能力である。 すべてのアルゴリズムが
prices -> weightsとなれば、正直な比較にコストはかからず、切り替えも自由です。
12のアルゴリズムを理解する最良の方法は、それらが議論するのを観察することです。実際に興味のある資産で比較を実行してみてください。
参考文献
- 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/ja/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.