MatteUriSniper¶
EA0316_MatteUriSniper_v1.0 / 🧪 候補 — 生成済み・検証待ち
ワンライナー
下降トレンド中の戻りを「直近スイングハイ直下のATRバンド型売りゾーン」へのタッチで拾う待機型ショート
判定: ⚫ 散(散る(検証に乗らず))
話題の手法をEA化してみたが、そもそもエントリーが成立せず検証不能。ネタとしては『動かなかった』結果。
X起点ライン(話題の手法を検証)
基本情報¶
| 項目 | 値 | 項目 | 値 | |
|---|---|---|---|---|
| シンボル | USDJPY | エントリー種別 | price_level_touch, pullback | |
| 時間足 | H4 | エグジット | atr_tp_sl | |
| 方向 | short_only | 主要インジケータ | EMA_50 |
🧬 DNA 5軸¶
| primary_style | entry_mechanism | regime_target | position_logic | core_indicator_family |
|---|---|---|---|---|
trend_follow | pullback | trending | fixed_sl | price_action |
🐦 元ネタツイート¶
https://x.com/sakura_dailyFX/status/2096572226409767229
📊 バックテスト結果¶
未実行
📝 仕様書 / Specification¶
クリックで展開
EA仕様: MatteUriSniper (待て売りスナイパー) v1.0¶
1. 原ネタ要約¶
@sakura_dailyFX の週次ドル円分析。下降トレンド中の反発に対し「上がってくるのを待って売る」という待機型の戻り売りを本命提示。具体ゾーン 156.40-156.70 / SL 157.00-157.20超え / TP 155.50・155.20-155.30。バズりポイント(いいね134)は「方向が合っていても、入る場所が悪ければ負ける」という待機の美学と、分岐(157円回復の有無)を明確に示したストーリー性。原投稿では「157円台を明確に回復してH4で定着するなら売り目線に固執しない」という反対シナリオ(押し目買いへの転換)も併記されているが、本仕様ではより具体的で機械化しやすい「戻り売り」シナリオのみを採用する。反対シナリオは本EAでは実装しない(別EA候補として原ネタ側に保持)。
2. 戦略概要¶
H4で下降トレンド(EMA50傾き負)が継続している状態で、直近スイングハイの直下に形成される「戻り待ち売りゾーン」へ価格が戻ってきた瞬間にショートする。安値を追いかけて売らず、必ず戻りを待つのが本戦略の核。ゾーン到達はヒゲタッチでも成立させるが、確定足終値がスイングハイを超えていたらダマシとして見送る。
3. 戦略抽象化(固定価格→市場構造)¶
原投稿の 156.40-156.70 は「直近高値 157.00 の直下 0.3〜0.6円」に相当する。これは「スイングハイから 0.6〜1.2 × ATR(H4) 下のバンド」として汎化する(H4 ATR ≈ 0.5円を想定すると 157.00-0.3=156.70 〜 157.00-0.6=156.40 が再現される)。SL 157.10-157.20 は「スイングハイ + 0.4×ATR ≒ エントリーから 1.0×ATR」、TP 155.30-155.50 は「直近スイングロー周辺 ≒ エントリーから 2.5×ATR」として相対化する。絶対価格は一切コードに残さない。
4. シンボル・時間足¶
- シンボル: USDJPY(1 pip = 0.01 JPY と定義)
- 時間足: H4(原投稿の主分析足。1時間足の高値切り上げ観察は「今すぐ売らない=戻り待ち」の根拠であり、エントリー待機の動機として spec に反映済み)
5. エントリー条件(short_only)¶
すべて確定足(bar[1])ベースで判定。bar[0] は約定・スプレッド確認のみに使用。
- レジームフィルター(独立家族 / ソフト): H4 EMA(50) の傾き < 0(EMA[1] < EMA[3])。価格-vs-EMA位置関係は hard gate にしない(
InpUsePriceBelowEMAinput で追加可能、初期値 false)。 - 売りゾーン定義:
- swingHigh = 直近
InpSwingLookback(=20) 本(bar[2]以降)の最高値 - zoneUpper = swingHigh - ATR(14) * InpZoneOffMin (=0.6)
- zoneLower = swingHigh - ATR(14) * InpZoneOffMax (=1.2)
- トリガー(最新確定足 bar[1]):
- High[1] >= zoneLower - touchTolerance(ヒゲのタッチも許容、tolerance = 5 pips = 0.05 JPY)
- High[1] <= zoneUpper + touchTolerance(ゾーンを大きく超えていない)
- Close[1] < swingHigh(確定足終値が直近高値割れ → ブレイク済みダマシ除外)
- 方向はショートのみ
- 発動制御: 同一ゾーンでの重複エントリー禁止(直近エントリーから swing lookback 内に同ゾーン再突入しても新規は取らない)。新バー検出時のみ判定。
6. エグジット条件¶
- 本命: ATR TP/SL
- SL = エントリー価格 + ATR(14) * InpSLMult (=1.0)
- TP = エントリー価格 - ATR(14) * InpTPMult (=2.5)(RR 1:2.5)
- 代替1: level_based(
InpExitMode = LEVEL_BASED時): TP = 直近30本スイングロー + ATR*0.2 バッファ(原投稿の「155.30-155.50 で一旦拾われる」構造の汎化) - 代替2: time_exit: InpTimeExitBars(=36) 本経過で成行決済(H4×36本=6日、週越えポジションのバックストップ)
- 建値移動: UseBreakeven=true、含み益が ATR * BreakevenTriggerATR(=1.2) に達したらSLを建値+スプレッド分へ移動。初期SLを不利方向へ広げない。breakeven は time_exit より先に判定。
7. リスク管理¶
- RiskPercent = 0.5%(SL幅からロット自動計算)
- 同時ポジション: 1(マジックナンバー単位)
- 連敗クールダウン: 3連敗で 24時間エントリー停止
- スプレッド上限: 2.5 pips(0.025 JPY)。初期SL(≈H4 ATR×1.0、 typically 30-60 pips)はスプレッドの10倍以上あり、整合OK
- 本戦略は trend_follow であり、mean_reversion 用の Volatility Panic Exit は必須ではないが、
InpUsePanicExit(PanicAtrRatio=2.5, 確定足ベース)をオプション input として用意
8. 汎用化ポイント¶
- 「特定価格 156.40-156.70 で売る」を「直近スイングハイ直下のATRバンドで売る」に変換したため、価格水準が変わっても構造(下降トレンド中のスイングハイ直下での反発試行)が同じなら発火する。別の日・別のレート帯でも「反発の終わり方」を捉え続けるのが本質。
- ATR係数でSL/TPを定義しているため、ボラティリティが変化してもリスク・リワード比(1:2.5)が保たれる。
- GBPJPY / EURUSD 等のJPYクロス・主要ペアにも
InpSymbolPrefix変更で流用可能(パラメータはすべて相対量で定義済み)。
9. Optimization Envelope¶
守る条件(変更禁止): - ショート専用・戻り待ち型であること(安値追い売りの実装は仕様違反) - 絶対価格のハードコード禁止(swing high / ATR / Donchian 等の相対参照のみ) - 確定足のみでシグナル判定(bar[0] をエントリー条件に使わない) - レジームフィルター(EMA傾き)とエントリーゾーン(スイングハイ)は別家族・同一時間足のまま維持
緩和してよい条件: - Close[1] < swingHigh のダマシ除外条件(サンプル不足時のみ、input でOFF可) - 重複エントリー禁止期間
最適化してよいパラメータ: - InpSwingLookback (10-50), InpZoneOffMin/Max (0.3-2.0, Min<Max厳守), InpTouchTolPips (3-8), InpATRPeriod (10-20), InpSLMult (0.8-2.0), InpTPMult (1.5-4.0), InpEMAPeriod (20-200), BreakevenTriggerATR (1.0-2.0), InpTimeExitBars (18-60)
10. 無取引回避の設計¶
- 戻り待ち型はエントリー頻度が低くなりがち。緩和レバーは2つ: ① InpZoneOffMax を 1.2→1.5 に広げてゾーンを厚くする、② InpTouchTolPips を 5→8 に広げる。
- 目安: 3ヶ月 IS で最低 8 取引。それでも 0-3 件の場合は InpSwingLookback を 30 に上げてスイングハイを更新しやすくする(ゾーンを相場に追従させる)。それでも無取引の場合はレジームフィルターをソフト化(EMA傾き条件を input でOFF)して検証する。ゾーン緩和を2回連続で行う場合は PF を確認してからにする(平均回帰系の知見: 入口緩和の連打は OOS 崩壊の典型パターン)。
11. 過剰取引防止の設計¶
- 新バー(H4確定)ごとに1回のみ判定
- 同一スイングゾーンでの再エントリー禁止(直近 lookback 内)
- max_positions=1、3連敗で24hクールダウン
- H4 ATR が 平均ATR(50) の 2.5 倍超のパニック局面では新規禁止(InpUsePanicExit、初期 true)
- 金曜 GMT 21:00 以降の新規禁止(週末ギャップリスク)
12. Story Package¶
- X投稿フック: 「『上がってくるのを待って売る』をEAにしたら、チャートに命令されてるみたいになった話」
- ブログ見出し: 「EA1000検証 #XXX: バズ週アナリストの戻り売りゾーン、ATRバンドに一般化したら何本拾える?」
- 失敗時の見せ方: 無取引 → 「156.40に届かずEAは指をくわえたまま。待機の美学はコードにも再現された」/低PF → 「戻り待ちのはずがダマシ戻りを拾った。ゾーン幅ATR係数の検証ログ」/コンパイル修正 → 「swing high検出のオフバイワン、恒例のやつ」など、失敗パターン自体を検証ログとして届ける
13. 入力パラメータ一覧(MQL5)¶
input long InpMagic = 906001; // Magic Number
double InpRiskPercent = 0.5; // default: リスク%/トレード
int InpMaxPositions = 1; // default
int InpConsecLossCooldown = 3; // default: 連敗クールダウン閾値
int InpCooldownHours = 24; // default
int InpSwingLookback = 20; // from_tweet: 直近高値圏(157.00)
double InpZoneOffMin = 0.6; // from_tweet: ゾーン上端 = swingHigh - ATR*0.6 (156.70相当)
double InpZoneOffMax = 1.2; // from_tweet: ゾーン下端 = swingHigh - ATR*1.2 (156.40相当)
double InpTouchTolPips = 5.0; // default: ヒゲタッチ許容 (1 pip = 0.01 JPY)
bool InpRequireCloseBelowHigh = true; // default: 確定足終値が高値割れ必須
double InpATRPeriod = 14; // default
double InpSLMult = 1.0; // from_tweet: SL=エントリー+1.0*ATR (157.10相当)
double InpTPMult = 2.5; // from_tweet: TP=エントリー-2.5*ATR (RR 1:2.5)
int InpExitMode = 0; // 0=ATR_TP_SL, 1=LEVEL_BASED(swing low), 2=TIME_EXIT
int InpSwingLowLookback = 30; // default: level_based TP 用
double InpSwingLowBufferATR = 0.2; // default
int InpTimeExitBars = 36; // default: 6日で時間切れ
bool InpUseEMARegime = true; // default: EMA50傾き<0 で下降トレンド確認
int InpEMAPeriod = 50; // default
bool InpUsePriceBelowEMA = false; // default: 追加フィルター(緩和可能)
bool InpUseBreakeven = true; // default: trend_follow系はtrue
double InpBETriggerATR = 1.2; // default
double InpMaxSpreadPips = 2.5; // default (1 pip = 0.01 JPY)
bool InpUsePanicExit = true; // default: ボラパニック新規禁止
double InpPanicAtrRatio = 2.5; // default
int InpFridayCloseGmt = 21; // default: 金曜GMT21時以降新規禁止
14. 実装要件¶
- 新バー検出は
iTime(_Symbol, PERIOD_H4, 0)の変化で行い、シグナル判定は bar[1](確定足)のみ。bar[0] の OHLC はエントリー条件に使用しない(約定価格・スプレッド確認・breakeven 管理に限定)。 - スイングハイ計算は bar[2] 以降のルックバックから(トリガー足を高値計算に含めない)。
- ロット計算: SL幅(価格差)から RiskPercent 相当のロットを算出。ブローカーの最小ロット・ロットステップ・マージン制約を尊重。
- マジックナンバー 906001 でポジション管理。EA再起動時にポジションを引き継ぎ、breakeven/クールダウン状態を復元する。
MaxSpreadPipsは価格差(0.025 JPY)に換算して比較(_Point暗黙換算に依存しない)。- 決済はすべて成行。部分決済は実装しない(TP一本勝負)。
- 金曜 GMT 21:00 以降は新規停止のみで既存ポジションは TP/SL/時間切れに委ねる。
- 本EAは short_only・H4・swing 系のため、週末をまたぐポジション許容フラグ(
InpAllowWeekendHold、初期値 true)を持たせる。
原ネタの反対シナリオ(本EAでは非実装)¶
「157円台を明確に回復してH4で定着するなら売り目線に固執しない」→ これはブレイク買い系の別EA(EA1000の別枠候補)。同一EAへの同居は行わない。
免責事項
本EAは自動生成された検証用コードです。実運用可否はご自身で検証してください。
関連用語¶
- 用語集 - ATR
- 用語集 - EMA
- 用語集 - バックテスト
- 用語集 - スプレッド
- 用語集 - pips
- 用語集 - ロット
- 用語集 - マジックナンバー
- 用語集 - ボラティリティ
- 用語集 - 平均回帰
- 用語集 - _Point