コンテンツにスキップ

OilYenDipBuyer

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

ワンライナー

原油高ファンダを背景に、ドル円の押し目をATRバッファ付きで拾う順張りロング

基本情報

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

🧬 DNA 4軸

primary_style entry_mechanism regime_target position_logic
trend_follow pullback any fixed_sl

🐦 元ネタツイート

https://x.com/Yuto_Headline/status/2050131584624578696

📊 バックテスト結果

判定: ❌ FAIL / 期間: 2026.01.01 〜 2026.04.01

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

📝 仕様書 / Specification

クリックで展開

OilYenDipBuyer 仕様書

1. 原ネタ要約

投稿者は、介入らしき動きがないこと、原油高が続く限りドル円は押し目が買われる構造にあることを指摘。中東戦争・ホルムズ海峡封鎖という地政学リスクを背景に、円独歩安(ドル高・円安)がファンダメンタルズとして継続すると主張。財務省が一度介入に踏み切った以上、後戻りできない状況にあると分析。

2. 戦略概要

原油高が継続するファンダメンタルズ環境下で、ドル円の短期的な押し目(直近安値へのタッチ)をATRバッファ付きで拾い、トレンドに乗る順張りロング戦略。

3. 戦略抽象化

ツイートの「原油が下がらないとドル円は常に押し目を買われてしまう」という構造を、価格レベル依存ではなく「直近の押し目安値へのタッチ」として一般化。具体的な価格水準は用いず、ATRで動的に調整する。

4. シンボル・時間足

  • シンボル: USDJPY
  • 時間足: H1

5. エントリー条件

  • 条件: 直近20本の最安値(swing low)に、終値またはヒゲがタッチ(ATR(14)*0.2のバッファ内)
  • 確認: タッチしたバーの終了を待つ(1本確定後)
  • AND条件: スプレッドが2.5pips以下、金曜日21:00GMT以降はエントリー禁止

6. エグジット条件

  • プライマリ: ATR(14)ベースの固定SL/TP
  • SL: エントリー価格 - ATR(14)*1.5
  • TP: エントリー価格 + ATR(14)*2.5
  • 代替1: 時間切れ(48バー経過で成行決済)
  • 代替2: 建値到達後、ATR(14)*0.5のトレーリングストップ

7. リスク管理

  • リスク許容: 証拠金の0.5%を1トレードあたりの最大損失とする
  • 同時ポジション数: 1
  • 連敗クールダウン: 3連敗で24時間取引停止

8. 汎用化ポイント

  • 価格水準はハードコードせず、直近安値とATRで動的に決定
  • ファンダ要因(原油高)はフィルターとして組み込まず、トレンドフォローという形で間接的に反映
  • 別の通貨ペア(例: EURJPY, GBPJPY)でも同様の押し目買いロジックが適用可能

9. Optimization Envelope

  • 守る条件: エントリーは押し目タッチ(price_level_touch)であること、SL/TPはATRベースであること
  • 緩和してよい条件: lookback_bars(10〜30)、atr_buffer_mult(0.1〜0.5)、touch_tolerance_pips(3〜10)、atr_sl_mult(1.0〜2.0)、atr_tp_mult(2.0〜4.0)、time_exit_bars(24〜96)
  • 最適化してよいパラメータ: 上記「緩和してよい条件」の範囲内で、バックテスト期間でのPF・シャープレシオを最大化する数値

10. 無取引回避の設計

  • 緩和可能条件: lookback_barsを20から10に短縮、atr_buffer_multを0.2から0.35に拡大、touch_tolerance_pipsを5から8に拡大
  • 最低取引頻度の目安: 月に5回以上のエントリーを目標(3ヶ月のインサンプルで15回以上)

11. 過剰取引防止の設計

  • 連打防止: 1回のエントリー後、最低5バー経過するまで次のエントリー不可
  • 最大取引数: 1日あたり最大3回
  • ボラ制限: ATR(14)が直近50バーの平均ATRを下回る場合はエントリー禁止(低ボラレンジ回避)

12. Story Package

  • X投稿フック: 「原油高が止まらない限り、ドル円の押し目は買い。OilYenDipBuyerがその構造をコード化。」
  • ブログ見出し: 「ファンダをコードに落とし込む:原油高×ドル円押し目買いEAの設計と検証」
  • 失敗時の見せ方: 「原油が急落したらこのEAは機能しない。ファンダが変わればロジックも変えるべき。」

13. 入力パラメータ一覧

MQL
input double RiskPercent = 0.5;               // リスク許容率(%)
input int LookbackBars = 20;                   // 直近安値参照バー数
input double ATRBufferMult = 0.2;              // ATRバッファ倍率
input int TouchTolerancePips = 5;              // タッチ許容pips
input int ConfirmationBars = 1;                // 確定待ちバー数
input int ATRPeriod = 14;                      // ATR期間
input double ATRSLMult = 1.5;                  // ATR-SL倍率
input double ATRTPMult = 2.5;                  // ATR-TP倍率
input int TimeExitBars = 48;                   // 時間切れバー数
input double SpreadCapPips = 2.5;              // 最大スプレッド
input int MaxPositions = 1;                    // 最大ポジション数
input int ConsecLossCooldown = 3;              // 連敗クールダウン回数
input int CooldownHours = 24;                  // クールダウン時間
input int MaxTradesPerDay = 3;                 // 1日最大取引数
input int MinBarsBetweenTrades = 5;            // 取引間隔最小バー数
input int MagicNumber = 205013158;             // マジックナンバー

14. 実装要件

  • 新バー検出: OnTick()内でiTimeでバー変更を検出
  • 確定足: エントリー判定は確定した足の終値ベース
  • マジックナンバー: ユニークな値を設定(デフォルト: 205013158)
  • ポジション管理: PositionSelectByTicket + PositionGetInteger(POSITION_MAGIC)で自EAポジションのみ操作
  • スプレッドチェック: SymbolInfoInteger(_Symbol, SYMBOL_SPREAD)でエントリー前に確認
  • 時間制限: TimeCurrent()と金曜日21:00GMTの比較
  • エラーハンドリング: 注文失敗時はリトライせず、次のバーまで待機

免責事項

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

EA1000 一覧に戻る


関連用語

— SPONSORED —