静的ルールが失敗した時、機械学習が私を救った
アルゴリズム取引について誰も教えてくれないことがあります。市場環境が変われば、世界最高の戦略も無価値になる。私は2018年2月、VIXが急騰した際にこの教訓を高い代償と共に学びました。3年間連続で利益を上げていた私の平均回帰システムが、8日間で23%もの損失を出したのです。
Two Sigmaに在籍していた頃、私たちは「市場には記憶があるが、統合失調症でもある」と言っていました。独立して自己資金で取引を始めた後、私は18ヶ月をかけて、後にレジーム検出フレームワークとなるものを構築しました。やりたかったからではなく、やらざるを得なかったからです。
従来のアプローチは? 異なる市場環境に応じて、異なる戦略をハードコードすることです。問題は? レジームが変わったことに気づいた時には、すでに損益は出血しているのです。真のレジーム検出は、値動きの前に行われるものであり、後ではありません。

すべてを変えた隠れマルコフモデル
2020年3月。誰もがCOVIDを「ただのインフルエンザ」と論じている間、私のレジーム検出モデルは興味深い行動を取りました。実際の暴落の10日前にあたる2月21日に、「トレンド相場」モードから「危機」モードに切り替わったのです。パンデミックを予測したからではなく、市場のマイクロストラクチャーが既に悲鳴を上げていたからです。
以下は、私のポートフォリオを救ったものを簡略化したものです:
def detect_regime(features):
# 特徴量: ボラティリティ比率、相関行列、出来高パターン
regime_probabilities = hmm_model.predict_proba(features)
if regime_probabilities['crisis'] > 0.7:
return 'defensive'
elif regime_probabilities['trending'] > 0.6:
return 'momentum'
else:
return 'mean_reversion'
魔法はモデルにあるのではなく、特徴量にあります。ほとんどのレジーム検出が失敗するのは、間違った入力を与えているからです。移動平均線? 役に立ちません。RSI? さらに悪いです。市場のマイクロストラクチャーを捉える特徴量が必要です:
- 複数時間枠にわたる実現/予想ボラティリティ比率
- クロスアセット相関行列(債券と株式が連動して動く時、レジームは変化しています)
- オーダーフロー不均衡の持続性(方向性のある圧力がどのくらい続くか)
- 日中ボラティリティのクラスタリング(恐怖は日足よりも15分足に先に現れます)
私の現在のモデルは47の特徴量を使用していますが、この4つでレジーム分類精度の71%を占めています。

実際に重要な3つのレジーム状態
7つの異なる市場レジームについて論じている学術論文は忘れてください。先物、FX、暗号資産にわたる8年分のティックデータを処理した結果、実際に損益に影響を与えるレジームは3つだけです:
1. モメンタムレジーム(市場時間の38%)
38.2%フィボナッチを下回る押し目を伴う持続的な方向性のある値動きが特徴です。相関はプラスを維持し、ボラティリティは徐々に拡大します。これはトレンドフォローが利益を生む時です。私のモメンタムアルゴはここでフルポジションサイズで稼働します。
2. 平均回帰レジーム(市場時間の49%)
ほとんどのアルゴトレーダーにとっての主要な収益源です。ボラティリティは収縮し、レンジは維持され、相関は平均回帰します。しかし、ここには落とし穴があります。このレジームには「健全なもみ合い」と「圧縮されたバネ」という2つのサブ状態があります。後者は激しい値動きの前兆です。
3. 危機レジーム(市場時間の13%)
すべての相関が1または-1になります。ボラティリティは爆発し、流動性は消滅します。伝統的な戦略はアンダーパフォームするだけでなく、崩壊します。危機レジームの間、私はポジションサイズを75%削減し、ボラティリティ・アービトラージのみに切り替えます。
重要な洞察は? レジームはクラスター化するということです。危機は73%の確率で圧縮状態に続きます。モメンタムは67%の確率で危機に続きます。この順序性が優位性を与えます。
独自のレジーム検出システムを構築する
6ヶ月分の試行錯誤を省いて差し上げましょう。以下が、実際に本番環境で機能するフレームワークです:
class RegimeDetector:
def __init__(self, lookback=252, retrain_frequency=30):
self.features = ['vol_ratio', 'correlation_eigenvalue',
'flow_persistence', 'intraday_clustering']
self.model = HiddenMarkovModel(n_states=3)
self.scaler = RobustScaler() # 外れ値の処理に優れています
def calculate_features(self, data):
# ここで魔法が起こります
features = {}
# ボラティリティレジーム
features['vol_ratio'] = data['realized_vol'] / data['implied_vol']
# 相関構造
corr_matrix = calculate_rolling_correlation(data, window=21)
features['correlation_eigenvalue'] = np.max(np.linalg.eigvals(corr_matrix))
# マイクロストラクチャー
features['flow_persistence'] = calculate_order_flow_autocorrelation(data)
return self.scaler.transform(features)
ほとんどのチュートリアルが省略する重要な部分:
- StandardScalerではなくRobustScalerを使用する。市場データには、標準的な正規化を破るファットテールがあります。
- 毎日ではなく、毎月再トレーニングする。レジームモデルはノイズへのオーバーフィッティングに敏感です。
- 最大3状態から始める。状態が多すぎると、サンプル内パフォーマンスで自分自身を欺く方法が増えます。

