Skip to content
Go back

【破産確率0%】EUR_JPY + GBP_JPY Long-only戦略の安定運用

Edit page

【破産確率0%】EUR_JPY + GBP_JPY Long-only戦略の安定運用

🔥 要約

FX自動売買システムで、従来のLong+Short(買い+売り)戦略からLong-only(買いのみ)戦略に転換したら、破産確率0%を達成しました。

衝撃の事実:

2,191日間(約6年)のバックテスト検証で、2通貨ペア(GBP_JPY + EUR_JPY)ともに**破産確率0%**を達成。2026年1月20日からプレ本番(最小ロット)で実運用を開始しました。

📖 主要な専門用語(初めての方向け)

用語意味
Long-only戦略買い(ロング)のみでトレードし、売り(ショート)を行わない手法
破産確率資金が尽きてトレードできなくなる確率(0%が理想)
バックテスト過去のデータを使って戦略を検証すること
RR比リスク・リワード比。平均利益÷平均損失(高いほど良い)
Monte Carloシミュレーション確率的シミュレーションを何千回も繰り返して将来を予測する手法
VIX市場の変動性を示す指数(「恐怖指数」とも呼ばれる)

この記事で学べること:


📊 問題発覚:Long+Short戦略の壊滅的損失

2025年12月、衝撃の発見

FX自動売買システムで、Buy(買い)とSell(売り)の両方向でトレードを実行していた従来戦略を2通貨ペアで検証したところ、衝撃的な結果が判明しました。

GBP_JPY Long+Short戦略:

EUR_JPY Long+Short戦略:

判定: 両通貨ペアとも運用不可能


🔍 原因分析:Sell戦略の致命的欠陥

Sell方向の圧倒的劣化

Long+Short戦略の内訳を分析すると、Sell方向の取引が致命的に悪いことが判明しました。

GBP_JPY Buy vs Sell比較

指標Buy取引Sell取引Sell/Buy比
トレード数7件19件2.7倍
勝率71.43% 🏆36.84%0.52倍
平均損失小さめ2.19倍巨大化
RR比3.081.220.40倍 ❌

発見: Sell取引の勝率はBuy取引の半分以下

EUR_JPY Buy vs Sell比較

指標Buy取引Sell取引Sell/Buy比
トレード数8件21件2.6倍
勝率75.00% 🏆23.81%0.32倍
平均損失標準1.40倍拡大
RR比1.330.940.71倍 ❌

発見: EUR_JPYのSell勝率はわずか23.81%(GBP_JPYよりさらに35%悪化)

なぜSell戦略は失敗したのか?

仮説1: VIX推定精度の問題

📚 ボラティリティとは? 価格変動の激しさのこと。ボラティリティが高い = 値動きが激しい、ボラティリティが低い = 値動きが穏やか。

📚 ショートスクイーズとは? 売り(ショート)ポジションを持っている投資家が、価格上昇により損切りを強いられ、その買い戻しがさらに価格を押し上げる現象。「踏み上げ」とも呼ばれます。

問題: Sell(売り)ポジションでは、相場上昇時のボラティリティ(変動性)推定が困難

結果: Stop Loss(損切り)が頻発

仮説2: 下落トレンドの検出難度

問題: 上昇トレンド検出より下落トレンド検出が難しい

結果: Sellシグナル検出頻度は高いが、精度が低い

仮説3: テクニカル指標のBuyバイアス

問題: 411個のテクニカル指標の多くはBuy方向で最適化

結果: Sellシグナル品質が構造的に劣る


💡 解決策:Long-only戦略への転換

戦略変更の決断

判断: Sell方向シグナルを完全無効化し、Buy方向のみで運用

実装:

# Sell signal detection
direction, indicators = detect_entry_direction(row)
if direction == 'Sell':
    return (None, [])  # Sellシグナルを無視
return (direction, indicators)

設定ファイルにallow_sell_signals: falseを追加し、システムレベルでSell方向を無効化。


