コンテンツにスキップ

KabeDonShort

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

ワンライナー

直近高値帯への戻りタッチをATRバッファ付きで拾う逆張りショート

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

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

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

基本情報

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

🧬 DNA 5軸

primary_style entry_mechanism regime_target position_logic core_indicator_family
mean_reversion pullback ranging fixed_sl volatility_band

🐦 元ネタツイート

https://x.com/keitakeuchi0807/status/2069730149336269012

📊 バックテスト結果

未実行

📝 仕様書 / Specification

クリックで展開

KabeDonShort (壁ドンショート) v1.0

原ネタ要約

投稿者はドル円が161円台後半で推移し、162円がなかなか抜けない状況に注目。「短期上昇傾向継続だが162円突破は難しい」と述べ、相場背景を踏まえたエントリーの考え方を紹介。多くのトレーダーが意識する162円という心理的・テクニカル抵抗線での逆張りがテーマ。

戦略概要

直近高値帯(Donchian上限など)に価格がタッチした際、ATRバッファ付きで逆張りショートエントリー。トレンド判定はオプション(ソフトフィルター)とし、基本的にはレンジ相場での逆張りを狙う。

戦略抽象化

ツイートの「162円」は具体的な絶対価格ではなく、直近の高値帯(スイングハイ)として解釈。市場参加者が意識する水平線をDonchianチャネル上限で代替し、タッチ後の押し戻りを狙う。ATRバッファによりタッチ条件を柔軟化し、長期間のバックテストで過学習を防止。

シンボル・時間足

  • シンボル: USDJPY
  • 時間足: H1(デフォルト。H4, M30でも動作可能だが、バックテストはH1で実施)

エントリー条件(AND)

  1. 高値到達: 直近20本(H1)の最大高値(Donchian上限)を計算し、価格が DonchianHigh - ATR(14) * 0.2 以内にタッチ(終値またはヒゲが範囲内)。 touch_tolerance_pips=4 により、価格が閾値を最大4pips超えてもタッチとみなす。
  2. 確認識別: 条件1成立後、次の確定足で終値がタッチゾーン内または下回っていることを確認(confirmation_bars=1)。
  3. トレンドフィルター(任意): UseTrendFilter input が true の場合、H4のEMA(50)が終値より上(下降トレンド)でなければエントリーしない。初期値は false(フィルター無効)。

エグジット条件

  • Primary: ATR倍率によるTP/SL。SL = エントリー価格 + ATR(14) * 1.5、TP = エントリー価格 - ATR(14) * 2.5(RR 約1:1.67)。
  • Alternatives:
  • Time exit: 48バー経過で成行決済。
  • Breakeven+Trail: 含み益がATR(14)1.2を超えたらSLを建値に移動、その後ATR(14)1.5のトレーリングストップを開始(初期SLをトレーリング幅として使用)。

リスク管理

  • RiskPercent: 口座残高の 0.5% を1ポジションのリスク上限に設定(デフォルト)。
  • 最大同時ポジション: 1(連続損切りクールダウンを使用するため)
  • 連敗クールダウン: 連続3回の損切り後、24時間エントリー停止。
  • 利益保護(建値移動): UseBreakeven を用意、デフォルト false(逆張りのため)。BreakevenTriggerATR = 1.5(有効化時)。

汎用化ポイント

  • 絶対価格162円を「直近20本高値+ATRバッファ」に変換したことで、任意の価格帯・任意の通貨ペアに適用可能。USDJPY以外でも、同様のレンジ相場で機能する可能性がある。
  • ATR係数やルックバック期間はパラメータとして入力可能。

Optimization Envelope

  • 必ず守る条件:
  • lookback_bars は 10〜30 の範囲(あまり短いとノイズ、長すぎると反応が遅れる)。
  • atr_sl_mult は 1.0 以上、atr_tp_mult は sl_mult の1.5倍以上。
  • スプレッドキャップは 3.0 pips 以下に設定しない(スプレッド拡大時の誤エントリー防止)。
  • 緩和してよい条件:
  • atr_buffer_mult(0.1〜0.5 で調整可、大きいほどエントリー頻度増加)。
  • touch_tolerance_pips(3〜8 pips で調整、大きいほど頻度増)。
  • confirmation_bars(0〜2、0にするとタッチ足で即エントリー、頻度増)。
  • 最適化推奨パラメータ:
  • ATR倍率系 (sl/tp/breakeven)
  • lookback_bars
  • トレンドフィルターの EMA 期間(H4用)

