コンテンツにスキップ

Mean_Reversion_Grid_Trending_Moving_Average

EA0387_Mean_Reversion_Grid_Trending_Moving_Average_v1.0 / ⚠️ FAILED — 生成失敗・修正失敗・BT不合格

ワンライナー

Mean Reversion Grid Trending Moving Average

判定: 🟡 C(ひとクセあり)

自律生成EA。優位性は限定的(PF0.00)。データとしては残すが運用向きではない。

自律生成ライン(網羅的に量産)

基本情報

項目 値 項目 値
シンボル EURJPY エントリー種別 grid
時間足 M15 エグジット fixed_sl
方向 both 主要インジケータ —

🧬 DNA 5軸

primary_style entry_mechanism regime_target position_logic core_indicator_family
mean_reversion grid trending fixed_sl moving_average

📊 バックテスト結果

判定: ❌ FAIL / 期間: 2026.05.13 〜 2026.07.03

PF 損益率 勝率 最大DD シャープ 取引数
0.00 +0.01% 100.0% 0.01% 0.25 2

📝 仕様書 / Specification

クリックで展開

EA識別情報

  • EA名: REF1001_09_Mean_Reversion_Grid_Trending_Moving_Average_v1
  • 通貨ペア: EURJPY
  • 時間足: M15
  • プライマリスタイル: mean_reversion
  • エントリーメカニズム: grid
  • レジームターゲット: trending
  • ポジションロジック: fixed_sl
  • コアインジケーター系統: moving_average
  • キャプチャ意図: middle (head=新規の頭を取る / middle=頭と尻尾を渡す / tail=枯れ際の反転を取る)

リサーチテーゼ

Mean Reversion Grid Trending Moving Average candidate generated from 4 research source(s). The strategy must preserve the source idea while keeping parameters broad enough to survive out-of-sample testing.

根拠ソース

  • [MR] 逆張り/リバージョン系は直近27本中、発火率100%・BT合格率0%。いま市場がこの族のトリガー条件を満たしやすい地合い。
  • [MR] USDJPY COT混雑実測: レバレッジ勢のネットが3年P88のロング極端。混雑ポジションの巻き戻し(スクイーズ)を取る逆張り・リバーサル系が構造的に有利。
  • [MR] EURUSD オプション実測: 大口ストライクまで11pipsのガンマ・ピン圏。ヘッジフローが値動きを吸収するため、レンジ回帰・ピン狙いのロジックが機能しやすい。
  • [FILTER] [MR] 市場クローズ前後 (23:00-01:30 JST) は日次決算ポジション調整で流動性低下、スキャルは避ける
  • [SEASONAL] [MR] 月初の週 (1-5営業日) は機関の月次リバランスでドルが買われやすい傾向

トレード仕様

以下5点は必須です。いずれかが欠落・空欄の場合、この仕様書は不合格としてください。

1. Entry logic(エントリー条件)

BUY entry: price is InpDeviationATR * atr[1] below N-bar SMA (input default N=20, InpDeviationATR=2.0) on bar[1], AND RSI(14) < InpRSIOversold (default=30), AND bar[1] close > bar[2] close (reversal confirmation). SELL entry: symmetric above SMA with RSI > InpRSIOverbought (default=70). Regime filter: active only when Bollinger Band width is below 20-bar average (use bar[2] width to avoid contradiction with the deviation entry check).

2. Exit logic(決済条件)

Capture intent: MIDDLE. TP = 1.5ATR(14) at entry; SL = 1.5ATR(14) at entry; trailing stop is FORBIDDEN; time exit at 15 bars held; partial close 50% at +1.0*ATR + move stop to break-even. Rationale: Middle capture: give up the head and the tail. The EA must not chase the extension; it locks in a measured portion and steps aside. Numeric exit rules above are binding (identical to section 2.5). Mechanism-specific structural exits (in addition, whichever fires first): Do not hold mean reversion trades past the session boundary.

2.5 キャプチャ意図に基づく Exit Discipline (拘束)

キャプチャ意図: MIDDLE — Middle capture: give up the head and the tail. The EA must not chase the extension; it locks in a measured portion and steps aside.

  • TP: ATR(14, bar[1]) × 1.5
  • SL: ATR(14, bar[1]) × 1.5
  • トレイル: トレイル禁止
  • 時間切れ: 15 bars
  • 部分決済: +1.0*ATR で 50% 部分決済 + 残りは建値SLへ

