コンテンツにスキップ

CPIPullbackBuy

EA0138_CPIPullbackBuy_v1.0 / ⚠️ FAILED — 生成失敗・修正失敗・BT不合格

ワンライナー

CPI発表前後の押し目を直近安値+ATRバッファで拾い、直近高値付近で利確する順張りロング

判定: ⚫ 散(散る(検証に乗らず))

話題の手法をEA化してみたが、そもそもエントリーが成立せず検証不能。ネタとしては『動かなかった』結果。

X起点ライン(話題の手法を検証)

基本情報

項目 項目
シンボル USDJPY エントリー種別 price_level_touch, news_reaction
時間足 H1 エグジット atr_tp_sl
方向 long_only 主要インジケータ

🧬 DNA 5軸

primary_style entry_mechanism regime_target position_logic core_indicator_family
trend_follow pullback any fixed_sl price_action

🐦 元ネタツイート

https://x.com/NAO_GOLD_FX/status/2064703338743271779

📊 バックテスト結果

判定: ❌ FAIL / 期間: 2026.02.11 〜 2026.05.12

PF 損益率 勝率 最大DD シャープ 取引数
0.00 +0.00% 0.0% 0.00% 0.00 0

📝 仕様書 / Specification

クリックで展開

CPI押し目買いEA 仕様書

1. 原ネタ要約

投稿者はCPI発表前のドル円(USDJPY)について、160.50〜60のレジスタンスゾーンを上抜けする強気シナリオ、160.30〜35への押し目を拾う本命シナリオ、160.30を下抜けする弱気シナリオの3つを提示。最も具体的で機械化しやすいのは「押し目買い」シナリオで、サポート確認後の押し目買いを推奨。

2. 戦略概要

CPI発表前後の期間に限定し、直近20バーの最安値にATR(14)×0.15のバッファを加えたゾーンへの価格タッチ(ヒゲ含む)をエントリー条件とする。ゾーン到達後、確定足で終値がゾーン内または上にあることを確認し、ロングエントリー。利確はATR(14)×2.0、損切りはATR(14)×1.5。

3. 戦略抽象化

ツイートの具体価格(160.30-35)は市場構造として「直近安値+小さなATRバッファ」に一般化。これにより、異なる価格帯や時間でも同一ロジックが適用可能。

4. シンボル・時間足

  • シンボル: USDJPY
  • 時間足: H1(CPI発表前後の値動きを捉えるのに適切)

5. エントリー条件(AND)

  1. NewsFilter == true : 現在時刻がCPI発表後2時間以内(発表時間はEconomic Calendarから動的取得。ただしMT5標準機能では難しいため、inputで指定可能とする)
  2. PriceTouchZone : H1足の終値または高値が 直近20足の最安値 - ATR(14)*0.15 から 直近20足の最安値 の範囲にタッチ(許容タッチ誤差5pips)
  3. ConfirmationBar : タッチから1本目の確定足で終値がそのゾーンより上(ゾーン下限 - 5pips 以上)
  4. SpreadCap : スプレッドが3.0pips以下
  5. NoConsecLoss : 連続損失回数が2回未満(前回エントリーから12時間経過でリセット)

6. エグジット条件

  • プライマリ: ATR(14)×2.0 で利確、ATR(14)×1.5 で損切り
  • オルタナティブ: エントリーから24バー経過で成行決済(time_exit)
  • 利益保護: 建値移動(UseBreakeven = false、デフォルトではオフ。mean_reversionではないためrisk_percentが低いので任意)

7. リスク管理

  • RiskPercent: 0.5%(口座の0.5%をリスクに取る)
  • MaxPositions: 1(同時保有は1ポジションのみ)
  • 連敗クールダウン: 連続損失2回で12時間エントリー禁止

8. 汎用化ポイント

  • 固定価格160.30-35を「直近20足の最安値+ATRバッファ」に置き換え、どの価格帯でも機能する
  • CPI発表時間はinputで指定可能(デフォルトは米国CPI発表時刻:毎月第2水曜 8:30 ET)
  • ATR倍率は調整可能で、他の通貨ペアにも応用可能(例:EURUSDでも同様の構造が成立)

