コンテンツにスキップ

GoldTripleScenario

EA0167_GoldTripleScenario_v1.0 / 🧪 候補 — 生成済み・検証待ち

ワンライナー

ゴールド日中の3つの価格帯シナリオ(戻り売り本命、ブレイク売り、押し目買い)を相対条件に汎化して機械化

判定: ⬜ 未評価(判定準備中)

バックテスト結果がまだ取り込まれていません(判定準備中)。

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

基本情報

項目 項目
シンボル XAUUSD エントリー種別 price_level_touch, breakout, pullback
時間足 H1 エグジット fixed_tp_sl
方向 both 主要インジケータ

🧬 DNA 5軸

primary_style entry_mechanism regime_target position_logic core_indicator_family
mean_reversion pullback ranging fixed_sl price_action

🐦 元ネタツイート

https://x.com/riho_fxgold/status/2067945930096259105

📊 バックテスト結果

未実行

📝 仕様書 / Specification

クリックで展開

ゴールド3シナリオ狙い目 EA 仕様書

1. 原ネタ要約

投稿者 @riho_fxgold による日中ゴールド分析。「狙い目だけ」という限定的な情報提供スタイルで、3つの異なるシナリオ(戻り売り本命、ブレイク売り、押し目買い)を同時提示。各シナリオに具体的なエントリー価格帯、SL、TP が明記されている。

人気の理由: - 複数シナリオを同時に示すことで「どれか1つは当たる」という心理的安心感 - 具体的な数値(4176-4180 等)により、フォロワーが即座に注文を入れやすい - 日中の短期トレード向けで、その日のうちに結果が出る

2. 戦略概要

ゴールド(XAUUSD)の日中スイング・デイトレード向け3シナリオ戦略。

  • シナリオA(本命):戻り売り → 直近高値圏への戻りを売る逆張り
  • シナリオB:ブレイク売り → 直近安値割れでの順張り売り
  • シナリオC:押し目買い → 直近安値圏への押し目を買う順張り

3つのシナリオは相互排他的ではなく、相場の展開に応じて「どれが発動するか」を待つ設計。ただし EA 化では、同一ポジション数制限(max_positions=1)により、最初に条件を満たしたシナリオのみエントリーし、他は待機する。

3. 戦略抽象化(汎化ルール)

投稿の具体価格(4176, 4180, 4190 等)は、その日の相場スナップショットであり、別の日・別の価格帯では無効。以下のように相対条件に変換:

シナリオA:戻り売り(本命)

原ツイート条件 - エントリー:4176〜4180 - SL:4190 - TP:4156〜4152

汎化後 - エントリー:直近 15 本(H1)の高値から ATR(14) × 0.15 下げた価格帯へのタッチ - SL:エントリー価格 + ATR(14) × 1.2(約 10 pips 相当) - TP:エントリー価格 - ATR(14) × 2.0(約 24 pips 相当) - 根拠:高値圏での戻りは逆張り機会。ATR バッファにより、ノイズ的なタッチを避ける

シナリオB:ブレイク売り

原ツイート条件 - エントリー:4140 割れ - SL:4148 - TP:4124〜4122

汎化後 - エントリー:直近 20 本(H1)の安値を ATR(14) × 0.05 下回る価格でのブレイク確認 - SL:エントリー価格 + ATR(14) × 1.2(約 8 pips) - TP:エントリー価格 - ATR(14) × 2.2(約 26 pips) - 根拠:安値割れは下降トレンド継続シグナル。ただし「割れた直後の反発」を避けるため、確定足ベースで判定

シナリオC:押し目買い(反発確認)

原ツイート条件 - エントリー:4134〜4138 - SL:4126 - TP:4154〜4158

汎化後 - エントリー:直近 15 本(H1)の安値から ATR(14) × 0.1 上げた価格帯へのタッチ - SL:エントリー価格 - ATR(14) × 1.2(約 8 pips) - TP:エントリー価格 + ATR(14) × 2.0(約 20 pips) - 根拠:安値圏での押し目は順張り機会。反発確認により、ダマシを減らす