EA 実装ガードレール (絶対遵守):

  • NEVER add a trailing stop — middle capture forbids tail-chasing.
  • TP and SL are equal in ATR multiples (1.5 each); do NOT widen TP > SL.
  • Time exit at 15 bars is mandatory; do NOT extend in pursuit of further gains.
  • Partial close at +1.0*ATR with BE stop is the only allowed exit refinement.
  • After successful partial close, return/continue immediately; move BE stop only after refreshed position state on a later tick/new bar.

参考 MQL5 擬似コード (実装の出発点):

MQL
double atrAtEntry = iATR(_Symbol, _Period, 14)[1];
double tp = entryPrice + side * 1.5 * atrAtEntry;
double sl = entryPrice - side * 1.5 * atrAtEntry;
// NO trailing stop — middle capture explicitly refuses to chase the tail.
// Partial close: close 50% of position at +1.0 * atrAtEntry favorable excursion.
if (favorableExcursion >= 1.0 * atrAtEntry && !partialClosed) {
    if (ClosePartial(0.5)) {
        partialClosed = true;
        pendingBreakEven = true;
        return; // wait for refreshed position state before stop modification
    }
}
if (pendingBreakEven && refreshedPositionState) {
    ModifyStop(entryPrice);
}
// Time exit: 15 bars from entry, regardless of P/L.
if (barsHeld >= 15) { ClosePosition("middle_time_exit"); }

上記の Exit Discipline は section 2 (Exit logic) と矛盾する場合、Exit Discipline を優先してください。 メカニズム別の Exit 指示は同方向性の確認、Capture Intent の指示は拘束的な数値規律です。

3. Risk management(資金管理)

Fixed fractional risk per trade, no martingale (every grid level uses the same fixed lot), bounded grid: at most 2 same-direction entries per symbol including the first, next level only after an adverse move of at least 1.0*ATR(14) at first entry, every level carries its own stop-loss, basket kill switch when floating loss exceeds 2% of day-start balance, and hard daily loss guard.

4. Regime filter(レジームフィルター)

trending regime confirmation using SAME timeframe indicators only

5. Invalidation condition(無効化条件)

If walk-forward repeatedly shows OOS PF < 1.0 or trades collapse after loosening entry filters, archive the DNA.

5点構造チェック: 上記5セクションがすべて記載されていることを確認してください。

フィルター

  • Spread and session filter
  • Regime-specific confirmation filter from source evidence
  • Minimum ATR activity filter

ロジック独立性要件

必須チェック(実装前に確認すること):

  • エントリーシグナル変数とレジームフィルター変数は独立したデータ源または独立したlookbackから計算すること
  • 悪い例: bullishCross = fastMA[1] > slowMA[1] と isBearishRegime = fastMA[1] < slowMA[1] を AND 結合 → 同一バーで両立不可、取引ゼロになる
  • 正しいレジーム定義: slowMA[1] - slowMA[10] の傾き、上位足のMA方向、長い lookback(50本以上)の傾き
  • 全フィルターを AND 結合した時に、理論上発火できるバーが存在することをスケッチで確認すること
  • 逆張り戦略では「エントリー条件の否定 ≠ レジーム条件」になっているか必ず確認すること
  • RSI・BB・ATR など同一インジケーターを「シグナル源」と「フィルター源」の両方に使う場合、同じバーで矛盾する不等式を要求していないか確認すること
  • レジーム変数は1本のみ: bullishRegime (または uptrend 等) という bool 変数を1つ定義し、エントリー条件の AND に使うのはその1変数のみにすること。bullishRegime && regimeUp のように2本のレジーム変数を AND 結合することを禁止する。スロープ・価格位置・ADX など複数軸で判断したい場合は、それらを統合した1本の bool 変数にまとめてから AND に組み込むこと。

Primitive Execution Lane

  • レーン: EXPERIMENTAL
  • 検証済みprimitive:
  • position:fixed_sl (fixed-risk SL/TP with optional time exit)
  • experimental primitive:
  • entry:grid
  • grid recovery
  • 判定理由:
  • entry_mechanism='grid' is not in the verified entry primitive set
  • keyword 'grid' requires experimental isolation
  • 実装方針: 発想はentry/regime/filterに閉じ込め、発注・部分決済・建値移動・日次停止は検証済みprimitiveを使う。experimentalの場合は専用helperに隔離する。