ほとんどのMLトレーダーを挫折させるオーバーフィッティングの罠
ここで、ML伝道者たちを怒らせることになるでしょう。取引における機械学習のほとんどは、手の込んだ曲線フィッティングです。私はサンプル内精度93%のモデルを構築しましたが、本番環境では損失を出しました。なぜか? ノイズを学習し、シグナルを学習しなかったからです。
私の最初のレジーム検出モデルは200以上の特徴量を持ち、複雑なニューラルネットワークのアンサンブルを使用していました。2008年の危機を「予測」することは完璧にできました。バックテストでは。ライブ取引では? それは一日おきにレジーム間を行ったり来たりし、アルファよりも多くの取引コストを生み出しました。
解決策はMLを減らすことではなく、よりスマートなMLを使うことです:
- 特徴量エンジニアリング > モデルの複雑さ。優れた特徴量を持つ単純なHMMは、ゴミのような入力を持つニューラルネットワークに勝ります。
- ウォークフォワード検証は譲れない。2019-2020年でトレーニングし、2021年で検証し、2022年でテストする。異なる市場サイクルに一般化できなければ、それは無価値です。
- 精度よりもレジームの安定性が重要。レジームを遅れて検出しても、そこに留まり続ける方が、ボラティリティのスパイクごとにコロコロ変わるよりはましです。
私の現在のモデルは、理論上の精度20%を犠牲にして、80%以上の安定性を得ています。このトレードオフが利益を生みます。
ライブ取引の結果:良い点、悪い点、醜い点
過去18ヶ月間のレジーム適応戦略の実際の数字について話しましょう:
良い点: 2024年10月の米国債ボラティリティ急騰時、レジーム検出器は2日前に危機モードに切り替わりました。結果は? バイ・アンド・ホールドが12%損失を出したのに対し、+8.7%の利益でした。
悪い点: 2024年夏の「もみ合いゾーン」での誤ったシグナルにより、7回の不要なレジーム切り替えが発生しました。各切り替えは、取引コストとスリッページで約0.3%のコストがかかります。これは-2.1%のデッドウェイト損失です。
醜い点: モデルは2025年1月の暗号資産フラッシュクラッシュを完全に見逃しました。なぜか? 暗号資産のマイクロストラクチャーは伝統的な市場とは異なり、私の特徴量は先物データにキャリブレーションされていたからです。手動介入前に4.2%の損失を出しました。学んだ教訓 — レジーム検出は資産クラスを問わず万能ではないということです。
全体的なパフォーマンス: 静的戦略の+19.2%に対して+31.4%。しかし、本当の価値は追加のリターンではなく、市場が異常な動きをした時にアルゴが適応することを知って、安心して眠れることです。
実際の取引システムとの統合
理論は結構です。実装こそが収入を得るものです。以下は、レジーム検出が実際の取引インフラとどのように統合されるかです:
# リスク管理レイヤー
position_size = base_size * regime_risk_multiplier[current_regime]
if current_regime == 'momentum':
active_strategies = ['trend_following', 'breakout']
disable_strategies(['mean_reversion', 'arbitrage'])
elif current_regime == 'mean_reversion':
active_strategies = ['range_trading', 'pairs']
disable_strategies(['trend_following'])
else: # crisis
active_strategies = ['volatility_arb']
reduce_all_positions(0.25)
重要な実装の詳細:
- レジーム遷移にはバッファが必要。最初のシグナルで戦略を切り替えないでください。確認のために2~3回連続した期間を必要とします。
- 戦略変更の前にポジションサイズを調整する。まずリスクを減らし、後で疑問を抱く。
- 常に「レジームニュートラル」なヘッジを維持する。私の場合は、不確実性が高い時にロング・ボラティリティにします。
FibAlgoのインジケーターを使用しているトレーダーにとって、複数時間枠のシグナルはレジーム検出とうまく補完し合います。日足チャートが追いつく前に、短い時間枠がレジームシフトと整合し始めるのを確認するのに役立ちます。