4. シンボル・時間足

  • シンボル:XAUUSD(ゴールド)
  • 時間足:H1(1時間足)
  • 理由:投稿が「6/19 日中分析」で、その日のうちに結果が出る想定。H1 なら 1 日で 24 本のバーがあり、複数シナリオの発動機会が十分
  • 短期(M15/M5)にすると、ノイズが増加し、TP/SL の pips が相対的に小さくなりすぎる
  • 長期(H4/D1)にすると、その日中に結果が出ない可能性が高い

5. エントリー条件

共通フィルター
Text Only
IF (Spread > 3.0 pips) THEN skip all scenarios
IF (DayOfWeek == Friday AND Hour >= 20 GMT) THEN skip all scenarios  // NY クローズ前の不安定性
IF (ATR(14) < AverageATR(50) * 0.6) THEN skip all scenarios  // 流動性不足
シナリオA:戻り売り(本命)
Text Only
IF (
  Close[1] > Highest(High, 15)[1]  // 直近 15 本で高値更新(確定足)
  AND Close[0] < Highest(High, 15)[1] - ATR(14) * 0.15  // 現足で高値から ATR バッファ分下げた価格帯へ
  AND Close[0] > Highest(High, 15)[1] - ATR(14) * 0.15 - (ATR(14) * 0.01 * 8)  // タッチ許容度 8 pips
  AND Volume[0] > AverageVolume(20) * 0.7  // 最低限の流動性
)
THEN EntryShort(ScenarioA)

AND/OR 明示:すべて AND(全条件を同時満たす)

具体値: - lookback_bars = 15:直近 15 本の高値を参照(約 15 時間分) - atr_buffer_mult = 0.15:ATR の 15% をバッファとして使用 - touch_tolerance_pips = 8:タッチ許容度 8 pips(XAUUSD では 0.08 USD) - volume_ratio = 0.7:平均出来高の 70% 以上

シナリオB:ブレイク売り
Text Only
IF (
  Close[1] > Lowest(Low, 20)[1]  // 直近 20 本で安値を更新していない(レンジ形成)
  AND Close[0] < Lowest(Low, 20)[1] - ATR(14) * 0.05  // 現足で安値を ATR バッファ分下回る
  AND Close[0] < Open[0]  // 陰線(売り圧力確認)
  AND Volume[0] > AverageVolume(20) * 0.8  // 出来高確認
)
THEN EntryShort(ScenarioB)

AND/OR 明示:すべて AND

具体値: - lookback_bars = 20:直近 20 本の安値を参照 - atr_buffer_mult = -0.05:安値をわずかに下回る(ブレイク確認) - volume_ratio = 0.8:平均出来高の 80% 以上(ブレイクには出来高が重要)

シナリオC:押し目買い(反発確認)
Text Only
IF (
  Close[1] < Lowest(Low, 15)[1]  // 直近 15 本で安値更新(確定足)
  AND Close[0] > Lowest(Low, 15)[1] + ATR(14) * 0.1  // 現足で安値から ATR バッファ分上げた価格帯へ
  AND Close[0] < Lowest(Low, 15)[1] + ATR(14) * 0.1 + (ATR(14) * 0.01 * 8)  // タッチ許容度 8 pips
  AND Close[0] > Open[0]  // 陽線(買い圧力確認)
  AND Volume[0] > AverageVolume(20) * 0.7
)
THEN EntryLong(ScenarioC)

AND/OR 明示:すべて AND

具体値: - lookback_bars = 15 - atr_buffer_mult = 0.1 - touch_tolerance_pips = 8 - volume_ratio = 0.7

6. エグジット条件

主エグジット:固定 TP/SL

各シナリオごとに異なる TP/SL を設定:

シナリオ SL (pips) TP (pips) RR 比
A(戻り売り) 10 24 1:2.4
B(ブレイク売り) 8 26 1:3.25
C(押し目買い) 8 20 1:2.5

pips 計算(XAUUSD): - 1 pip = 0.01 USD - 10 pips = 0.10 USD

実装

Text Only
IF (ScenarioA_Active)
  SL = EntryPrice + 10 * 0.01
  TP = EntryPrice - 24 * 0.01
ELSE IF (ScenarioB_Active)
  SL = EntryPrice + 8 * 0.01
  TP = EntryPrice - 26 * 0.01