最適化許容範囲

  • 緩和可能: 確証閾値、ATR活性閾値、セッションウィンドウ、シグナル確証バー数。
  • 緩和不可: 損切り規律、同方向最大2段の有界グリッド(固定ロット・マーチン禁止)、過去の固定価格水準の不使用。
  • 明示的に正当化される場合のみ特殊アプローチを許可: ブローカー非対称性の活用、出金ありマーチンゲール戦略、逆張りセンチメントフェード、地政学イベント裁定、構造的レイテンシエッジ、量子風最適化、群知能ポジションサイジング、ゲーム理論的マーケットメイキング。
  • 特殊アプローチを使用する場合は以下を必須記載: (1) 1トレードおよび1日あたりの厳密なリスク上限(pips/%)、(2) キルスイッチ条件(取引停止条件)、(3) 構造的エッジの存在根拠、(4) エッジ消失時の標準ルールへのフォールバック。
  • 多様性指令: レジストリ内の既存EAがほとんどTREND系ならMRかBREAKOUTを生成。ほとんどテクニカル指標ベースなら、異常/季節/レジームベースまたは学際的(物理/生物/心理)アプローチを生成。未探索の角度を追求すること。
  • 初期最適化範囲: 3〜5パラメータのみ。
  • 取引ゼロの場合: まずエントリー確証を緩和、次にセッション制限、次にATR閾値を緩和。
  • 取引過多の場合: レジームフィルターと最小シグナル距離を強化。

バックテスト合格基準

  • Backtest at least 24 months with the latest 3 months held out.
  • Use walk-forward setting 4:2 when MT5 runner is available.
  • Reject if OOS/IS PF ratio is below 0.70 or if OOS PF min is below 1.10.
  • Reject if OOS trade count is below 15 trades per held-out window (minimum 30 total); first loosen entry filters before optimizing profit targets.
  • OOS PF is the only success metric. IS PF is parameter sanity, not the headline.
  • A profitable strategy must answer 'why does this work?' from a stated hypothesis (microstructure, behavioral bias, seasonal anomaly, regime shift). Chains of indicators with no thesis are presumed curve-fit.

過学習対策

  • Robust > Profitable. A PF=1.20 strategy that survives every OOS window beats a PF=2.50 one that wins in one window and crashes in another.
  • Keep each numeric parameter in a wide theory-backed range; do not tune to a single date range.
  • Use canonical defaults (RSI=14, ATR=14, BB=20/2, MA=20/50/200). Magic numbers (RSI=17, ATR=23, BB=18/1.7) are a red flag of curve-fitting unless the spec cites prior research justifying that exact value.
  • Limit optimization to 3-5 core parameters in the first pass.
  • Forbid AND-chains of more than 4 filters at entry. Each added filter shrinks sample size and looks like edge but is usually fit.
  • If a single time-of-day or day-of-week window dominates the trade history, the edge is calendar artifact, not strategy.
  • Prefer regime filters with clear market meaning over curve-fitted thresholds.
  • Stop improving the candidate after repeated NO_TRADE/LOW_SAMPLE failures.

