マルコフ連鎖を活用してトレードで勝ち続ける方法(クオンツフレームワーク)

マルコフ連鎖を活用してトレードで勝ち続ける方法(クオンツフレームワーク)

@RohOnChain
英語3 日前 · 2026年5月12日

AI features

2.9M
1.4K
203
45
4.9K

TL;DR

本書は、トレードのためのマルコフ連鎖モデルの構築方法を網羅的に解説するガイドです。遷移確率行列、多段階確率、そして隠れた市場状態を検知するための隠れマルコフモデル(HMM)について詳しく説明します。

ヘッジファンドがマルコフ連鎖を使って一貫して高確率の勝ちトレードを見つける方法を解説し、今日から構築できる正確なフレームワークを共有します。

早速本題に入りましょう。

ブックマーク推奨 — 私は Roan です。システム設計、HFT スタイルの執行、定量取引システムに取り組むバックエンド開発者です。私の仕事は、予測市場が負荷下で実際にどのように振る舞うかに焦点を当てています。提案、思慮深いコラボレーション、パートナーシップについては DM を開いています。

ほとんどのトレーダーはチャートを見て価格を認識します。クオンツは同じチャートを見て全く異なるものを見ます。彼らは状態の連続を見ます。強気、弱気、横ばい。各状態は、持続するか次の状態に遷移する確率を持っています。各遷移は、ローン債務不履行から DNA 配列、Google の元の PageRank アルゴリズムに至るまで、あらゆるものをモデル化するために使われてきた数学によって支配されています。

そのフレームワークはマルコフ連鎖と呼ばれます。そしてそれは、システムトレードにおいて最も多用途でありながら過小評価されているツールの一つです。

ほとんどの個人トレーダーがサポートラインを引き、RSI を見ている一方で、Citadel や Two Sigma のような企業の定量リサーチチームは、市場がどこにあるかだけでなく、過去の位置に基づいて次にどこへ行く可能性が最も高いかを理解するレジームスイッチングモデルを構築しています。それらのモデルの背後にある数学はまさにここから始まります。

私はすでに機械学習取引シグナルを構築するための完全なニューラルネットワーク実装フレームワークを書いています。その記事はこの記事の論理的な次のパートナーです。

この記事の終わりまでに、あなたはマルコフ連鎖とは何か、なぜそれがどの単一の指標よりも市場の振る舞いをマッピングするのか、実際の市場データから完全な状態遷移モデルを構築する方法、行列の乗算だけを使って任意の将来の市場状態の確率を計算する方法、生の価格データからライブ取引シグナルまでの完全な実装パイプライン、そしてほとんどのマルコフ連鎖モデルがライブ市場で失敗する原因となる正確な間違いを理解するでしょう。

注:この記事は意図的に長くなっています。各部分は前の部分に基づいています。あなたの取引に真の定量エッジを追加することに真剣なら、すべての単語を読んでください。近道を探しているなら、これはあなた向けではありません。

パート 1: なぜ独立性が失敗し、マルコフ連鎖が始まるのか

マルコフ連鎖で何かを構築する前に、それらが解決するために設計された根本的な問題を理解する必要があります。

ほとんどの基本的な確率モデルは独立性を仮定します。各イベントは、その前に起こったこととは無関係に扱われます。サイコロを振る。100 回目の出目は 99 回目とは何の関係もありません。各ロールは完全に独立しています。

市場はこのようには機能しません。

あなたがローンのポートフォリオをモデル化していると想像してください。各ローンは任意の時点で 4 つの状態のいずれかになります:正常、30 ~ 59 日遅延、60 ~ 89 日遅延、または 90 日以上遅延。このポートフォリオが時間とともにどのように進化するかをモデル化したいとします。そこで最も単純なアプローチを試みます。各月を独立にモデル化します。各状態の過去の分布から抽出します。

1 か月後、あなたのモデルは、先月正常だった一部のローンが現在 90 日以上延滞していると示します。

これは数学的に不可能です。ローンは 30 日間の期間に正常から 90 日以上遅延にジャンプできません。ナイーブな独立性の仮定は、現実に反するモデルを生み出しました。

これこそがマルコフ連鎖が解決する問題です。各ステップがそれ以前のすべてから独立していると仮定する代わりに、マルコフ連鎖は局所的な条件付き依存性を導入します。次の状態は現在の状態に依存します。10 ステップ前に起こったすべてには依存しません。ただ今どこにいるかだけに依存します。