📈 バックテスト検証結果

検証条件

📚 バックテストとは? 過去の実際の市場データを使って、トレード戦略をシミュレーションすること。「もしこの戦略で過去6年間トレードしていたら、どうなっていたか?」を検証します。

項目設定値説明
データ期間2,191日(約6.0年)2019年~2025年の実際の市場データ
初期資金基準額標準的な個人投資家の資金規模
トレードタイプSwing(数日~数週間保有)短期売買ではなく中期保有型
リスク/トレード2.0%1回のトレードで資金の2%までリスクを取る
SL/TPATR × 2.0 / 3.0損切りと利確の距離を自動計算
最大ポジション数5同時に持てるポジションは最大5つまで
MIN_TOTAL_SCORE1.9シグナル品質スコア1.9以上のみ採用

GBP_JPY 比較結果

戦略破産確率RR比勝率総損益トレード数
Long-only0.00%3.08 🏆71.43%+187% 🏆7件
Long-Short98.11% ❌1.2246.15%基準26件

改善:

特筆すべき点:

EUR_JPY 比較結果

戦略破産確率RR比勝率総損益トレード数
Long-only0.00%1.3375.00% 🏆黒字8件
Long-Short100.00%0.9437.93%赤字29件

改善:

特筆すべき点:

2通貨ペア統合分析

Long-only戦略の安定性

通貨ペア破産確率RR比勝率総損益データ期間
GBP_JPY0.00% ✅3.08 🏆71.43%大幅黒字1,020日
EUR_JPY0.00% ✅1.3375.00% 🏆黒字1,442日
合計0.00%--大幅黒字-

年間換算: 安定した収益が期待できる

Long-Short戦略の致命的欠陥

通貨ペア破産確率RR比勝率総損益判定
GBP_JPY98.11% ❌1.2246.15%わずかな黒字❌ 運用不可
EUR_JPY100.00%0.9437.93%赤字❌ 完全不合格

EUR_JPYの悪化:


🎯 Long-only戦略の優位性

1. 破産確率0%の安全性

📚 破産確率とは? 資金が尽きてトレードを続けられなくなる確率のこと。0%が理想で、5%以下なら許容範囲、10%以上は危険とされます。

📚 Monte Carloシミュレーションとは? サイコロを振るように確率的なシミュレーションを何千回も繰り返し、将来起こりうる結果を予測する数学的手法。この検証では10,000回のトレードシナリオをシミュレーションしています。

Monte Carloシミュレーション(10,000回試行)の結果:

Long-Short戦略との比較:

判定: Long-only戦略は実運用可能な唯一の選択肢

2. 高勝率の実現

通貨ペアLong-only勝率Long-Short勝率改善率
GBP_JPY71.43%46.15%+55%
EUR_JPY75.00%37.93%+98%

特筆すべき点:

3. RR比(リスク・リワード比)の改善

📚 RR比とは? Risk Reward Ratio(リスク・リワード比)の略。平均利益÷平均損失で計算されます。

通貨ペアLong-only RR比Long-Short RR比改善
GBP_JPY3.08 🏆1.22+152%
EUR_JPY1.330.94+41%

GBP_JPY RR比3.08の実践的な意味:

4. トレード数削減による精度向上

通貨ペアLong-onlyLong-Short削減率
GBP_JPY7件26件73%削減
EUR_JPY8件29件72%削減

「少なく、確実に」戦略:


🛡️ リスク管理の多層防御

破産確率0%を実現する仕組み

Long-only戦略では、以下の5層のリスク管理を実装しています。

Layer 1: シグナル品質スコアリング

Phase 3.5実装: 10種類のシグナル検出ロジックをTier分類

Tier勝率範囲重みシグナル例
Tier 150%+1.0点rsi9, ichimoku, macd, key_reversal
Tier 245-50%0.6点fibonacci, doji, point_figure
Tier 340-45%0.3点dow, lower_shadow, upper_shadow
除外<40%0.0点mtf, yorikiri(無効化)