学習フィードバック

  • Avoid past failure: 【根本的失敗】全4ウィンドウでIS/OOS共にPF≈0.01〜0.05という壊滅的な水準。 勝率は61〜72%と高いにもかかわらずPF=0.03という矛盾は、 「平均損失(avg_loss≈2,500〜2,900)が平均利益(avg_win≈730〜975)の 約3倍」というペイオフ比の根本的な歪みに起因する。 【具体的な失敗メカニズム】 1. SL=TP=1.5×ATRの対称設定にもかかわらず実際の損失が利益の3倍超になっている。 これはアジアセッション(低ボラ)でエントリーし、ロンドン/NY時間に 大きなトレンドで逆行してSLを大きく超えてスリッページ・ギャップで ストップアウトされる「セッション跨ぎの方向性リスク」が原因と推定される。
  • EURUSDのM15アジアセッションでSMAクロスを使うと、 レンジ相場でのダマシクロスが頻発し、逆方向への大きな動きに巻き込まれる。
  • レジームフィルター(SMA50スロープ閾値0.5pips)が緩すぎて 実質的にフィルタリング機能を果たしていない。
  • 部分決済後のブレークイーブン移動が機能する前に大損失が発生している。 5. IS/OOS逆転(OOS>IS)が全試行で一貫して発生しており、 ISウィンドウが特定の困難な相場レジーム(強トレンド・高ボラ期)に 偏っていた可能性があるが、いずれにせよ全ウィンドウでPF<0.1は 戦略の構造的欠陥を示す。
  • 3回の改善試行でPF改善幅<0.05と変化なし=パラメータ調整では 解決不可能な根本的ロジック欠陥。 -> Pivot hint: 【変更すべき軸(優先順)】
  • 【最優先】エントリーロジックの完全刷新: SMAクロスをアジアセッションのレンジブレイクアウト戦略に変更する。 具体的にはアジアセッション高値/安値のブレイクアウト(ロンドンオープン前後) をエントリーシグナルとし、方向性のある動きを捉える設計に転換する。

  • 【ペイオフ比の修正】TP:SL比を非対称に設定する(例:TP=3×ATR、SL=1×ATR)。 現在のSL=TP=1.5×ATRは理論上RR=1:1だが実際は1:3の逆転が起きており、 少なくともTP=2.5〜3×ATRに拡大してペイオフ比を改善する必要がある。

  • 【時間足変更】M15→H1またはH4に切り替える。 アジアセッションのM15はノイズが多くSMAクロスのダマシが頻発する。 H1以上ではクロスシグナルの信頼性が向上する。

  • 【シンボル変更】EURUSDからGBPJPY(本来の設計対象)またはUSDJPYに変更する。 アジアセッションの流動性・ボラティリティ特性がEURUSDとは大きく異なる。

  • 【セッション戦略の転換】アジアセッション内でのスキャルプではなく、 「アジアレンジ確定後のロンドンオープンブレイクアウト」戦略に変更する (セッション終了時刻=エントリートリガーとして活用)。

  • 【レジームフィルター強化】SMA50スロープ閾値を0.5pipsから 5〜10pips相当に引き上げるか、ADXフィルター(ADX>25)を追加して 真のトレンド相場のみでエントリーする。

  • Avoid past failure: 【根本的失敗要因】
  • ペア・時間足のミスマッチ: コードはGBPJPY H4向けに設計(スプレッド上限5pips、 最小ATR10pips等)されているが、バックテストはEURUSD H4で実施。 パラメータが対象通貨ペアに最適化されておらず、フィルター条件が機能しなかった。

  • 壊滅的なペイオフ比率の歪み: 勝率84%(attempt1)にもかかわらずPF=0.31。 平均勝ちトレード約3,800USD に対し平均負けトレード約9,247USD(損益比1:2.4の逆転)。 TP=ATR×1.5、SL=ATR×1.5で設計上は1:1のはずが、半決済後にBEへ移動する Exit Disciplineが実質的にTPを縮小させ、SLはフルサイズのまま残るため 非対称な損失構造が生まれた。

  • プルバック条件の論理的欠陥: 買いシグナルの条件が 「close[2] < slowSMA[2] + ATR×1.5」(SMAより上にいる状態)であり、 本来のプルバック(SMAに近づく/下回る)を捉えていない。 SMAより上にある状態をプルバックと誤認しており、トレンド追従の エントリータイミングが根本的に間違っている。

  • 1本反転確認の信頼性不足: H4足で「close[1] > close[2]」という 1本の陽線確認だけでは、レンジ相場やノイズに対して過剰反応する。 全ウィンドウでIS/OOS共にPF 0.14〜0.27と一貫して低く、 相場環境を問わず機能しないことが証明された。

  • サンプル数の慢性的不足: H4足×2年間で19〜40トレードと極めて少なく、 統計的有意性が確保できない。条件が厳しすぎてエントリー機会を逃している。 -> Pivot hint: 【次に変えるべき軸】

  • ペア統一: コード設計通りGBPJPYでバックテストを実施する(EURUSDは破棄)。 またはEURUSD専用にパラメータを再設計(最大スプレッド2pips、最小ATR8pips等)。

  • プルバック条件の修正: 買いシグナルは「close[2] < slowSMA[2]」(SMAを下回る) または「close[2] < slowSMA[2] + ATR×0.3」(SMAに接近)に変更し、 真のプルバックを捉えるロジックに修正する。

  • Exit構造の再設計: 半決済+BEシフトがペイオフ比率を破壊しているため、 半決済を廃止してTP=ATR×2.0、SL=ATR×1.0(RR=2:1)の非対称構造に変更する。 または半決済後の残りポジションのTPをATR×3.0まで延長してRRを回復させる。

  • 時間足の変更: H4では2年間でサンプル不足のため、H1に切り替えて エントリー頻度を4倍に増やし統計的有意性を確保する。 ただしスプレストコストに注意。

  • トレンドフィルターの強化: SMA50スロープだけでなく、 SMA200との位置関係(price > SMA200 = 強気レジーム)や ADX > 25のトレンド強度フィルターを追加して、 レンジ相場でのフォールスシグナルを排除する。

  • 複数バー確認の導入: 1本反転確認を「直近3本のうち2本が反転方向」 またはピンバー・エンゴルフィングパターン等のローソク足パターン確認に 変更してシグナル品質を向上させる。

  • Avoid past failure: 【根本的失敗原因】 全3回のバックテスト試行でPFが0.02〜0.06と壊滅的に低く(PF=1.0未満どころか0.1以下)、 4ウィンドウWF全窓で利益ゼロという完全な機能不全を示した。

  • ペイオフ比の構造的欠陥: 勝率73%でもPF=0.03という矛盾は、avg_win(14.69)がavg_loss(27.14)の約半分という 著しく不利なリスクリワード比に起因する。SL=TP=ATR×1.5の対称設定にもかかわらず、 部分決済(半分を+1.0ATRで利確)が残りポジションの平均利益を大幅に圧縮し、 逆にSLは全量で被弾するため実質RR比が0.5以下に劣化している。

  • MAクロスのラグによる逆張り的エントリー: M15のSMA10/30クロスはシグナル確定時点で既に値動きの大半が終了しており、 クロス後の残余モメンタムが小さい。USDCADのM15レンジ相場では クロス直後に反転するケースが多く、SL到達率が高い。

  • SMA50スロープフィルターの機能不全: 閾値(0.0001×Point)が極めて小さく、実質的にほぼ全相場でフィルターが通過してしまう。 レンジ相場でも「レジーム確認済み」として誤エントリーが多発した可能性が高い。

  • M15スキャルピングとスプレッドコストの相性: USDCADはスプレッドが相対的に広く、M15の小さな値幅に対してスプレッドコストの 比率が高い。avg_win=14.69に対してスプレッドが数pips存在すると実質的な期待値が さらに悪化する。

  • 部分決済ロジックの逆効果: +1.0ATRで半分決済→残り半分をBE移動という設計が、勝ちトレードの利益を 早期に刈り取りながら、BE到達前に逆行した場合は元のSLで全量損失となる 非対称な損益構造を生み出している。

