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. エントリー条件¶
共通フィルター¶
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:戻り売り(本命)¶
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:ブレイク売り¶
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:押し目買い(反発確認)¶
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
実装:
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 倍率に切り替え可能:
UseATRBasedExit = false // 初期値は固定 pips
IF (UseATRBasedExit)
SL = EntryPrice ± ATR(14) * 1.2
TP = EntryPrice ∓ ATR(14) * 2.0
END IF
代替エグジット2:時間切れ¶
理由:日中分析なので、3 日以上ポジションを持つのは想定外。強制決済で資金効率を上げる。
利益保護(建値移動)¶
UseBreakeven = false // 初期値:無効(mean_reversion 戦略のため)
BreakevenTriggerATR = 1.5 // 有効化する場合、ATR × 1.5 で建値に移動
理由:逆張り戦略では、建値移動により期待値が削られやすい。初期値は無効だが、バックテスト結果に応じて有効化可能。
7. リスク管理¶
ポジションサイジング¶
計算例(口座 100,000 USD、SL 10 pips): - リスク額 = 100,000 × 0.005 = 500 USD - ロット数 = 500 / (10 × 0.01) = 5 ロット
連敗クールダウン¶
理由:3 シナリオが同時に発動しやすい相場環境では、連敗が連鎖しやすい。短期の冷却期間で心理的リセット。
1 日の最大トレード数¶
理由:日中分析なので、1 日に 3 シナリオすべてが発動する可能性は低い。過度な取引を防ぐ。
スプレッド・流動性チェック¶
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)¶
- スプレッド上限:
MaxSpreadPips >= 3.0 - XAUUSD の通常スプレッドは 1.5-2.5 pips。3.0 pips 以上なら流動性が低下している
-
理由:SL/TP が小さいため、スプレッドが大きいと期待値が崩れる
-
SL/TP の最小値:
- SL >= 5 pips(スプレッド上限の 1.5 倍以上)
- TP >= SL × 1.5(RR 1:1.5 以上)
-
理由:RR が低いと、勝率 50% でも期待値がマイナス
-
同時ポジション数:
MaxPositions = 1 - 複数シナリオが同時発動する場合、最初の 1 つだけエントリー
-
理由:3 シナリオが相互排他的でないため、同時ポジションは過度なリスク
-
時間足統一:レジーム判定とエントリー判定は同一時間足(H1)
- 理由:クロスタイムフレームは発火率がゼロに近づく
緩和してよい条件(Soft Constraints)¶
- 連敗クールダウン:
ConsecLossLimitを 2 から 3 に増やしてもよい -
理由:相場環境によっては 2 連敗が頻繁に起きる
-
1 日の最大トレード数:
MaxDailyTradesを 3 から 5 に増やしてもよい -
理由:ボラティリティが高い日は複数シナリオが発動しやすい
-
ATR バッファ倍率:
atr_buffer_multを ±0.05 の範囲で調整 - 理由:相場環境のノイズ比に応じて感度を調整
最適化してよいパラメータ(Optimization Targets)¶
- TP/SL の pips 値:
- 初期値:SL 8-10、TP 20-26
- 最適化範囲:SL 5-15、TP 15-35
-
方法:ウォークフォワード分析で 3 ヶ月ごとに再最適化
-
lookback_bars:
- 初期値:15-20
- 最適化範囲:10-30
-
方法:相場環境(ボラティリティ)に応じて自動調整
-
touch_tolerance_pips:
- 初期値:8
- 最適化範囲:5-12
- 方法:スプレッド・スリッページの実績に応じて調整
10. 無取引回避の設計¶
問題:いつ無取引になるか¶
- スプレッド > 3.0 pips(流動性低下時)
- ATR(14) < AverageATR(50) × 0.6(スクイーズ局面)
- 金曜日 20:00 GMT 以降(NY クローズ前の不安定性)
- 連敗クールダウン中
緩和可能な条件¶
- スプレッド上限を 3.0 から 4.0 に引き上げ
- 代償:スリッページが増加、期待値が 5-10% 低下
-
判断:取引頻度 vs 期待値のトレードオフ
-
ATR 最小値を 0.6 から 0.5 に引き下げ
- 代償:ノイズが増加、勝率が 2-3% 低下
-
判断:スクイーズ局面での取引を許容するか
-
金曜日の時間制限を削除
- 代償:NY クローズ前のギャップリスク
- 判断:週末ギャップを許容するか
最低取引頻度の目安¶
- 期待値:月 10-15 トレード(1 日平均 0.5 トレード)
- 最小値:月 5 トレード以下なら、パラメータ見直し
- 最大値:月 30 トレード以上なら、過度な取引の可能性
11. 過剰取引防止の設計¶
連打防止¶
理由:同一シナリオが連続で発動するのを防ぐ(例:戻り売りが 2 本連続で発動)
最大取引数¶
理由:日中分析なので、1 日 3 トレード、1 週間 12 トレードが上限
ボラティリティ制限¶
理由:異常なボラティリティ(ファンダメンタルズ発表など)では、テクニカルが機能しない
12. Story Package(X/ブログ検証ログ)¶
勝った場合¶
✅ ゴールド戻り売り成功!
シナリオA(戻り売り)が発動
- エントリー:4178.50
- TP 達成:4154.50
- 利益:24 pips × 5 ロット = 1,200 USD
#ゴールド #XAUUSD #FX #EA検証
無取引の場合¶
損切りの場合¶
❌ ゴールド戻り売り損切り
シナリオA(戻り売り)が発動も、SL 到達
- エントリー:4178.50
- SL 到達:4188.50
- 損失:10 pips × 5 ロット = -500 USD
連敗 1 回。明日は冷却期間。#ゴールド #XAUUSD
低 PF の場合¶
📈 ゴールド EA 月間成績
- トレード数:12 回
- 勝ち:7 回(勝率 58%)
- 負け:5 回
- 利益:+2,400 USD
- PF:1.8
期待値は正。パラメータ最適化を検討。#ゴールド #XAUUSD
13. 入力パラメータ一覧(MQL5 input 形式)¶
// ===== シナリオ選択 =====
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. 実装要件¶
新バー検出¶
static datetime LastBarTime = 0;
if (iTime(Symbol(), Period(), 0) != LastBarTime) {
LastBarTime = iTime(Symbol(), Period(), 0);
// 新バー処理
}
理由:新バーごとに 1 回だけエントリー判定を実行し、同一バーでの重複エントリーを防ぐ
確定足ベースの判定¶
// 確定足(bar[1])でトレンド確認
if (Close[1] > Highest(High, 15, 1)) {
// 確定足で高値更新を確認
}
// 現足(bar[0])でエントリー判定
if (Close[0] < Highest(High, 15, 1) - ATR(14) * 0.15) {
// 現足でエントリー条件を満たす
}
理由:確定足で状態を確認し、現足でエントリーすることで、ダマシを減らす
マジックナンバー¶
const int MAGIC_SCENARIO_A = 20260619 + 1; // 戻り売り
const int MAGIC_SCENARIO_B = 20260619 + 2; // ブレイク売り
const int MAGIC_SCENARIO_C = 20260619 + 3; // 押し目買い
理由:複数シナリオを区別し、各シナリオの成績を個別に追跡
ポジション管理¶
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;
}
理由:同時ポジション数を制限し、リスク管理を厳格化
スプレッド・流動性チェック¶
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;
}
理由:流動性が低い時間帯・相場環境での取引を避ける
補足:バックテスト初期値の推奨設定¶
期間: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は自動生成された検証用コードです。実運用可否はご自身で検証してください。
関連用語¶
- 用語集 - バックテスト
- 用語集 - 逆張り
- 用語集 - ATR
- 用語集 - pips
- 用語集 - ロット
- 用語集 - スプレッド
- 用語集 - ボラティリティ
- 用語集 - スリッページ
- 用語集 - 勝率
- 用語集 - マジックナンバー