MIN_TOTAL_SCORE = 1.9: この閾値以上のシグナルのみ取引

効果:

Layer 2: ATRベース動的SL/TP

📚 ATR(Average True Range)とは? 市場のボラティリティ(価格変動の大きさ)を測定する指標。過去14日間の平均的な値動きの幅を示します。

📚 SL/TPとは?

動的SL/TPの仕組み:

Stop Loss = Entry Price - (ATR × 2.0)
Take Profit = Entry Price + (ATR × 3.0)

効果:

Layer 3: VIX連動リスク調整

📚 VIX(Volatility Index)とは? アメリカのCBOE(シカゴ・オプション取引所)が算出する、市場の変動性を示す指数。別名「恐怖指数」。

📚 Kelly Criterionとは? 数学者ジョン・ケリーが開発した、最適なポジションサイズを計算する数式。大きすぎず小さすぎない「ちょうど良いサイズ」を自動計算します。

VIX連動の仕組み:

VIX範囲市場状態ポジションサイズKelly調整実例
< 20低ボラティリティ標準×1.50.75市場安定時は積極的
20-30通常標準0.50通常モード
30-50高ボラティリティ標準×0.50.25市場混乱時は慎重に
≥ 50極度の恐怖標準×0.20.10パニック時は超保守的

効果:

Layer 4: Circuit Breaker(自動停止機能)

📚 Circuit Breakerとは? 株式市場などで使われる「サーキットブレーカー制度」と同じ仕組み。急激な損失が発生した時に自動的にトレードを停止し、大損失の連鎖を防ぎます。電気のブレーカーが落ちて火災を防ぐのと同じイメージです。

停止条件:

  1. 日次損失5%以上: 1日で資金の5%以上を失ったら自動停止
  2. 連続3回損失: 3回連続で負けたら自動停止(冷静さを取り戻す時間を確保)
  3. 緊急停止ファイル検出: 手動で緊急停止ファイルを作成すると即座に全ポジションクローズ

効果:

Layer 5: Monte Carlo破産確率監視

📚 Monte Carloシミュレーションとは?(詳細版) モナコの有名なカジノ「モンテカルロ」にちなんで名付けられた確率計算手法。

仕組み:

  1. 勝率・RR比などの統計データから、ランダムにトレード結果を生成
  2. 「勝ち→負け→勝ち→勝け→…」というシナリオを10,000パターン作成
  3. 各シナリオで「資金が尽きたか?」を判定
  4. 破産した回数÷10,000 = 破産確率

:

リアルタイム監視の仕組み:

破産確率判定アクション
0~5%🟢 安全通常運用継続
5~10%🟡 警告Slack通知、パラメータ見直し検討
10%以上🔴 危険自動停止、戦略見直し必須

効果:


🚀 Phase 5-2実運用開始

移行判定基準

2通貨ペアをPhase 5-2(プレ)に移行するための5つの基準:

GBP_JPY Long-only判定

基準目標値結果判定
破産確率≤5%0.00%PASS
RR比≥1.53.08PASS
勝率≥35%71.43%PASS
総損益プラス大幅黒字PASS
最大DD≤10%0.08%PASS

総合判定: ✅ 5/5基準PASS - Phase 5-2移行可能

EUR_JPY Long-only判定

基準目標値結果判定
破産確率≤5%0.00%PASS
RR比≥1.51.33⚠️ 微達(-11%)
勝率≥35%75.00%PASS
総損益プラス黒字PASS
最大DD≤10%0.02%PASS

総合判定: ✅ 4/5基準PASS - Phase 5-2移行可能

RR比微達の考察:

Phase 5-2実行スケジュール

2026-01-20 ~ 2026-04-20: Phase 5-2 プレ本番(3ヶ月)
  - GBP_JPY + EUR_JPY両通貨ペア同時運用
  - Buy方向のみ実行(allow_sell_signals=False)
  - 最小ロット(10,000通貨)
  - 毎日07:00 JST自動実行