【やられた相場環境】 2026年4月〜5月のUSDCAD M15:レンジ的な横ばい相場でMAクロスが頻発するが 方向性が続かず、クロス後の即反転パターンが支配的だった期間。 -> Pivot hint: 【優先度順の改善軸】

  1. 時間足をH1またはH4に切り替える(最優先): M15のMAクロスはノイズが多すぎる。H1以上ではクロス後のモメンタム持続性が 統計的に改善し、スプレッドコスト比率も低下する。 同じSMA10/30クロスでもH1で再検証することを推奨。

  2. 非対称RR比への変更(SL:TP=1:2以上): 部分決済ロジックを廃止し、TP=SL×2.0〜3.0の固定RR比に変更する。 または部分決済を廃止してフルポジションでTP=ATR×2.5〜3.0を狙う設計に転換。

  3. レジームフィルターの厳格化: SMA50スロープ閾値を現在の0.0001×Pointから少なくとも10倍(0.001×Point)以上に引き上げる。 または200期間SMAの傾きとの組み合わせ、もしくはADXフィルター(ADX>25)を追加して 真のトレンド相場のみでエントリーを許可する。

  4. エントリーロジックの変更(MAクロスからブレイクアウトへ): MAクロスという遅行シグナルを捨て、直近N本の高値/安値ブレイクアウト (例:20本高値更新)をエントリー条件に変更する。 これによりシグナル確定時点での残余モメンタムが増加する。

  5. 通貨ペアの変更: USDCADはレンジ傾向が強くMAクロス戦略との相性が悪い。 トレンド性の高いGBPJPYやXAUUSDへの変更を検討する。

  6. Avoid past failure: 全WFウィンドウでIS期間のPFが0.0〜0.4程度と壊滅的に低く、逆にOOS期間の方が 安定して高いという「IS/OOS逆転」現象が3イテレーション全てで再現している。 これは偶然の過学習ではなく、ロジック自体が特定の相場レジーム(IS期間に 含まれる強トレンド相場)で構造的に機能不全に陥ることを示す。ダイバージェンス フェードは「トレンドの息切れ」を捉える狙いだが、ADX>20という緩い下限フィルター だけでは真のトレンド継続相場(ADXが高止まりしたまま押し目なく伸びる相場)を 排除できず、そこでエントリーすると価格がSMA50に戻る前にレジームがさらに 加速し、固定SL(0.8ATR)に一様に刈られる。ブレークイーブン保護や動的TPの ゲート調整(Dyn TP最小利益、SL/TP比率)はexitパラメータの微調整に過ぎず、 「そもそもどの相場でエントリーすべきでないか」というentry側のレジーム識別 能力が向上していないため、パラメータをいじってもPFはノイズレベル(±0.1) でしか動かず、PIVOT_TRIGGERED(3回試行でPF改善<0.05)に至った。トレード数も 28件/ウィンドウと少なく、統計的検出力も低い。 -> Pivot hint: (1) エントリー側のレジームフィルターを抜本的に強化する:ADX単純下限だけでなく 「ADXが過去N本でピークアウトし始めている(トレンド減速の兆候)」を条件に追加、 またはSMA50スロープの角度・ATR比を用いてトレンドの「加速中」と「減速中」を 区別する。加速中のトレンドでのフェードを禁止する。 (2) 時間足をH4やD1に上げ、ダイバージェンスの信頼性が高い、よりノイズの少ない スイング構造で判定する(H1は騙しダイバージェンスが多発しやすい)。 (3) 逆張り(フェード)ではなく、ダイバージェンス消滅後のトレンド再加速を狙う 順張り転換に軸を変える、もしくは明確なレンジ相場(ADX<20かつBB幅収縮)に 限定してフェードを適用し、強トレンド相場では完全に非稼働とする「レジーム スイッチ型」に再設計する。 (4) IS期間で壊滅した具体的な日付レンジを特定し、その期間のトレンド強度・ ボラティリティレジームを分析した上で、同種の相場を検出するフィルター (例:ATR拡大率、連続同方向バー数)を追加する。
  7. Avoid past failure: 総トレード数が13〜18件と極端に少なく、統計的に安定した優位性を検証できるサンプルサイズに達していない。 Walk-Forward検証ではIS期間のPFが0.31〜0.91と一貫して1.0を下回る一方でOOS期間だけPFが1.3〜7.1と 跳ね上がる「IS/OOS逆転(inversion)」が全attemptで検出されており、これは真の優位性ではなく、 たまたまOOS側に有利なトレンド相場が数回含まれていたことによる偶然の産物である可能性が高い。 ブートストラップ検証でもPF信頼区間の下限が0.997〜1.08とほぼ1.0付近にへばりつき、 「優位性がゼロでも説明がつく」水準。SMA傾きフィルターや押し目バンドの絞り込みを重ねるほど トレード数がさらに減少し(18→13件)、フィルター強化が逆にサンプルを痩せさせてPFのブレを 拡大させる悪循環に陥っている。根本原因は、H4×EURJPY×このレジーム定義の組み合わせでは そもそも「本物の押し目」がまれにしか発生せず、エントリー条件を満たす母集団自体が薄いこと。 レンジ・逆行相場でのダマシ押し目(フィルター強化前)による損失クラスターに加え、 フィルター強化後も残る少数サンプルでの結果の不安定性(IS期間の壊滅的PF)が、 ロジックが実運用に耐える再現性を持たないことを示している。 -> Pivot hint: (1) 時間足を下げてトレード数を確保する(H4→H1またはM30に変更し、同じ押し目ロジックで 月間トレード数を最低50件以上に増やしてWF検証の統計的信頼性を担保する)。 (2) レジーム判定をSMA傾きの単純差分ではなく、ADXやより長期のMA配列(例: EMA20/EMA100の クロス状態)等、ノイズに強い指標に置き換えて「本物のトレンド相場」の判定精度を上げる。 (3) 通貨ペアをボラティリティ特性の異なるものに変える、あるいは複数ペア(EURJPY+GBPJPY等) でシグナルを合算しサンプル数を増やす。 (4) 押し目バンドやSMA傾きの閾値によるフィルターをこれ以上厳格化する方向は逆効果(サンプル枯渇 →過学習的な偶然合格を招く)なので、次はフィルターを"緩めて"母集団を増やし、 エグジット側(部分利確比率、BE移動タイミング、時間エグジット本数)の調整でPFを改善する方向に 軸足を移すべき。
  8. [DIVERSITY-EXPLORE] Targeted an unexplored DNA combination (headroom-directed).