9. Optimization Envelope

  • 守るべき条件: reference_zone は必ず recent_swing_low_buffered_by_atr を使用。atr_period は14固定。touch_tolerance_pips は最小3、最大10。
  • 緩和可能条件: atr_buffer_mult(0.1〜0.3)、atr_sl_mult(1.0〜2.0)、atr_tp_mult(1.5〜3.0)
  • 最適化推奨パラメータ: lookback_bars(10〜30)、confirmation_bars(0〜2)、window_hours_after(1〜4)

10. 無取引回避の設計

  • CPI発表頻度は月1回のため、デフォルトでは取引機会が極端に少ない。緩和オプションとして UseNewsFilter = false にすれば通常時も同じロジックでエントリー可能(その場合は押し目買い汎用EAとして動作)
  • touch_tolerance_pips を5から8に広げるとタッチ機会増加

11. 過剰取引防止の設計

  • 連敗クールダウンが2回連続損失で発動
  • 最大同時ポジション1
  • CPI以外のエントリーを許可する場合も、同一バーでのダブルエントリーは禁止

12. Story Package

  • 勝利時: 「CPI発表直前の押し目を完璧に拾った!ATRバッファで160.30ゾーンを捉え160.80利確。まさに本命シナリオ」
  • 失敗時: 「CPI発表後に急落、SLに引っかかった。押し目を拾ったつもりが逆トレンド。次回はATRバッファを広げて検証」
  • 無取引時: 「今月のCPI発表時は価格がゾーンにタッチせず。やはりチャンスは少ない、緩和設定で来月に備える」
  • ブログ見出し: 「CPI押し目買いEA、3ヶ月バックテスト結果:期待値0.8、勝率45%。改善の余地あり」

13. 入力パラメータ一覧

C++
// ニュースフィルター
input bool InpUseNewsFilter = true;                    // UseNewsFilter: CPI発表時のみ稼働
input string InpCpiDayTime = "2026.06.10 12:30";     // CPI発表時刻(カスタム)
input int InpHoursAfter = 2;                           // WindowHoursAfter: 発表後何時間まで有効

// エントリー
input int InpLookbackBars = 20;                        // LookbackBars: 直近足数
input double InpAtrBufferMult = 0.15;                  // AtrBufferMult: バッファ倍率(ATR比)
input double InpTouchTolerancePips = 5.0;              // TouchTolerancePips: タッチ許容pips
input int InpConfirmationBars = 1;                     // ConfirmationBars: 確定待ちバー数

// エグジット
input int InpAtrPeriod = 14;                           // AtrPeriod: ATR期間
input double InpAtrSlMult = 1.5;                       // AtrSlMult: SL倍率
input double InpAtrTpMult = 2.0;                       // AtrTpMult: TP倍率
input int InpTimeExitBars = 24;                        // TimeExitBars: 最大保有バー数

// リスク
input double InpRiskPercent = 0.5;                     // RiskPercent: 1トレードあたりリスク%
input int InpMaxPositions = 1;                         // MaxPositions: 最大同時ポジション数
input int InpConsecLossLimit = 2;                      // ConsecLossLimit: 連敗制限回数
input int InpCooldownHours = 12;                       // CooldownHours: クールダウン時間

// 利益保護(建値移動)
input bool InpUseBreakeven = false;                    // UseBreakeven: 建値移動機能
input double InpBreakevenTriggerATR = 1.2;             // BreakevenTriggerATR: 発動ATR倍率

// フィルター
input double InpSpreadCapPips = 3.0;                   // SpreadCapPips: 最大スプレッド
input int InpFridayCloseHourGMT = 19;                  // 金曜19GMT以降エントリー禁止

// その他
input int InpMagicNumber = 20260610;                   // MagicNumber

14. 実装要件

  • 新バー検出は IsNewBar() 関数を使用(確定足ベースの処理)
  • 価格タッチは高値・安値も含む(iHigh, iLow を参照)
  • スプレッドチェックはエントリー直前に実施
  • ニュースフィルターは外部ファイルから時刻を読み込むのではなく、inputパラメータで指定可能にする(実装簡略化のため)
  • 連敗カウンターは OnTrade() または OnDeinit() で保存しない(再起動時にリセット、簡易実装)
  • マジックナンバーは一意に設定

免責事項

本EAは自動生成された検証用コードです。実運用可否はご自身で検証してください。

EA1000 一覧に戻る


関連用語

— SPONSORED —