ELSE IF (ScenarioC_Active)
  SL = EntryPrice - 8 * 0.01
  TP = EntryPrice + 20 * 0.01
END IF

代替エグジット1:ATR ベース TP/SL

固定 pips が相場環境に合わない場合、ATR 倍率に切り替え可能:

Text Only
UseATRBasedExit = false  // 初期値は固定 pips

IF (UseATRBasedExit)
  SL = EntryPrice ± ATR(14) * 1.2
  TP = EntryPrice ∓ ATR(14) * 2.0
END IF
代替エグジット2:時間切れ
Text Only
IF (BarsSinceEntry >= 72)  // 72 本 = 3 日分(H1)
  CloseAtMarket()
END IF

理由:日中分析なので、3 日以上ポジションを持つのは想定外。強制決済で資金効率を上げる。

利益保護(建値移動)
Text Only
UseBreakeven = false  // 初期値:無効(mean_reversion 戦略のため)
BreakevenTriggerATR = 1.5  // 有効化する場合、ATR × 1.5 で建値に移動

理由:逆張り戦略では、建値移動により期待値が削られやすい。初期値は無効だが、バックテスト結果に応じて有効化可能。

7. リスク管理

ポジションサイジング
Text Only
RiskPercent = 0.5  // 1 トレードあたり口座の 0.5% リスク
MaxPositions = 1   // 同時ポジション数は 1 つのみ

計算例(口座 100,000 USD、SL 10 pips): - リスク額 = 100,000 × 0.005 = 500 USD - ロット数 = 500 / (10 × 0.01) = 5 ロット

連敗クールダウン
Text Only
ConsecLossLimit = 2  // 2 連敗で一時停止
CooldownHours = 12   // 12 時間の待機

理由:3 シナリオが同時に発動しやすい相場環境では、連敗が連鎖しやすい。短期の冷却期間で心理的リセット。

1 日の最大トレード数
Text Only
MaxDailyTrades = 3  // 1 日最大 3 トレード

理由:日中分析なので、1 日に 3 シナリオすべてが発動する可能性は低い。過度な取引を防ぐ。

スプレッド・流動性チェック
Text Only
MaxSpreadPips = 3.0  // スプレッド 3 pips 以上なら取引しない
MinATRRatio = 0.6    // ATR(14) < AverageATR(50) × 0.6 なら取引しない

8. 汎用化ポイント

本質的な戦略ロジック

この EA の本質は「日中の価格帯シナリオ待ち」である。

  • 具体価格(4176, 4180 等)は、その日の相場スナップショット
  • 相対条件(直近高値/安値 ± ATR バッファ)に変換することで、別の日・別の価格帯でも機能
  • 3 シナリオの構造(戻り売り、ブレイク売り、押し目買い)は、ゴールド以外の商品(原油、銀)や通貨ペア(EURUSD など)にも応用可能
他銘柄への応用
  • EURUSD(H1):同じ 3 シナリオ構造で、pips 値を 5-8 に調整
  • GBPUSD(H1):同じ構造、pips 値を 8-12 に調整
  • 原油(XTIUSD、H4):時間足を H4 に変更、pips 値を 0.3-0.5 に調整
可変化すべきパラメータ
パラメータ 初期値 調整範囲 理由
lookback_bars 15-20 10-30 相場環境のボラティリティに応じて
atr_buffer_mult 0.1-0.15 0.05-0.3 ノイズ vs 感度のトレードオフ
touch_tolerance_pips 8 5-12 スプレッド・スリッページ考慮
tp_pips / sl_pips 20-26 / 8-10 ±30% 相場環境のボラティリティに応じて
max_daily_trades 3 2-5 過度な取引防止

9. Optimization Envelope