実装ガードレール

  • [PRIMITIVE-LANE: EXPERIMENTAL] This candidate needs an isolated experimental primitive; do not hide it inside normal order/position code.
  • [PRIMITIVE-LANE: EXPERIMENTAL] Experimental items: entry:grid; grid recovery.
  • [PRIMITIVE-LANE: EXPERIMENTAL] Add EXPERIMENTAL_PRIMITIVE, RISK_CAP, KILL_SWITCH, and FALLBACK comments near the helper that implements the new mechanism.
  • [PRIMITIVE-LANE: EXPERIMENTAL] Standard CTrade entry, lot sizing, SL/TP normalization, position identity, daily loss guard, and cooldown handling remain conservative.
  • [META] [RISK] [CONTRA] MT5 Strategy Testerは同名EAのinput値をキャッシュすることがあり、mq5側のinputデフォルトを変更して再コンパイルしても、BTでは前回値が使われる場合がある。inputデフォルト変更の検証では、別EA名/別ファイル名にするか、tester.ini/ExpertParametersで明示的に値を渡し、Testerログの「started with inputs」を必ず確認する。 (.clinerules)
  • [RISK] [META] [CONTRA] 【部分決済後のコメント管理パターン】MQL5ではPositionModifyでコメントを変更できないため、TP1部分決済後の状態管理にコメントプレフィックスを使う設計は「二重部分決済」リスクを内包する。対策として: (1)グローバルなulong配列でTP1済みチケットを管理する、(2)部分決済後に残りを即クローズ→新コメントで再エントリーする、のいずれかのパターンを採用すること。 (.clinerules)
  • [TREND] [BREAKOUT] [FILTER] [META] マルチタイムフレームEAでATR等のボラティリティ指標をCopyBufferする際、エントリー判定用の価格・MA(start_pos=1で確定足参照)とATR(start_pos=0で未確定バー参照)でstart_posが混在しやすい。設計方針として「全バッファのstart_posを統一する」か「ATRのみ最新値を使う理由をコメントで明記する」かを決めておくべき。 (.clinerules)
  • [FILTER] SYMBOL_SPREADはポイント単位のlong値を返すため、価格単位に変換するには* _Pointを直接使用する (.clinerules)
  • [FILTER] スキャルピングEAでXAUUSD等のスプレッド変動が大きい銘柄を扱う場合、pips単位ではなく価格単位(ドル)でスプレッド閾値・トレランスを指定する設計が適切。_Digits==2環境ではpips×_Pointが意図しない極小値になる (.clinerules)
  • [TREND] [FILTER] スプレッドリトライパターン(予約エントリーのスプレッド不良時リトライ): 予約フラグ方式でスプレッド不良時に即破棄せず、MAX_SPREAD_RETRY回まで次バーで再試行する設計。リトライカウンターは予約フラグと同時にリセットし、クールダウンや金曜制限等の他条件で予約破棄する際もリセットを忘れないこと。リトライの粒度(ティック単位 vs バー単位)を設計時に明確にすべき。 (.clinerules)
  • [META] HistorySelect(0, TimeCurrent()) は全取引履歴を走査対象にするため、長期運用や多数の取引がある口座ではパフォーマンスに影響する。連敗カウント等の直近履歴のみが必要な場合は、開始時刻を限定する(例: TimeCurrent() - 30243600)か、最後のチェック時刻を記録して差分走査にする。 (.clinerules)
  • [META] MQL5のOnTradeTransactionではDEAL_ENTRY_INOUTも処理対象に含めないと、ネッティング口座での約定イベントを捕捉できない場合がある (.clinerules)