2026-02-20: 1ヶ月評価
  - シグナル検出回数確認(各通貨2件以上)
  - 勝率確認(GBP_JPY≥60%, EUR_JPY≥65%)
  - 破産確率確認(0%維持)

2026-03-20: 2ヶ月評価
  - 累計収益確認
  - 最大DD確認(≤5%)
  - システム安定性確認

2026-04-21: Phase 5-2最終判定
  - ✅ 破産確率0% + 目標達成 → Phase 5-3本番投入
  - ⚠️ 破産確率0% + 一部目標未達 → ポジションサイズ調整
  - ❌ 破産確率5%超 → 戦略見直し

Phase 5-2成功基準

基準目標値備考
破産確率0%維持許容: 5%以下
RR比GBP≥2.0, EUR≥1.2バックテスト比-30%許容
勝率GBP≥60%, EUR≥65%バックテスト比-15%許容
最大DD≤5%初期資金基準
シグナル検出月間2件以上/通貨トレード機会確保

⚠️ 想定リスクと対策

リスクシナリオ1: トレード機会不足

リスク: Long-only戦略でBuy方向シグナルが少なく、月間トレード数が期待を下回る

Phase 5-1での実例:

対策:

  1. MIN_TOTAL_SCOREを1.9 → 1.7に引き下げ(Phase 5-2中間評価で検討)
  2. GBP_JPY + EUR_JPYの2通貨ペア運用で機会分散
  3. 他通貨ペア(AUD_JPY、CAD_JPY等)のLong-only検証開始

リスクシナリオ2: VIX推定精度の悪化

リスク: Buy方向でもVIX過小評価によりStop Loss頻発

対策:

  1. VIX推定モデルの再校正(上昇局面でのボラティリティ特性見直し)
  2. SL multiplierをBuy方向で拡大(2.0 → 2.2)
  3. ATR計算期間の延長(14日 → 21日)

リスクシナリオ3: 市場環境変化

リスク: 長期下落トレンド発生により、Buy方向シグナルが全く検出されない

対策:

  1. Phase 5-2は継続(Practiceモードのため損失限定的)
  2. トレンド反転まで待機(Long-only戦略の性質上、正常動作)
  3. 他通貨ペアでBuy方向シグナルが検出される可能性あり

📊 実装の技術的詳細

Sell方向無効化の実装

設定ファイルexecution/configs/gbp_jpy_forward_test.json):

{
  "currency_pair": "GBP_JPY",
  "trade_type": "Swing",
  "allow_sell_signals": false,  // Sell方向無効化
  "min_total_score": 1.9,
  "risk_per_trade_percent": 2.0,
  "sl_atr_multiplier": 2.0,
  "tp_atr_multiplier": 3.0,
  "max_positions": 5
}

実装コードbacktest/core/backtest_engine.py):

class LongOnlyBacktestEngine(BacktestEngine):
    """Long-only(Buy方向のみ)バックテストエンジン"""

    def _detect_entry_direction(self, row) -> Tuple[Optional[str], List[str]]:
        """エントリー方向検出(Sellシグナルを無視)"""
        direction, indicators = super()._detect_entry_direction(row)

        # Sellシグナルは無視
        if direction == 'Sell':
            self.logger.debug(f"Sellシグナル検出 → Long-only戦略により無視")
            return (None, [])

        return (direction, indicators)

launchd自動実行設定

macOS launchdスケジューラーで毎日07:00 JSTに自動実行:

<key>StartCalendarInterval</key>
<dict>
    <key>Hour</key>
    <integer>7</integer>
    <key>Minute</key>
    <integer>0</integer>
</dict>

実行コマンド:

/opt/anaconda3/envs/st312/bin/python \
  /Users/XXX/systemtrade/_fxTradingEngine/execution/main_gmo_live.py \
  --mode practice \
  --currency-pair GBP_JPY \
  --trade-type Swing \
  --long-only

🎓 学んだ教訓