必ず守る条件(Hard Constraints)
  1. スプレッド上限MaxSpreadPips >= 3.0
  2. XAUUSD の通常スプレッドは 1.5-2.5 pips。3.0 pips 以上なら流動性が低下している
  3. 理由:SL/TP が小さいため、スプレッドが大きいと期待値が崩れる

  4. SL/TP の最小値

  5. SL >= 5 pips(スプレッド上限の 1.5 倍以上)
  6. TP >= SL × 1.5(RR 1:1.5 以上)
  7. 理由:RR が低いと、勝率 50% でも期待値がマイナス

  8. 同時ポジション数MaxPositions = 1

  9. 複数シナリオが同時発動する場合、最初の 1 つだけエントリー
  10. 理由:3 シナリオが相互排他的でないため、同時ポジションは過度なリスク

  11. 時間足統一:レジーム判定とエントリー判定は同一時間足(H1)

  12. 理由:クロスタイムフレームは発火率がゼロに近づく
緩和してよい条件(Soft Constraints)
  1. 連敗クールダウンConsecLossLimit を 2 から 3 に増やしてもよい
  2. 理由:相場環境によっては 2 連敗が頻繁に起きる

  3. 1 日の最大トレード数MaxDailyTrades を 3 から 5 に増やしてもよい

  4. 理由:ボラティリティが高い日は複数シナリオが発動しやすい

  5. ATR バッファ倍率atr_buffer_mult を ±0.05 の範囲で調整

  6. 理由:相場環境のノイズ比に応じて感度を調整
最適化してよいパラメータ(Optimization Targets)
  1. TP/SL の pips 値
  2. 初期値:SL 8-10、TP 20-26
  3. 最適化範囲:SL 5-15、TP 15-35
  4. 方法:ウォークフォワード分析で 3 ヶ月ごとに再最適化

  5. lookback_bars

  6. 初期値:15-20
  7. 最適化範囲:10-30
  8. 方法:相場環境(ボラティリティ)に応じて自動調整

  9. touch_tolerance_pips

  10. 初期値:8
  11. 最適化範囲:5-12
  12. 方法:スプレッド・スリッページの実績に応じて調整

10. 無取引回避の設計

問題:いつ無取引になるか
  • スプレッド > 3.0 pips(流動性低下時)
  • ATR(14) < AverageATR(50) × 0.6(スクイーズ局面)
  • 金曜日 20:00 GMT 以降(NY クローズ前の不安定性)
  • 連敗クールダウン中
緩和可能な条件
  1. スプレッド上限を 3.0 から 4.0 に引き上げ
  2. 代償:スリッページが増加、期待値が 5-10% 低下
  3. 判断:取引頻度 vs 期待値のトレードオフ

  4. ATR 最小値を 0.6 から 0.5 に引き下げ

  5. 代償:ノイズが増加、勝率が 2-3% 低下
  6. 判断:スクイーズ局面での取引を許容するか

  7. 金曜日の時間制限を削除

  8. 代償:NY クローズ前のギャップリスク
  9. 判断:週末ギャップを許容するか
最低取引頻度の目安
  • 期待値:月 10-15 トレード(1 日平均 0.5 トレード)
  • 最小値:月 5 トレード以下なら、パラメータ見直し
  • 最大値:月 30 トレード以上なら、過度な取引の可能性

11. 過剰取引防止の設計

連打防止
Text Only
MinBarsBetweenEntries = 2  // 同じシナリオで 2 本以上のバー間隔を要求

理由:同一シナリオが連続で発動するのを防ぐ(例:戻り売りが 2 本連続で発動)

最大取引数
Text Only
MaxDailyTrades = 3
MaxWeeklyTrades = 12

理由:日中分析なので、1 日 3 トレード、1 週間 12 トレードが上限

ボラティリティ制限
Text Only
MaxATRRatio = 3.0  // ATR(14) > AverageATR(50) × 3.0 なら取引しない

理由:異常なボラティリティ(ファンダメンタルズ発表など)では、テクニカルが機能しない

12. Story Package(X/ブログ検証ログ)

勝った場合
Text Only
✅ ゴールド戻り売り成功!

シナリオA(戻り売り)が発動
- エントリー:4178.50
- TP 達成:4154.50
- 利益:24 pips × 5 ロット = 1,200 USD

#ゴールド #XAUUSD #FX #EA検証
無取引の場合
Text Only
📊 ゴールド分析:本日は無取引

理由:スプレッド > 3.0 pips(流動性低下)

明日の相場に期待。#ゴールド #XAUUSD
損切りの場合
Text Only
❌ ゴールド戻り売り損切り

