RangeTenjoShort¶
EA0231_RangeTenjoShort_v1.0 / ⚠️ FAILED — 生成失敗・修正失敗・BT不合格
ワンライナー
週間レンジ上限(直近高値)へのタッチと戻り確認で売るショート専用EA
判定: ⚫ 散(散る(検証に乗らず))
話題の手法をEA化してみたが、そもそもエントリーが成立せず検証不能。ネタとしては『動かなかった』結果。
X起点ライン(話題の手法を検証)
基本情報¶
| 項目 | 値 | 項目 | 値 | |
|---|---|---|---|---|
| シンボル | USDJPY | エントリー種別 | price_level_touch, candle_pattern | |
| 時間足 | H4 | エグジット | atr_tp_sl | |
| 方向 | short_only | 主要インジケータ | donchian_50 |
🧬 DNA 5軸¶
| primary_style | entry_mechanism | regime_target | position_logic | core_indicator_family |
|---|---|---|---|---|
range | pullback | ranging | fixed_sl | price_action |
🐦 元ネタツイート¶
https://x.com/keitakeuchi0807/status/2086411253816123662
📊 バックテスト結果¶
未実行
📝 仕様書 / Specification¶
クリックで展開
EA仕様: ドル円レンジ上限ショート(戻り売り)¶
1. 原ネタ要約¶
投稿は「来週はドル円ショート方向がメインシナリオ」と述べ、雇用統計悪化による利上げ観測後退・為替介入による円売り縮小・CPI焦点という物語に加え、テクニカルとしては「158.5付近がレンジ上限、156.7付近が下限」と整理している。結論としては「158円付近での上げどまりを確認してからのショート」を狙う内容で、明確なレンジ売りとして機械化できる。
2. 戦略概要¶
週間レンジの上限(直近高値)にタッチし、戻り確定の陰線が出た翌バーで売りエントリーする。SLは天井の上にATR倍率で置き、TPはATR倍率でレンジ方向を狙う。逆張りレンジ戦略のため、独立したADXレジームフィルターとボラティリティ恐慌撤退を標準装備する。
3. 戦略抽象化¶
投稿の158.5円という価格は固定値にせず、直近50本の最高値(Donchian upper)として相対参照する。156.7円の下限も直近50本の最安値(Donchian lower)として扱う。これにより介入という特別な物語が無くなっても、レンジ上限での戻り売りという市場構造は別の日・別の価格帯でも成立する。
4. シンボル・時間足¶
- Symbol: USDJPY
- Timeframe: H4(週次・日次のレンジを捉えるスイング寄り。代替はH1/D1)
- Direction: short_only
5. エントリー条件¶
確定足のみで判定する。
事前状態(bar[2]以前): - DonchianUpper = 直近50本の最高値(bar[1]を含まない過去50本) - DonchianLower = 直近50本の最安値(bar[1]を含まない過去50本) - レンジ幅確認: DonchianUpper - DonchianLower >= ATR(14) * 2.0 - UseADXRangeFilter が true のとき: ADX(14) < 35(エントリーと独立したレジーム)
トリガー(bar[1]確定足): - High[1] >= DonchianUpper - ATR(14) * AtrBufferMult (天井ゾーンへのタッチ) - Close[1] < DonchianUpper (天井を終値では越えない=戻り確認) - Close[1] < Open[1] (陰線)
エントリー: - 翌 bar[0] のオープンで成行売り - スプレッドが MaxSpreadPips 以下の場合のみ発注 - Close[0]/Open[0]の確定値はエントリー判定に使わない
6. エグジット条件¶
- SL: EntryPrice + ATR(14)[1] * AtrSLMult
- TP: EntryPrice - ATR(14)[1] * AtrTPMult
- Time Exit: TimeExitBars 本(H4で24本=4日)超えたら成行決済
- 代替: DonchianLower 到達で利確(level_based)
- 建値移動: UseBreakeven は range 戦略のため初期値 false。有効時は BreakevenTriggerATR=1.5 でSLをエントリー価格へ移動。
7. リスク管理¶
- RiskPercent: 0.5(1回の損失を口座の0.5%以内に)
- MaxPositions: 1
- ConsecLossCooldown: 3連敗で CooldownHours=24時間休止
- ReentryCooldownBars: 損切り後、同じ天井ゾーンへの再エントリーは12本禁止
- UseVolatilityPanicExit: true(既定)
- ATR(14) > averageATR(50) * PanicAtrRatio(2.0) を検出したら確定足ベースで全決済
- UseADXRangeFilter: true(既定)で強いトレンド相場の逆張りを回避
8. 汎用化ポイント¶
投稿の158.5円・156.7円という価格はその時点のレンジ境界であり、EAの本質は「レンジ上限で売り、下限へ戻る」という行動である。DonchianとATRで相対化することで、USDJPYのどの価格帯・どの時期でも同じ構造を再現できる。「介入」という固有の理由が消えても、レンジ上限の戻り売りという行動は残る。
9. Optimization Envelope¶
必ず守る条件: - シグナルは bar[1] の確定足のみで判定すること - 固定価格のハードコード禁止(Donchian/ATR/直近高安で表現) - MaxPositions=1 を超えないこと - SL/TPはATR倍率または相対参照で定義すること - リスクは1%以下にすること
緩和してよい条件: - UseADXRangeFilter を false にしてレジーム制約を外す - AtrBufferMult を0.15〜0.4の範囲で調整 - LookbackBars を40〜80の範囲で調整 - AtrSLMult/AtrTPMult を ±30%程度調整
最適化してよいパラメータ: - LookbackBars: 40〜80 - AtrBufferMult: 0.15〜0.4 - AtrSLMult: 1.2〜2.0 - AtrTPMult: 1.5〜3.5
10. 無取引回避の設計¶
初期状態で2週間以上取引が無い場合: - UseADXRangeFilter を false に緩和 - AtrBufferMult を 0.15 に下げてタッチ検知を広げる - LookbackBars を 40 に縮めてレンジ境界を直近化する
バックテスト上の目安: 1ヶ月あたり2〜4回のエントリーを最低目標とする。
11. 過剰取引防止の設計¶
- 同時ポジションは1本のみ
- エグジット後の再エントリーは ReentryCooldownBars=12 本空ける
- 連敗クールダウンで連続ショットガンを防止
- ボラティリティ恐慌時は全ポジション即時撤退して無理な逆張りをしない
12. Story Package¶
X投稿フック: - 「158.5の壁は国家権力が守ってくれる説をEAにした」 - 「介入が無くてもDonchian天井は機能するのか」
ブログ見出し: - 為替介入とレンジ売りをコード化した「RangeTenjoShort」の検証記録
失敗時の見せ方: - 「介入が来なかった」「レンジがブレイクした」という結果もATRベースの損切りで機械的に説明する。ネタは当たっても外れても検証ログとして使える。
13. 入力パラメータ一覧¶
input long InpMagicNumber = 260809; input double InpRiskPercent = 0.5; input int InpLookbackBars = 50; // default (from_tweet: 158.5天井を相対参照に一般化) input int InpDonchianShift = 2; // default (bar[1]はトリガー用に除外) input double InpAtrBufferMult = 0.25; // default (from_tweet: 158円付近をbuffer付きで捉える) input int InpAtrPeriod = 14; input double InpAtrSLMult = 1.5; // default input double InpAtrTPMult = 2.5; // default input int InpTimeExitBars = 24; // default (H4で4日) input bool InpUseADXRangeFilter = true; // default input int InpADXPeriod = 14; input double InpADXMax = 35.0; // default input bool InpUseVolatilityPanicExit = true; // default input double InpPanicAtrRatio = 2.0; // default input bool InpUseBreakeven = false; // default (range戦略は基本オフ) input double InpBreakevenTriggerATR = 1.5; // default input int InpConsecLossCooldown = 3; // default input int InpCooldownHours = 24; // default input int InpReentryCooldownBars = 12; // default input double InpMaxSpreadPips = 2.5; // default
14. 実装要件¶
- 新バー確定検出で処理を開始し、同一バー内での重複エントリーを防ぐ
- エントリー判定は Close[1]/High[1]/Open[1] のみ。Close[0]/Open[0]/High[0]/Low[0] は約定・スプレッド確認だけに使う
- SL/TPは ATR(14)[1] を基準に計算し、固定価格で設定しない
- MaxSpreadPips をチェックしてから OrderSend を行う
- チャート1本につきEA1つ、Magic Number で自己管理
- 逆張り戦略のため、損切り後の感情的再エントリーを防ぐクールダウンを必ず実装する
免責事項
本EAは自動生成された検証用コードです。実運用可否はご自身で検証してください。