1. 「両方向トレード」は必ずしも正解ではない

通説: Buy+Sell両方向でトレード機会を増やせば収益向上

現実: 低品質なSellシグナルが破産確率を98%~100%まで押し上げた

教訓: トレード回数よりシグナル品質が重要

2. バックテストでの徹底検証の重要性

2,191日間(約6年)のバックテストで、Long-only vs Long-Shortを比較検証

発見:

教訓: 実運用前の長期バックテストは必須

3. 破産確率0%は実現可能

**Monte Carloシミュレーション(10,000回試行)**で破産確率0.00%を確認

必要な要素:

  1. 高品質シグナルフィルタリング(MIN_TOTAL_SCORE ≥ 1.9)
  2. 高勝率(71%~75%)
  3. 高RR比(1.33~3.08)
  4. 多層リスク管理(VIX連動、Circuit Breaker等)

教訓: 安全性と収益性は両立できる

4. 市場の非対称性を理解する

発見: FX市場(特にクロス円)では上昇と下落が非対称

戦略への影響:

教訓: 市場特性に合わせた戦略選択が重要

5. 「シグナル検出0件」は必ずしも異常ではない

Phase 5-1での経験: 8日間シグナル検出0件

原因: 全検出シグナルがSell方向(Long-only戦略により正常にブロック)

教訓: 戦略設計の正常動作とシステム障害を区別する


🔮 今後の展開

Phase 5-2完了後の判定フロー

2026-04-21: Phase 5-2最終判定
  ├─ ✅ 破産確率0% + 目標達成
  │   → Phase 5-3本番投入
  │   → ロット増量(10,000 → 50,000~100,000通貨)
  │   → 収益最大化

  ├─ ⚠️ 破産確率0% + 一部目標未達
  │   → ポジションサイズ調整
  │   → MIN_TOTAL_SCORE引き下げ(1.9 → 1.7)
  │   → Phase 5-3移行(段階的ロット増)

  └─ ❌ 破産確率5%超
      → 戦略見直し
      → VIX推定精度改善
      → Phase B追加通貨ペア検証(AUD_JPY等)

他通貨ペアへの展開

検証対象:

検証項目:

並列運用による収益拡大

Phase 5-3以降の展開:


📚 まとめ

Long-only戦略の優位性

  1. 破産確率0.00%達成: GBP_JPY、EUR_JPY両通貨ペアで安全性を実証
  2. Sell戦略の致命的欠陥: Long-Short戦略は98%~100%の破産確率で運用不可能
  3. 高勝率の実現: GBP_JPY 71.43%、EUR_JPY 75.00%
  4. 高RR比: GBP_JPY 3.08(業界トップクラス)

破産確率0%を実現する5つの要素

  1. 高品質シグナルフィルタリング: MIN_TOTAL_SCORE ≥ 1.9
  2. ATRベース動的SL/TP: 市場ボラティリティ連動
  3. VIX連動リスク調整: 市場恐怖指数でポジションサイズ自動調整
  4. Circuit Breaker: 日次損失5%で自動停止
  5. Monte Carlo破産確率監視: 10,000回シミュレーションでリアルタイム監視

次のステップ

Phase 5-2実運用中(2026-01-20 ~ 2026-04-20):

次回記事予告: 「Phase 5-2リアルタイム検証レポート - Long-only戦略3ヶ月追跡」で、実運用の成果をお届けします。


💬 読者へのメッセージ

この記事では、2,191日間(約6年)のバックテスト検証により、Long-only戦略が破産確率0%を達成した事実をお伝えしました。

重要なポイント:

FX自動売買に興味がある方、リスク管理に悩む方の参考になれば幸いです。

免責事項: この記事は過去のバックテスト結果に基づいており、将来の収益を保証するものではありません。FX取引にはリスクが伴います。投資判断は自己責任でお願いします。


📚 参考リンク


Edit page
Share this post on:

Next Post
【5日間の死闘】GMO Coin FX API ERR-5105の真犯人は二重JSON化