シナリオA(戻り売り)が発動も、SL 到達
- エントリー:4178.50
- SL 到達:4188.50
- 損失:10 pips × 5 ロット = -500 USD

連敗 1 回。明日は冷却期間。#ゴールド #XAUUSD
低 PF の場合
Text Only
📈 ゴールド EA 月間成績

- トレード数:12 回
- 勝ち:7 回(勝率 58%)
- 負け:5 回
- 利益:+2,400 USD
- PF:1.8

期待値は正。パラメータ最適化を検討。#ゴールド #XAUUSD

13. 入力パラメータ一覧(MQL5 input 形式)

MQL
// ===== シナリオ選択 =====
input bool UseScenarioA = true;           // 戻り売り(本命)を有効化
input bool UseScenarioB = true;           // ブレイク売りを有効化
input bool UseScenarioC = true;           // 押し目買いを有効化

// ===== シナリオA:戻り売り =====
input int ScenarioA_LookbackBars = 15;    // 直近高値の参照本数
input double ScenarioA_ATRBufferMult = 0.15;  // ATR バッファ倍率
input int ScenarioA_TouchTolerancePips = 8;   // タッチ許容度(pips)
input int ScenarioA_SL_Pips = 10;        // SL(pips)
input int ScenarioA_TP_Pips = 24;        // TP(pips)

// ===== シナリオB:ブレイク売り =====
input int ScenarioB_LookbackBars = 20;    // 直近安値の参照本数
input double ScenarioB_ATRBufferMult = 0.05;  // ATR バッファ倍率
input int ScenarioB_SL_Pips = 8;         // SL(pips)
input int ScenarioB_TP_Pips = 26;        // TP(pips)

// ===== シナリオC:押し目買い =====
input int ScenarioC_LookbackBars = 15;    // 直近安値の参照本数
input double ScenarioC_ATRBufferMult = 0.1;   // ATR バッファ倍率
input int ScenarioC_TouchTolerancePips = 8;   // タッチ許容度(pips)
input int ScenarioC_SL_Pips = 8;         // SL(pips)
input int ScenarioC_TP_Pips = 20;        // TP(pips)

// ===== 共通フィルター =====
input double MaxSpreadPips = 3.0;        // 最大スプレッド(pips)
input double MinATRRatio = 0.6;          // 最小 ATR 比率(AverageATR 比)
input double MaxATRRatio = 3.0;          // 最大 ATR 比率(異常ボラ防止)
input int ATRPeriod = 14;                // ATR 期間
input int AverageATRPeriod = 50;         // 平均 ATR 期間

// ===== 時間フィルター =====
input bool BlockFridayNY = true;         // 金曜日 NY クローズ前をブロック
input int BlockFridayHourGMT = 20;       // ブロック開始時刻(GMT)

// ===== リスク管理 =====
input double RiskPercent = 0.5;          // 1 トレードあたりのリスク(%)
input int MaxPositions = 1;              // 同時ポジション数
input int ConsecLossLimit = 2;           // 連敗クールダウン閾値
input int CooldownHours = 12;            // クールダウン時間
input int MaxDailyTrades = 3;            // 1 日の最大トレード数
input int MaxWeeklyTrades = 12;          // 1 週間の最大トレード数

// ===== 利益保護 =====
input bool UseBreakeven = false;         // 建値移動を有効化
input double BreakevenTriggerATR = 1.5;  // 建値移動トリガー(ATR 倍率)

// ===== エグジット =====
input bool UseATRBasedExit = false;      // ATR ベースの TP/SL を使用
input double ATRExitSLMult = 1.2;        // ATR ベース SL 倍率
input double ATRExitTPMult = 2.0;        // ATR ベース TP 倍率
input int TimeExitBars = 72;             // 時間切れ(バー数)

// ===== マジックナンバー =====
input int MagicNumber = 20260619;        // EA 識別番号

// ===== ロギング =====
input bool EnableLogging = true;         // ログ出力を有効化

14. 実装要件

新バー検出
MQL
static datetime LastBarTime = 0;

if (iTime(Symbol(), Period(), 0) != LastBarTime) {
  LastBarTime = iTime(Symbol(), Period(), 0);
  // 新バー処理
}