形式的には、確率変数の系列 X₀, X₁, X₂, ... がマルコフ連鎖であるとは、それがマルコフ性を満たすことです:

P(Xₙ₊₁ = s | X₀, X₁, ..., Xₙ) = P(Xₙ₊₁ = s | Xₙ)

次の状態の確率は現在の状態のみに依存し、全履歴には依存しません。この単一の性質が、マルコフ連鎖を扱いやすくかつ強力にします。プロセスの本質的な依存構造を捉えながら、全履歴を追跡する必要はありません。

金融市場にとって、これは直接的に当てはまります。来月市場が強気レジームにある確率は、今月が強気、弱気、または横ばいのどのレジームにあるかに依存します。2 年前に何が起こったかには依存しません。現在の状態は、次の状態を予測するために必要なすべての関連情報を持っています。

Roan - inline image

これは便宜上の単純化ではありません。これは数学的に原理的な仮定であり、正しく適用されると、計算上扱いやすいまま、ナイーブな独立性よりも劇的に正確なモデルを生成します。

パート 2: 状態空間と遷移行列の構築

マルコフ連鎖取引モデルを構築する最初の実践的なステップは、状態を定義することです。これはほとんどの実務者が認識するよりも重要です。

金融市場では、一般的な状態定義には以下が含まれます:

ボラティリティレジーム:低ボラティリティ、中ボラティリティ、高ボラティリティ。ローリング実現ボラティリティのしきい値で定義されます。

トレンドレジーム:強気、弱気、横ばい。移動平均に対する価格の位置、または最近のリターンの符号と大きさで定義されます。

流動性レジーム:高流動性、低流動性。ビッド・アスクスプレッドまたはオーダーブックの深さで定義されます。

クレジットレジーム:リスクオン、リスクオフ。クレジットスプレッドまたはクロスアセット相関で定義されます。

具体的な最初の実装としては、3 状態の市場レジームモデルがうまく機能します。次のように定義します:

状態 0 を強気:20 日間リターンが正のしきい値を上回る。状態 1 を弱気:20 日間リターンが負のしきい値を下回る。状態 2 を横ばい:その間のすべて。

重要な要件は、状態が相互に排他的かつ集合的に網羅的でなければならないことです。すべての観測は、任意の時点で正確に 1 つの状態に分類されなければなりません。ギャップも重複もありません。

状態を定義したら、それらの間の遷移確率を推定する必要があります。これが遷移行列です。各エントリ P(i,j) は、1 タイムステップで状態 i から状態 j に移動する確率を表します。

3 状態モデルの遷移行列は次のようになります:

P = | P(0,0) P(0,1) P(0,2) | | P(1,0) P(1,1) P(1,2) | | P(2,0) P(2,1) P(2,2) |

各行は正確に 1.0 に合計されなければなりません。なぜなら、任意の状態から、システムは次のステップで何らかの状態に遷移しなければならず、同じ状態に留まることも含まれるからです。

各遷移確率の最尤推定量は非常にシンプルです。システムが状態 i から状態 j に遷移した回数を数えます。状態 i からの総遷移数で割ります:

P̂(i,j) = Count(i → j) / Count(i → any state)

これは直感的に確率を推定する方法とまったく同じです。また、マルコフ連鎖データの対数尤度関数を最大化する最尤推定量の完全な導出が生成するものと同じです。直感的な答えと数学的に厳密な答えは同じです。

完全な Python 実装は次のとおりです:

このプロセスから生成される遷移行列は、あなたの市場の地図です。各エントリは、2 つの特定のレジーム間を移動する確率を示します。それは以降のすべての基礎となります。

パート 3: 多段階遷移確率の計算

ここでマルコフ連鎖が取引ツールとして真に強力になります。

これで 1 ステップ遷移行列 P が得られました。しかし、トレーダーとして本当に知りたいのは、来月何が起こるかだけではありません。3 か月後、6 か月後、12 か月後の市場がどのようになる可能性が高いかです。今日強気レジームでスタートし、12 回の遷移後に弱気レジームに陥る確率を知りたいのです。

ここでチャップマン・コルモゴロフ方程式が登場します。これは、状態 i から状態 j への n ステップ遷移確率が、行列 P の n 乗の (i,j) エントリであることを述べています:

P^(n)(i,j) = [Pⁿ]ᵢⱼ

これだけです。任意の状態から任意の他の状態に n ステップで遷移する確率を計算するには、遷移行列を n 回掛けて、対応するエントリを読み取るだけです。