よくある失敗モードとその回避方法
私が6桁の金額を失った原因となったミスからあなたを救いましょう:
失敗モード1: 特徴量リーク
予想ボラティリティを使用してボラティリティレジームを検出するのは賢明に思えますが、IVはすでにレジームの期待を織り込んでいることに気づくでしょう。あなたは過去を予測しているのです。実現指標とマイクロストラクチャーに固執しましょう。
失敗モード2: レジーム遷移時の行ったり来たり
市場はきれいにレジームを切り替えません。常に厄介な遷移期間があります。私の解決策? 新しいレジームが安定するまでポジションを最小限に抑える「遷移状態」です。
失敗モード3: 資産固有のキャリブレーション
S&P先物でトレーニングされたレジーム検出器は、FXでは見事に失敗します。各資産クラスには独自のマイクロストラクチャーがあります。別々のモデルを構築するか、転移学習を慎重に使用してください。
失敗モード4: マクロイベントの無視
Brexitやスイスフランのペッグ解除を予測したMLモデルはありません。レジーム検出は、より速く反応するのに役立ちますが、ブラックスワンを予測するものではありません。「ありえない」イベントに対するサーキットブレーカーを常に維持してください。
適応的取引の未来
8年間レジーム検出システムを構築し、壊してきた経験から、私の逆張りの見解はこうです:未来はより複雑なモデルではなく、より速く適応するよりシンプルなモデルにある。
市場は高頻度レベルではより効率的になっていますが、日足/週足レベルではよりレジーム依存的になっています。中央銀行の介入、アルゴリズムの群れ行動、パッシブフローの支配 — これらは、シンプルな適応システムが活用できる明確なレジームを生み出します。
私の次のプロジェクト? レジーム検出と流動性加重分析を組み合わせて、レジーム遷移が完全に顕在化する前に予測することです。初期の結果では、主要なシフトに対して4~6時間の先行時間を示しています。
2026年の優位性は、最高のモデルを持つことではありません。それは、自分が間違っていることを認め、適応するモデルを持つことです。静的な戦略は死にました。適応的な振る舞いをコード化できなければ、明日の市場で昨日のツールを使って取引していることになります。
次のステップ
まずはシンプルに始めましょう。ニューラルネットワークは忘れて、相場環境の基本に集中してください:
- 主要な取引対象について、20日間の実現/インプライド・ボラティリティ比率をローリング計算する
- この比率が90日移動平均線をクロスした際の相場環境の転換点をプロットする
- 各相場環境で現在の戦略がどのように機能するかをバックテストする
- 戦略そのものを変更する前に、相場環境に基づいたポジションサイズの調整を実装する
- これが機能してから初めて、より高度な機能やモデルを追加する
覚えておいてください:相場環境の検出はツールであって、戦略ではありません。それは、どの戦略をいつ実行すべきかを教えてくれます。アルファ(超過収益)は、各相場環境に適した戦略を持ち、それらを体系的に切り替える規律から生まれます。
市場はますます予測不可能になっていくでしょう。あなたのトレーディングシステムが適応できなければ、かつては有効だったが突然機能しなくなった数多くの優れた戦略の墓場に加わることになります。Two Sigmaでは、こんな言葉もありました:「市場はあなたの損益など気にしない。」しかし、適切な相場環境の検出があれば、少なくともトラックが自分にぶつかる前にその存在に気づくことができるでしょう。