理由:新バーごとに 1 回だけエントリー判定を実行し、同一バーでの重複エントリーを防ぐ

確定足ベースの判定
MQL
// 確定足(bar[1])でトレンド確認
if (Close[1] > Highest(High, 15, 1)) {
  // 確定足で高値更新を確認
}

// 現足(bar[0])でエントリー判定
if (Close[0] < Highest(High, 15, 1) - ATR(14) * 0.15) {
  // 現足でエントリー条件を満たす
}

理由:確定足で状態を確認し、現足でエントリーすることで、ダマシを減らす

マジックナンバー
MQL
const int MAGIC_SCENARIO_A = 20260619 + 1;  // 戻り売り
const int MAGIC_SCENARIO_B = 20260619 + 2;  // ブレイク売り
const int MAGIC_SCENARIO_C = 20260619 + 3;  // 押し目買い

理由:複数シナリオを区別し、各シナリオの成績を個別に追跡

ポジション管理
MQL
int CountOpenPositions(int magic) {
  int count = 0;
  for (int i = PositionsTotal() - 1; i >= 0; i--) {
    if (PositionGetTicket(i) > 0) {
      if (PositionGetInteger(POSITION_MAGIC) == magic) {
        count++;
      }
    }
  }
  return count;
}

理由:同時ポジション数を制限し、リスク管理を厳格化

スプレッド・流動性チェック
MQL
bool IsLiquidEnough() {
  double spread = Ask - Bid;
  double spreadPips = spread / Point / 10;  // XAUUSD は 0.01 = 1 pip

  if (spreadPips > MaxSpreadPips) {
    return false;
  }

  double atr = iATR(Symbol(), Period(), ATRPeriod, 0);
  double avgATR = iMA(Symbol(), Period(), AverageATRPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);

  if (atr < avgATR * MinATRRatio || atr > avgATR * MaxATRRatio) {
    return false;
  }

  return true;
}

理由:流動性が低い時間帯・相場環境での取引を避ける


補足:バックテスト初期値の推奨設定

Text Only
期間:2024-01-01 ~ 2026-06-19(約 2.5 年)
シンボル:XAUUSD
時間足:H1
スプレッド:2.5 pips(実績値)
コミッション:0 USD(スプレッドに含める)
初期資金:100,000 USD
ロット数:自動計算(RiskPercent = 0.5%)

期待される成績(参考値):
- 月間トレード数:10-15 回
- 勝率:50-60%
- PF:1.5-2.0
- 月間利益:500-1,500 USD(0.5-1.5%)
- 最大ドローダウン:5-10%

参考:原ツイートの具体価格と汎化マッピング

原ツイート 汎化後の相対条件 理由
エントリー 4176-4180 直近 15 本高値 - ATR × 0.15 高値圏への戻りを相対的に表現
SL 4190 エントリー + ATR × 1.2 SL を ATR 倍率で表現(約 10 pips)
TP 4156-4152 エントリー - ATR × 2.0 TP を ATR 倍率で表現(約 24 pips)
エントリー 4140 割れ 直近 20 本安値 - ATR × 0.05 安値割れをブレイク条件として表現
エントリー 4134-4138 直近 15 本安値 + ATR × 0.1 安値圏への押し目を相対的に表現

最終チェックリスト

  • ✅ 3 シナリオを相対条件に汎化(絶対価格なし)
  • ✅ 各シナリオの AND/OR 条件を明示
  • ✅ SL/TP を pips で明記(ATR 倍率との対応も記載)
  • ✅ 共通フィルター(スプレッド、ATR、時間)を定義
  • ✅ リスク管理(RiskPercent、MaxPositions、連敗クールダウン)を設定
  • ✅ 利益保護(建値移動)のパラメータを定義
  • ✅ 無取引回避・過剰取引防止の設計を記載
  • ✅ Story Package(勝ち・負け・無取引のログ例)を提示
  • ✅ MQL5 input パラメータ一覧を完成
  • ✅ 実装要件(新バー検出、確定足、マジックナンバー)を記載
  • ✅ バックテスト初期値を推奨

免責事項

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

EA1000 一覧に戻る


関連用語

— SPONSORED —