これは非常にエレガントな結果です。複数ステップにわたる状態空間を通る経路を計算する数学的複雑さのすべてが、単一の行列のべき乗に還元されます。

これがトレーダーに伝えることは具体的で実行可能です。現在強気レジームにいる場合、12 か月後もまだ強気レジームにいる確率と、弱気または横ばいに遷移している確率を定量化できるようになります。その確率は、ポジションサイジング、ヘッジの決定、戦略配分に情報を提供します。

このフレームワークから得られるもう一つの重要な出力は、定常分布です。n が非常に大きくなると、状態全体の分布は開始状態に関係なく固定ベクトル π に収束します:

π = π × P

定常分布は、市場が各レジームで費やす長期的な時間の割合を示します。実際には、π を次のように解きます:

定常分布はあなたの長期ベースラインです。定常分布が稀であると示すレジームに大きく賭ける戦略は、重大なテールリスクを負っています。長期的なレジーム比率を知ることは、戦略設計に不可欠です。

Roan - inline image

パート 4: レジームモデルから取引シグナルへ

レジームモデルを持つことは取引戦略ではありません。それを取引シグナルに変換するには、レジーム確率を具体的なポジション決定に結び付ける必要があります。

核心的な洞察はこれです:マルコフ連鎖は、各時点で将来の状態に関する確率分布を与えます。あなたの取引シグナルはその分布の関数です。

最もシンプルなアプローチは、直接的なレジームベースの配分です。モデルが強気レジームにいると示したらロング。弱気ならショートまたはフラット。横ばいならポジションサイズを減らす。

より洗練されたアプローチは、完全な確率ベクトルをポジションサイジングへの入力として使用します。現在の状態分布ベクトル π_t は、時点 t におけるレジーム全体の確率配分を表します。各レジームに対する確信度に比例したポジションを構築できます:

上記のバックテストにおけるウォークフォワード構造は重要です。各ステップで、その時点で利用可能な過去のデータのみを使用して遷移行列を再推定します。過去の確率を推定するために将来の情報を使用することは決してありません。これが現実的なバックテストと、ライブ取引で失望することが保証されているバックテストの違いです。

Roan - inline image

パート 5: 完全な実装パイプラインと重要な限界

このセクションでは、すべてを本番対応のマルコフ連鎖取引システムにまとめ、モデルがライブ市場との接触に耐えられるかどうかを決定する仮定について説明します。

完全なシステム実装:

展開する前に理解しなければならない 3 つの仮定:

1 つ目はマルコフ性そのものです。モデルは、次の状態が現在の状態のみに依存し、より長い履歴には依存しないと仮定します。実際には、市場は時々より長い範囲の依存性を示します。6 か月間続いているトレンドは、始まったばかりのトレンドとは異なる遷移確率を持つ可能性があります。状態空間に期間情報を含めることで部分的に対処できますが、これにより複雑さが大幅に増加します。

2 つ目は時間的一様性です。モデルは遷移確率が時間とともに一定であると仮定します。実際はそうではありません。強気レジームが弱気に遷移する確率は、2008 年と 2021 年では大きく異なりました。標準的な緩和策はローリングウィンドウ再推定であり、これは上記のウォークフォワードバックテストですでに見ています。短いウィンドウはより速く適応しますが、よりノイズの多い推定値を生成します。長いウィンドウはより安定した推定値を生成しますが、レジームの変化に遅れます。

3 つ目は、信頼性の高い推定に十分なデータです。最尤推定量は、より多くの遷移を観測するにつれて真の遷移確率に収束します。観測が少ない場合、特に稀な遷移の場合、推定値はノイズが多く信頼性が低くなります。遷移行列のすべてのセルが少なくとも 20 ~ 30 回の観測された遷移から推定されていることを常に確認してください。そうでない場合は、状態を統合するか、データ履歴を拡張することを検討してください。

パート 6: 隠れマルコフモデル — フレームワークをさらに進める

これまでのモデルのすべての仮定には共通点が 1 つあります。レジームが見えると仮定していたことです。

ローリングリターンを使用して各日を強気、弱気、または横ばいとラベル付けしました。しかし、レジームは直接観測可能ではありませんでした。価格から逆算したのです。それは同じことではありません。機関投資家のポジショニングが水面下で静かにシフトしているためにまだ価格に現れていない弱気レジームは、あなたの状態ラベルには完全に見えません。

これが観測可能なマルコフ連鎖の核心的な限界です。隠れマルコフモデル (HMM) がそれを修正します。

