NidoSokoGoldLong¶
EA0265_NidoSokoGoldLong_v1.0 / 🧪 候補 — 生成済み・検証待ち
ワンライナー
15分足ダブルボトム後の押し目を、直近安値+ATRバッファで拾う順張りロング
判定: ⚫ 散(散る(検証に乗らず))
話題の手法をEA化してみたが、そもそもエントリーが成立せず検証不能。ネタとしては『動かなかった』結果。
X起点ライン(話題の手法を検証)
基本情報¶
| 項目 | 値 | 項目 | 値 | |
|---|---|---|---|---|
| シンボル | XAUUSD | エントリー種別 | price_level_touch, pattern | |
| 時間足 | M15 | エグジット | 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/NAOYA_Nfx/status/2090019840308511193
📊 バックテスト結果¶
未実行
📝 仕様書 / Specification¶
クリックで展開
EA仕様: ニド底ゴールドロング (NidoSokoGoldLong)¶
1. 原ネタ要約¶
- 投稿: @NAOYA_Nfx 2026-08-19
- 「GOLD、大きく来るぞ」と強気。15分足でダブルボトム出現を確認し、「4365.23付近で押し目買い」を狙うという内容。
- エンゲージ: いいね77 / リポスト6。具体価格を出して「厳選した位置」と言い切るスタイルが反応されたと推定。
- 参考価格4365.23は当時の絶対価格。本EAではそのまま使わず、市場構造に抽象化する。
2. 戦略概要¶
15分足でダブルボトム(二重底)を形成した後、直近のスイング安値圏への押し目タッチをATRバッファ付きで拾い、上昇トレンド転換を狙う順張りロングEA。 ツイートの「大きく来るぞ」を、ダブルボトム確認後の押し目買いとして機械化する。
3. 戦略抽象化¶
- 「4365.23付近」は「直近20本のスイング安値 + ATR(14)のバッファ」に置き換える。
- 「ダブルボトム出現」は「過去20本以内に安値が2回同じ価格帯に存在した」という構造に置き換える。
- 絶対価格に依存せず、いつの時代のXAUUSDでも機能する。
4. シンボル・時間足¶
- Symbol: XAUUSD
- Timeframe: M15
- Direction: long_only
- エントリー判定はM15確定足のみで行う。
5. エントリー条件¶
5.1 事前状態(bar[2]以前、確定済み)¶
- 直近20本以内にスイング安値SwingLowが存在し、その後一度反発している。
- 同じSwingLow近辺(ATR(14)*0.25以内)に再度下落しており、ダブルボトム的構造が完成している。
- 安値形成が2回確認できることで「4365.23付近」の価格帯が意識された安値ゾーンとみなす。
5.2 トリガー(bar[1]の確定足)¶
- Low[1] <= SwingLow + ATR(14)[1] * 0.25 + TouchTolerancePrice(0.5) … 安値ゾーンへヒゲタッチ
- Close[1] > SwingLow - ATR(14)[1] * 0.25 … 終値ではゾーンを下抜けしていない
- 両方が成立したら bar[0] で成行買い(リアルタイムエントリーを確定足エントリーに変換)
- トリガーはClose[0]やHigh[0]を使わない。確定したLow[1]とClose[1]のみで判定する。
5.3 フィルター(AND)¶
- スプレッド: Ask - Bid <= MaxSpreadPrice(0.5)
- トレンドフィルター: UseTrendFilter=trueの場合のみ Close[2] > EMA(50)[2] を要求。初期値はfalse(無取引回避のため)。
- ボラティリティ・パニック撤退中は新規エントリー禁止。
6. エグジット条件¶
- SL: EntryPrice - ATR(14) * 1.5
- TP: EntryPrice + ATR(14) * 2.5(RR 約1:1.67)
- 時間撤退: エントリーから32バー経過で成行クローズ(15分足で8時間相当)
- 建値移動: UseBreakeven=true、含み益がATR(14)*1.2に達したらSLをEntryPriceに移動。初期SLを不利方向には動かさない。
- ボラティリティ・パニック撤退: UseVolatilityPanicExit=true、直近ATR(14)が平均ATR(50)のPanicAtrRatio(2.0)倍を超えたら、保有ポジションを成行クローズ。
7. リスク管理¶
- RiskPercent: 0.5%(口座余剰に対して0.5%リスク)
- MaxPositions: 1
- ConsecLossCooldown: 3連敗で24時間クールダウン
- 同時ポジションは1本のみ。マーチン・ピラミッドは使用しない。
8. 汎用化ポイント¶
- 「4365.23」という価格は、その場のスイング安値+ATRバッファに抽象化した。
- ダブルボトムは「過去20本の安値圏に2回タッチした」という普遍的な価格アクションとして表現した。
- よって、XAUUSDのどの価格帯・どの時期でも同じロジックで稼働でき、過学習になりにくい。
9. Optimization Envelope¶
守るべき条件(変更禁止)¶
- エントリー判定は確定足(bar[1]以前)のみ。
- 絶対価格レベルでのエントリーは禁止。必ず相対参照(SwingLow / ATR / Donchian等)にする。
- レジームフィルターとエントリーの時間足は同一(M15)。
- ダブルボトム構造の確認(bar[2]以前)とトリガータッチ(bar[1])は時系列を分離する。
緩和してよい条件¶
- lookback_bars: 10〜30
- atr_buffer_mult: 0.1〜0.5
- TouchTolerancePrice: 0.3〜1.0
- ATR_SL_Mult: 1.0〜2.0
- ATR_TP_Mult: 1.5〜3.5
- TimeExitBars: 24〜48
最適化してよいパラメータ¶
- トレンドフィルターのEMA期間(30〜100)
- UseTrendFilterのON/OFF
- 建値移動のトリガーATR倍率(1.0〜1.8)
10. 無取引回避の設計¶
- 初期値のバッファは広め(ATR*0.25 + 0.5ドル)に設定し、タッチ頻度を確保する。
- UseTrendFilterは初期値false。厳しくなりすぎた場合はトレンドフィルターをOFFにできる。
- M15で直近20本安値へのタッチは1日数回は発生しうるため、最低取引頻度を確保しやすい。
- それでも取引が月5回未満になる場合は、lookback_barsを10まで縮小してもよい。
11. 過剰取引防止の設計¶
- 同一バーで1回のみエントリー。
- エントリー失敗後は次のバーまで待つ(連打防止)。
- 1日の最大エントリー回数: 5回まで(input指定可)。
- 3連敗で24時間クールダウン。
- スプレッドがMaxSpreadPriceを超える時間帯はエントリーしない。
12. Story Package¶
- 勝利時: 「15分足の二度底、金の押し目を拾った。#GOLD #ダブルボトム」
- 敗北時: 「4365の壁、ヒゲだけで弾かれた。でも次は違う。」
- 無取引時: 「一週間待ったけどタッチなし。金は気まぐれ。」
- 検証ログ: バックテストPF・無取引期間・スプレッド影響も公開し、改良サイクルを見せる。
13. 入力パラメータ一覧(MQL5 input)¶
MQL
// === 基本 ===
input int InpMagicNumber = 2450819; // Magic Number
input double InpRiskPercent = 0.5; // Risk Percent (0.5%)
input int InpMaxPositions = 1; // Max Positions
// === エントリー ===
input int InpEntryLookback = 20; // Lookback Bars for Swing Low
input double InpAtrBufferMult = 0.25; // Zone Buffer (ATR multiple)
input double InpTolerancePrice = 0.5; // Touch Tolerance (price)
input int InpConfirmationBars = 1; // Confirmation Bars
// === フィルター ===
input bool InpUseTrendFilter = false; // Use EMA Trend Filter
input int InpTrendEmaPeriod = 50; // Trend EMA Period
input double InpMaxSpreadPrice = 0.5; // Max Spread (price)
// === エグジット ===
input int InpAtrPeriod = 14; // ATR Period
input double InpAtrSlMult = 1.5; // SL = ATR * 1.5
input double InpAtrTpMult = 2.5; // TP = ATR * 2.5
input int InpTimeExitBars = 32; // Time Exit Bars
input bool InpUseBreakeven = true; // Use Breakeven Move
input double InpBreakevenTriggerAtr = 1.2; // Breakeven Trigger (ATR mult)
// === 防衛 ===
input bool InpUseVolatilityPanicExit = true; // Use Volatility Panic Exit
input double InpPanicAtrRatio = 2.0; // Panic ATR Ratio
// === クールダウン ===
input int InpConsecLossCooldown = 3; // Cooldown after consecutive losses
input int InpCooldownHours = 24; // Cooldown Hours
14. 実装要件(標準)¶
- 新バー検出はOnTickで前回バー番号と比較し、新バー時のみシグナル判定する。
- エントリー判定は必ずM15の確定足(bar[1])で行う。Close[0]/Open[0]/High[0]/Low[0]は使用禁止。
- 保有ポジションの管理(SL/TP更新・建値移動・パニック撤退)は毎tickで行ってよい。
- スプレッド確認はAsk-Bidで行い、Bar状態ではなくtick時に確認する。
- マジックナンバーで自EAのポジションのみ管理する。
- XAUUSDはブローカーによりDigits/Pointが異なるため、SL/TP・toleranceは必ず価格差ベースで実装し、Point固定換算にしない。
- バックオフィス検証のため、エントリー理由(ダブルボトム・タッチ・フィルター状態)をログ出力する。
免責事項
本EAは自動生成された検証用コードです。実運用可否はご自身で検証してください。
関連用語¶
— SPONSORED —