無取引回避の設計

  • 厳しい条件はトレンドフィルターのみ(デフォルト無効)。
  • atr_buffer_mult=0.2touch_tolerance=4 により、厳密な水平線タッチより発生頻度を確保。
  • 最低取引頻度の目安: H1通しで月に20〜40回(D1換算で週1〜2回)。

過剰取引防止の設計

  • 同一確定足での複数トリガー防止: 新バー検出後にフラグリセット。
  • 最大同時ポジション=1。
  • 連敗クールダウンで連続損切りを強制停止。
  • ボラティリティフィルター: ATR(14) が過去50本の平均ATRの60%未満の場合はエントリー抑制(UseVolatilityFilter input, default true)。

Story Package(原ネタ投稿との連動)

  • X投稿フック: 「162円壁、突破できずに跳ね返り。壁ドンショートEAが機能!」
  • ブログ見出し: 「【検証】〇〇氏の『162円は抜けない』をEA化したらどうなった?1ヶ月のバックテスト結果」
  • 失敗時の見せ方: 「突破ケースでは損切り連発。トレンドフォロー型と組み合わせるのが現実的か」
  • 検証ログ: 無取引月の分析、パラメータ最適化の試行錯誤、他の通貨ペアへの応用。

入力パラメータ一覧

C++
// === Entry ===
input int       InpLookbackBars = 20;           // 高値確認期間 (10〜50)
input double    InpAtrBufferMult = 0.2;         // ATRバッファ倍率 (0.1〜0.5)
input int       InpTouchTolerancePips = 4;      // タッチ許容pips (3〜8)
input int       InpConfirmationBars = 1;        // 確認バー数 (0〜2)

// === Exit ===
input int       InpAtrPeriod = 14;              // ATR期間
input double    InpAtrSlMult = 1.5;             // SL ATR倍率 (>=1.0)
input double    InpAtrTpMult = 2.5;             // TP ATR倍率 (>=1.5*sl)
input int       InpTimeExitBars = 48;           // 時間退出バー数

// === Risk ===
input double    InpRiskPercent = 0.5;           // 1ポジションあたりリスク(%)
input int       InpMaxPositions = 1;            // 最大同時ポジション
input int       InpConsecLossCooldown = 3;      // 連敗クールダウン回数
input int       InpCooldownHours = 24;          // クールダウン時間(時間)

// === Filters ===
input double    InpMaxSpreadPips = 2.5;         // 最大スプレッド(pips)
input bool      InpUseTrendFilter = false;      // H4 EMA50トレンドフィルター有効化
input bool      InpUseVolatilityFilter = true;  // 低ボラフィルター

// === Breakeven ===
input bool      InpUseBreakeven = false;        // 建値移動有効化
input double    InpBreakevenTriggerATR = 1.5;   // 建値移動トリガーATR倍率

// === Others ===
input int       InpMagicNumber = 20250624;      // マジックナンバー

実装要件

  • 新バー検出: NewBar() 関数で確定足のみ処理。
  • エントリーシグナル: 確定足の終値(Close[1])またはHigh/Low[1]を使用。Open[0]は使用禁止。
  • スプレッドチェック: エントリー前に MarketInfo(Symbol(), MODE_SPREAD) を確認。
  • ポジション管理: PositionSelectByMagic() で自己ポジション管理。
  • 時間フィルター: 金曜日21:00GMT以降は新規エントリー禁止(週末ギャップリスク対策)。
  • バックテストではモデル「全ティック」推奨(ヒゲタッチを正確に再現)。
  • touch_tolerance_pipsPoint 換算で実装。USDJPYの場合、1pips=0.01。

免責事項

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

EA1000 一覧に戻る


関連用語

— SPONSORED —