Roan - inline image

HMM では、真のレジームは観測できない隠れ状態です。観測できるのはリターン系列です。各隠れ状態は、独自の分布からリターンを生成します。強気レジームは正の平均と低い分散のリターンを生成します。弱気レジームは負の平均と高い分散のリターンを生成します。モデルは、レジーム遷移とリターン分布の両方を同時に学習します。価格データのみから、手動で日付をラベル付けすることなく。

これを機能させる 2 つのアルゴリズムがあります。

1 つ目はバウム・ウェルチです。これは観測可能なリターン系列からすべてのモデルパラメータを推定するアルゴリズムです。リターンを与えると、ラベル付きデータを必要とせずに、遷移行列、各レジームのリターン分布、開始確率を学習します。系列を前方に進めて確率を計算し、次に後方に進めてそれらを洗練し、収束するまで繰り返します。

2 つ目はビタビです。適合モデルが得られたら、ビタビは観測されたリターンを生成した最も可能性の高い隠れレジームの系列を復号します。ソフトな確率ではなく、隠れ状態空間を通る単一の最良経路を与えます。

シグナル生成はパート 4 と同じです。各ステップで、現在各レジームにいる確率を計算します。そのベクトルに遷移行列を掛けて、1 ステップ先の予測を得ます。強気確率から弱気確率を引いたものがポジションになります。

これを展開する前に留意すべき 2 つのこと。

バウム・ウェルチは大域的最大値ではなく局所的最大値を見つけます。常に複数のランダムな開始点から実行し、最も高い対数尤度を持つモデルを保持してください。デフォルトの単一初期化では、しばしば最適以下のレジーム割り当てが生成されます。

選択する出力変数は、他のどの設計上の決定よりも重要です。リターンだけでは、真の経済レジームに関する情報は限られています。リターンと実現ボラティリティ、クレジットスプレッド、VIX 期間構造を組み合わせることで、モデルにはるかに豊かなシグナルが与えられます。観測として何を供給するかの選択は、ドメイン知識が数学を強化する場所です。

観測可能なマルコフ連鎖はレジームの地図を与えました。隠れマルコフモデルは、ノイズの多いシグナルからリアルタイムでその地図を構築し、手動でラベル付けされたデータポイントを 1 つも必要としません。それが機関投資家のレジームスイッチングモデルが進んできた方向です。あなたは今、それを構築するための完全なフレームワークを持っています。

まとめ

マルコフ連鎖は未来を予測しません。それらが行うことはもっと有用なことです。現在の状態を前提として、すべての可能な将来の状態の確率を定量化します。市場レジームの数学的な地図と、それらの間を遷移する可能性を与えます。

このフレームワークは週末に完全に実装可能です。遷移行列は、数行の Python で過去のデータから推定されます。チャップマン・コルモゴロフ方程式は、単一の行列のべき乗を通じて n ステップ予測を与えます。定常分布は長期ベースラインを示します。そしてウォークフォワードバックテストは、モデルが真の予測力を持つのか、それともノイズに適合しているのかを教えてくれます。

仮定は現実的であり、重要です。時間的一様性は破られます。マルコフ性は近似です。推定誤差は常に存在します。しかし、最初のパスモデルとして、そしてより洗練された隠れマルコフモデルの拡張のための構成要素として、このフレームワークは実際の企業で本番展開され、実際のエッジを生み出してきました。

あなたは今、完全な実装を持っています。コードはこの記事にあります。数学は第一原理から説明されています。重要な限界は文書化されており、モデルがどこで失敗する可能性があるか、そしてそれらの失敗をどのように軽減するかを正確に知ることができます。

ここであなたに考えてほしい質問があります。

マルコフ連鎖モデルは、観測可能な価格行動に基づいてレジームを定義します。しかし、最も重要な市場レジーム、機関投資家が実際に取引するものは、多くの場合、信用状況、金融政策スタンス、リスク選好などの潜在的要因によって駆動され、価格データだけでは直接見えません。市場向けの隠れマルコフモデルを設計する場合、出力変数としてどのような観測可能なシグナルを使用しますか?そしてなぜですか?

答えをコメントに投稿してください。

間違った答えはありませんが、非常に示唆に富む答えはあります。

More patterns to decode

Recent viral articles

Explore more viral articles

クリエイターのために。

𝕏 のバズ記事から企画の種を見つけ、伸びた理由を分解し、次のコンテンツ案に変えましょう。