ストーリーパッケージ

  • フック: AIが研究メモから自律発掘した「Mean Reversion Grid Trending Moving Average」をEA化して検証。
  • ブログアングル: 研究アイデアは本当にMT5で再現できるのか、OOSで崩れるかまで公開する。
  • 失敗アングル: 失敗時は NO_TRADE / LOW_SAMPLE / OVERFIT / HIGH_DD に分類して次の研究候補へ進む。

Spec Validation Warnings (auto-generated)

  • CONTRADICTION: Entry logicのRSI条件とRegime filterのtrending confirmationが矛盾: 逆張りmean reversionエントリー(RSI<30で買い)を「trending regime」で実行しようとしているが、trending regimeではRSI極値は稀で、かつmean reversionとtrending followは相反する戦略スタイル
  • Fix: レジームフィルターを「trending」から「ranging」または「mean_reversion_friendly」に変更するか、またはレジーム判定を「ボラティリティ環境」ではなく「価格がMAから大きく乖離している状態」に変更する。Source Evidenceの[MR]タグはスクイーズ/レンジ回帰を示唆しており、trendingレジームとは矛盾している
  • CONTRADICTION: Entry logicのBB幅条件とRegime filterのtrending条件の時間的矛盾: BB幅が20-bar平均以下(スクイーズ、低ボラ)をbar[2]で確認しつつ、trending regimeを要求している。trending regimeは通常ボラティリティ拡大を伴い、BB幅縮小(スクイーズ)とは相反する状態
  • Fix: 「trending」レジームを「ボラティリティ拡大中のtrending」ではなく「方向性のある静穏期」または「trending後のconsolidation(スクイーズ)」として定義し直すか、レジームフィルターを「ranging/sideways」に変更する。Source Evidenceの[MR]タグは「混雑ポジションの巻き戻し(スクイーズ)」を狙うものであり、trending regime filterと整合しない
  • WARNING: Entry logicのreversal confirmationとmean reversionの方向性が曖昧: BUY entryに「bar[1] close > bar[2] close (reversal confirmation)」を要求しているが、これは価格が上昇した後の条件。RSI<30(売られすぎ)で価格がSMA下方にある状態から、さらに「前バーが陽線」を要求すると、最も安い地点を逃し、反転後の高い位置でエントリーすることになる。これは「middle capture」の意図と整合するが、grid entryの「同方向最大2段」の意味が薄れる
  • Fix: 「reversal confirmation」をbar[1] close > bar[2] closeではなく「bar[1]の安値がbar[2]の安値を上回る」(higher low形成)や「RSIが前バーから上昇」を使うか、またはreversal confirmationを廃止してピュアなmean reversion(SMAからの距離のみ)にする。現状の条件では「底を打った後の反転確認」でエントリーするため、グリッドの下段追加が機能しにくい
  • WARNING: Source Evidenceの[FILTER]セクションに「市場クローズ前後(23:00-01:30 JST)はスキャル避ける」とあるが、Filtersセクションに時間帯フィルターが明示的に記載されていない。M15時間足での取引であり、該当時間帯の流動性低下リスクがある
  • WARNING: Source Evidenceの[SEASONAL]に「月初の週はドル買われやすい」とあるが、通貨ペアはEURJPYであり、ドル要素が間接的のみ。さらにFiltersセクションに月次リバランスに対応したフィルター(日付フィルター、特定曜日制限等)が実装されていない
  • WARNING: Grid mechanismで「同方向最大2段」「1.0ATRの逆走で次段」とあるが、Entry logicのSMAからの距離が2.0ATRであり、次段条件が1.0ATRである。1回目のエントリーがSMA-2.0ATRで、1.0ATR逆走で次段となるとSMA-3.0ATR地点になり、SLが1.5*ATRなので1段目のSL到達前に2段目が建つ可能性があるが、これは意図された挙動か不明瞭
  • WARNING: 「Regime filter: trending regime confirmation using SAME timeframe indicators only」とあるが、具体的な指標・閾値が記載されていない。実装時にEntry logicの条件と重複・矛盾する可能性がある
  • WARNING: Exit logicに「Do not hold mean reversion trades past the session boundary」とあるが、セッション境界の定義(東京/ロンドン/NYの切り替え時刻)が明示されていない

免責事項

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

EA1000 一覧に戻る


関連用語

— SPONSORED —