【FX自動売買開発ログ #39】DDの原因を分解できたのに、対策を組み込んだら収益が壊れた話

前回のおさらい

前回、市場を「トレンドかレンジか」で分類する方式は、Coreとの相性を判定する手段としては機能しないことが分かりました。予想に反してTrend判定の場面でCoreが負けていたためです。かわりに浮上したのが、市場を直接分類するのではなく、各理論の実際の反応から相場を逆算する「戦略適合度」という考え方でした。今回は、まずCoreのドローダウンそのものを原因別に分解し、その分解結果をもとに実際の対策プロトコルを組んでみたら、思わぬ形で行き詰まった記録です。

DD30〜40%に「慣れる」のは危険だという前提

検証を始める前に、重要な認識のすり合わせがありました。これまでの検討では最大DD30%や40%という数字が何度も出てきていますが、これを前提として慣れてしまうのは危険だ、という指摘です。バックテスト上は数値として回復できていても、実運用では途中で心理的に耐えられず、設定を変えてしまったり資金を引き揚げてしまったりする可能性が高いためです。DD18%になってから防御を始めるのでは遅く、DDが5〜10%の段階で「何が壊れているか」を判定する必要がある、という方針のもとで、Coreのドローダウンを一つの現象として扱うのをやめ、原因別に分解する作業に入りました。

大きなDDは「数日の事故」ではなく「数ヶ月続く不適合」だった

2023〜2025年のCore v4.1連続運用を調べたところ、5%以上のDD局面が27回、そのうち15%以上の主要なDDが4回ありました。最悪DDは52.27%、主要DDが谷に達するまでの中央値は約87日、そこから回復するまでの中央値は約134日です。つまり大きなドローダウンは、数日間の事故ではなく、数ヶ月単位で続く戦略と相場の不適合状態だということが、この時点で明確になりました。

4回の主要なDDを個別に見ていくと、それぞれ性質がかなり違うことが分かります。2023年1月〜2024年6月のDD(最大−52.27%)では、市場自体は期間中+19%程度上昇しており、96本ブレイク・セッション・スイングはいずれもプラスでした。悪かったのは低ボラ後ブレイクショートだけで、上昇相場の中でショートを打ち続けたことが原因です。2024年6月〜10月のDD(最大−31.45%)は市場リターン約−2%というほぼ横ばいの相場で、スイングロングだけが大幅マイナスでした。長期保有のスイングが、急激な下落・反転局面につかまった形です。2025年1月〜5月のDD(最大−37.12%)は市場リターン約−7.9%という比較的きれいな下降トレンドで、96本ブレイクとスイングがマイナス、低ボラ後ショートはプラスでした。2025年10月〜11月のDD(最大−17.39%)は市場が約+2.9%という上昇局面にもかかわらず、低ボラ後ショートと長期スイングだけがマイナスという、エンジン単位の不調でした。

これらを整理すると、Coreのドローダウンは大きく2種類に分かれることが分かります。一つは下落トレンド型(2024年夏・2025年初頭)で、ロングエンジンを縮小し、下降トレンドショートを追加することで直接利益化できる可能性が高いタイプです。もう一つはエンジン固有不調型(2023年〜2024年初頭・2025年秋)で、Core全体を止める必要はなく、不調な特定エンジンだけを停止すれば大幅に改善する可能性があるタイプです。新しい逆張り理論を追加するより、まず損失源を取り除くだけで良くなる場合がある、という発見です。

見るべきはエンジンごとの「成功条件」

ここから導かれたのが、市場全体を一つの名前(トレンド・レンジなど)で分類するのではなく、各エンジンの成功条件が現在成立しているかどうかを個別に測るべきだ、という設計方針です。たとえば96本ブレイクなら「ブレイク後に高値を維持できた割合」や「false breakout率」、セッション引継ぎなら「セッション開始後の順行率」、低ボラ後ショートなら「圧縮後に上方向へ破裂してしまった割合」、スイングロングなら「押し目成功率」といった、エンジンごとに異なる指標を見る必要がある、ということです。

DDの水準に対する考え方も更新されました。DD0〜5%は通常の変動、5〜8%で原因診断を開始、8〜12%で不調エンジンを縮小、12〜15%でチャレンジャーへ配分を移動、15%超でCore全体の稼働継続を再判定、20%超はもはや通常運用の状態ではない、という段階的な目安です。最終的な目標としても、通常運用時のDDは10〜15%、ストレス時の最大DDは20〜25%、30%への到達はシステム異常か想定外のレジームとして扱うべきだ、という基準が示されました。過去の成績が強いからといって、DD30〜50%を仕様として受け入れるのは違う、という明確な線引きです。

第1世代の適応プロトコル、結果は「失敗」

この分析をもとに、実際に動く判定プロトコルの第1案を作りました。各エンジンをバックグラウンドで常時シャドー運用し、完了済みの過去取引だけから健全(healthy)・要注意(watch)・不健全(unhealthy)を判定する仕組みです。判定には直近20取引の期待値・PF、直近10取引の累積損益、現在のCoreのDDを使い、healthyなら通常配分、watchなら60%、unhealthyなら停止、DD8%以上でwatchをさらに35%へ縮小、DD12%以上でhealthy以外を停止、DD15%以上でCore自体も縮小する、というルールにしました。あわせて、中期下降トレンドショートと、96本高値の失敗ブレイクショートという2つのチャレンジャーも追加しています。

方式3年累積最大DDPF
Core基準+234.8%48.5%1.122
エンジン健康判定のみ+44.2%30.7%1.073
健康判定+チャレンジャー−5.1%38.9%0.992
全適応プロトコル−10.5%26.4%0.963

結論から言うと、この第1案は失敗でした。DDは48.5%から26.4%まで確かに下がりましたが、収益はほぼ完全に失われています。ただし、失敗の理由はかなり明確になりました。

まず、直近20取引による判定は遅すぎたことです。エンジンが不調になってから10〜20取引が完了し、PFが低下し、unhealthy判定が出て停止するまでには、すでにかなりの損失を出した後になってしまいます。逆に、回復してからhealthyへ戻るのも遅く、好調局面の初動を逃してしまいます。取引結果だけを見て判定すると、どうしても遅行指標になりすぎる、ということです。

次に、「不調になったら停止する」という設計そのものが、Coreの最大の長所を削っていたことです。健康判定のみのモデルで、Core基準の+234.8%が+44.2%まで落ちています。DDは減ったものの、Coreの強みである回復局面・連続利益局面を大量に切り捨ててしまっていました。戦略は負けた直後から回復することも多いため、「負けたから停止する」という単純なルールは、結果として損失の後追い制御になってしまいます。

最後に、そもそも追加したショート理論自体に優位性がなかったことです。中期下降トレンドショートは91取引で純損失約−19.2万円・PF0.774、失敗ブレイクショートは474取引で純損失約−15.4万円・PF0.866でした。CoreのDD時にショートを重ねるという発想自体が間違っていたのではなく、今回定義したショートの中身に正の期待値がなかった、ということです。特に失敗ブレイクショートは取引数が多すぎて、単なる短期的な反落まで無差別に拾ってしまっていました。

次回予告

次回は、この3つの失敗理由(判定の遅さ・回復局面の取り逃し・ショート理論そのものの弱さ)を一つずつ改善しながら、第2世代の適応プロトコルを組み立てていきます。

※本シリーズは個人の技術検証・学習を目的とした開発記録であり、特定の投資手法や金融商品を推奨するものではありません。自動売買には元本割れのリスクがあり、掲載する内容を参考にした取引の結果について一切の責任を負いかねます。投資判断はご自身の責任で行ってください。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です