Session Micro Breakout¶
EA0038_Session_Micro_Breakout_v1.0 / ⚠️ FAILED — 生成失敗・修正失敗・BT不合格
ワンライナー
Session Micro Breakout
基本情報¶
| 項目 | 値 | 項目 | 値 | |
|---|---|---|---|---|
| シンボル | USDJPY | エントリー種別 | breakout | |
| 時間足 | H1 | エグジット | fixed_sl | |
| 方向 | both | 主要インジケータ | — |
🧬 DNA 4軸¶
| primary_style | entry_mechanism | regime_target | position_logic |
|---|---|---|---|
scalp | breakout | volatile | fixed_sl |
📊 バックテスト結果¶
判定: ❌ FAIL / 期間: — 〜 —
| PF | 損益率 | 勝率 | 最大DD | シャープ | 取引数 |
|---|---|---|---|---|---|
| 0.67 | -10.01% | 68.4% | 13.00% | -5.00 | 134 |
📝 仕様書 / Specification¶
🇯🇵 クリックで展開(日本語版)
Research EA Spec: Session Micro Breakout¶
EA Identity¶
- EA name: REF0430_03_Session_Micro_Breakout_v1
- Symbol: USDJPY
- Timeframe: H1
- Primary style: scalp
- Entry mechanism: breakout
- Regime target: volatile
- Position logic: fixed_sl
Research Thesis¶
Session Micro Breakout candidate generated from 3 research source(s). The strategy must preserve the source idea while keeping parameters broad enough to survive out-of-sample testing.
Source Evidence¶
- [META] [FILTER] ブローカー毎のスプレッド・約定遅延で EA の実効利益は 20-50% 変動する
- [FILTER] [STATS] 東京市場 (09:00-15:00 JST) はスプレッド拡大・流動性低下で短期戦略のコスト負けが多い
- [FILTER] ADX trend strength フィルター: 閾値 20-30 の間が実用域、30超は過剰に絞り込みすぎ
- [FILTER] セッション時間フィルター (東京/欧州/NY) 追加で PF が 10-20% 改善する例多数
Tradable Spec¶
- Entry logic: BUY entry: close[1] exceeds the N-bar highest high evaluated at bar[2] or earlier —
close[1] > iHigh(_Symbol, PERIOD_CURRENT, iHighest(_Symbol, PERIOD_CURRENT, MODE_HIGH, InpLookback, 2))(input default InpLookback=20). SELL entry: close[1] < N-bar lowest low — symmetric. ATR activity filter: useatr[2] < atr_avg[2] * InpSqueezeMultevaluated on bar[2] NOT bar[1] — evaluating squeeze and breakout on the same bar causes a logical contradiction (squeeze = low ATR, breakout = high move; same-bar AND is nearly impossible). Regime: use 100-bar SMA slope (sma100[1] - sma100[20] > 0) as an independent trend filter. ONE regime variable only: do NOT also add a price-vs-SMA check — one slope condition is sufficient. - Exit logic: Partial exit 50% at 1R (distance = entry to initial SL). Trail remaining 50%: ATR trailing stop at InpTrailATR * atr[1] (default InpTrailATR=2.0), only moving in profit direction — NEVER widen stop. Regime exit: if regime condition (volatile/trending) disappears — ADX drops below InpMinADX — close immediately. Time exit: close any open position after InpMaxBars bars (default=48) if still alive. Hard rule: initial SL is NEVER moved against position.
- Risk management: Fixed fractional risk per trade, no martingale, no grid expansion, max one position per symbol, and hard daily loss guard.
Filters¶
- Spread and session filter
- Minimum ATR activity filter
- Regime-specific confirmation filter from source evidence
- Minimum sample count filter before accepting optimization
Logic Independence Requirements¶
必須チェック(実装前に確認すること):
- エントリーシグナル変数とレジームフィルター変数は独立したデータ源または独立した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 に組み込むこと。
Optimization Envelope¶
- Relaxable: confirmation thresholds, ATR activity threshold, session window, signal confirmation bars.
- Not relaxable: stop-loss discipline, max one position, no martingale, no fixed historical price levels.
- Initial optimization scope: 3-5 parameters only.
- If no trades: loosen entry confirmation first, then session restriction, then ATR threshold.
- If too many trades: strengthen regime filter and minimum signal distance.
Backtest Acceptance¶
- Backtest at least 9 months with the latest 3 months held out.
- Use walk-forward setting 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 too low; first loosen entry filters before optimizing profit targets.
Overfitting Controls¶
- Keep each numeric parameter in a wide theory-backed range; do not tune to a single date range.
- Limit optimization to 3-5 core parameters in the first pass.
- Prefer regime filters with clear market meaning over curve-fitted thresholds.
- Stop improving the candidate after repeated NO_TRADE/LOW_SAMPLE failures.
Learning Feedback¶
- No prior ledger signal was available for this DNA.
Implementation Guardrails¶
- [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)
- [STATS] [META] スリッページ許容値(SetDeviationInPoints)はinputパラメータ化することで、バックテストや運用時の調整が容易になる (.clinerules)
- [TREND] [BREAKOUT] [FILTER] [META] マルチタイムフレームEAでATR等のボラティリティ指標をCopyBufferする際、エントリー判定用の価格・MA(start_pos=1で確定足参照)とATR(start_pos=0で未確定バー参照)でstart_posが混在しやすい。設計方針として「全バッファのstart_posを統一する」か「ATRのみ最新値を使う理由をコメントで明記する」かを決めておくべき。 (.clinerules)
- [META] HistorySelect(0, TimeCurrent()) は全取引履歴を走査対象にするため、長期運用や多数の取引がある口座ではパフォーマンスに影響する。連敗カウント等の直近履歴のみが必要な場合は、開始時刻を限定する(例: TimeCurrent() - 30243600)か、最後のチェック時刻を記録して差分走査にする。 (.clinerules)
- [META] MQL5のOnTradeTransactionではDEAL_ENTRY_INOUTも処理対象に含めないと、ネッティング口座での約定イベントを捕捉できない場合がある (.clinerules)
- [META] OnTradeTransactionでHistoryDealSelectを使用する際、DEAL_ENTRY_OUTとDEAL_ENTRY_INOUTの両方を処理することで、ネッティング口座とヘッジ口座の両方に対応できる。この2値チェックパターンは連敗カウント等の決済イベント処理の標準実装として有効。 (.clinerules)
- [META] OnTradeイベントでHistorySelect(0, TimeCurrent())による全履歴スキャンは、取引履歴が長期化するとパフォーマンス劣化を招く。g_last_processed_dealに対応する時刻を別途保持し、HistorySelectの開始時刻を直近に絞り込むパターンが推奨される。 (.clinerules)
Story Package¶
- Hook: AIが研究メモから自律発掘した「Session Micro Breakout」をEA化して検証。
- Blog angle: 研究アイデアは本当にMT5で再現できるのか、OOSで崩れるかまで公開する。
- Failure angle: 失敗時は NO_TRADE / LOW_SAMPLE / OVERFIT / HIGH_DD に分類して次の研究候補へ進む。
Spec Validation Warnings (auto-generated)¶
- CONTRADICTION: ATR squeeze filter と breakout entry signal が同一バーで矛盾する可能性が高い。仕様では『ATR activity filter: use atr[2] < atr_avg[2] * InpSqueezeMult evaluated on bar[2] NOT bar[1]』と明記されているが、entry signal『close[1] > iHigh(..., InpLookback, 2)』は bar[1] で評価される。bar[1] でのブレイクアウトは通常 ATR を上昇させるため、その直後の bar[2] で『atr[2] < atr_avg[2] * InpSqueezeMult』が同時に真になる確率は極めて低い。仕様の注釈『squeeze and breakout on the same bar causes a logical contradiction』は bar[1] vs bar[2] の時間差を意図しているが、ブレイクアウト直後のATRが低いという前提は市場の物理的性質に反する。
- Fix: 以下のいずれかを採用すること: (1) ATR フィルターを『atr[3] < atr_avg[3] * InpSqueezeMult』に変更し、ブレイクアウト前の状態を参照する。(2) 『atr[2] > atr_avg[2] * InpSqueezeMult』に反転させ、ブレイクアウト後の ATR 上昇を確認する(スクイーズ解放戦略に転換)。(3) ATR フィルターを削除し、代わりに ADX や SMA slope のみでレジーム判定する。
- WARNING: Regime filter『sma100[1] - sma100[20] > 0』の定義が曖昧で、実装時に entry signal と矛盾する可能性がある。仕様では『ONE regime variable only: do NOT also add a price-vs-SMA check』と明記されているが、『sma100[1] - sma100[20] > 0』は SMA の傾きを測定する条件である。一方、entry signal『close[1] > iHigh(...)』は価格ブレイクアウトを検出する。両者が独立していることは確認できるが、『sma100[1] - sma100[20] > 0』が真になるバーと『close[1] > iHigh(...)』が真になるバーが同時に存在するかは、InpLookback と SMA パラメータの組み合わせに依存する。特に InpLookback が大きい場合(例: 50以上)、ブレイクアウトが SMA 傾きの反転と同期しない可能性が高い。
- Fix: 以下のいずれかを採用すること: (1) SMA 傾きの lookback を短縮し、entry signal と同期しやすくする(例: sma100[1] - sma100[5] > 0)。(2) Regime 条件を『close[1] > sma100[1]』に変更し、価格が SMA 上にあることを確認する(price-vs-SMA check だが、仕様の『ONE regime variable only』に抵触しないよう、SMA slope と統合した単一 bool 変数にまとめる)。(3) バックテストで『Regime filter が真になるバーの割合』と『Entry signal が真になるバーの割合』を確認し、両者の AND が実際に発火するバーが存在することを検証する。
- WARNING: Exit logic『Regime exit: if regime condition (volatile/trending) disappears — ADX drops below InpMinADX — close immediately』で、ADX の定義が不明確。Entry 時に ADX チェックがないため、Entry 後に ADX が低下して即座にクローズされるシナリオが想定される。Entry 条件に『ADX > InpMinADX』を追加するか、Regime exit の ADX 閾値を明確に定義すること。
- WARNING: 『Partial exit 50% at 1R』の定義が曖昧。『distance = entry to initial SL』とあるが、entry price と SL の距離が 1R であることを確認する計算式が仕様に記載されていない。実装時に『1R = entry - SL』と『TP1 = entry + (entry - SL)』の関係を明示すること。
- WARNING: 『Trail remaining 50%: ATR trailing stop at InpTrailATR * atr[1]』で、atr[1] の更新タイミングが不明確。毎バー更新するのか、部分決済後のみ更新するのかを明記すること。
- WARNING: 『Time exit: close any open position after InpMaxBars bars (default=48) if still alive』で、InpMaxBars の起点(Entry bar = 0 か 1 か)が不明確。実装時に明示的に定義すること。
- WARNING: 『Minimum sample count filter before accepting optimization』が仕様に記載されているが、具体的な最小トレード数が定義されていない。Backtest Acceptance セクションでは『Reject if OOS trade count is too low』とあるが、「too low」の定義が不明。最低 20-30 トレード以上など、具体値を設定すること。
- WARNING: 『Session Micro Breakout』という名称だが、仕様に『東京市場 (09:00-15:00 JST) はスプレッド拡大・流動性低下で短期戦略のコスト負けが多い』と記載されている。Entry logic に session time filter が明示されていない。『Filters』セクションに『Spread and session filter』とあるが、具体的な実装条件(例: 09:00-15:00 JST を除外)が仕様に記載されていない。
- WARNING: 『Regime-specific confirmation filter from source evidence』が『Filters』セクションに記載されているが、具体的な条件が不明。『sma100[1] - sma100[20] > 0』以外に何を指すのか明確にすること。
- WARNING: 『Relaxable: confirmation thresholds, ATR activity threshold, session window, signal confirmation bars』とあるが、『signal confirmation bars』の定義が仕様に記載されていない。Entry signal『close[1] > iHigh(...)』に複数バーの確認が必要なのか、不要なのかを明示すること。
- WARNING: 『If no trades: loosen entry confirmation first, then session restriction, then ATR threshold』という最適化ガイダンスがあるが、『entry confirmation』の具体的な条件が仕様に記載されていない。
- WARNING: 『Backtest at least 9 months with the latest 3 months held out』とあるが、walk-forward window size(例: 3 ヶ月ごと)が定義されていない。実装時に明示すること。
🇬🇧 Click to expand (English version)
Research EA Spec: Session Micro Breakout¶
EA Identity¶
- EA name: REF0430_03_Session_Micro_Breakout_v1
- Symbol: USDJPY
- Timeframe: H1
- Primary style: scalp
- Entry mechanism: breakout
- Regime target: volatile
- Position logic: fixed_sl
Research Thesis¶
Session Micro Breakout candidate generated from 3 research source(s). The strategy must preserve the source idea while keeping parameters broad enough to survive out-of-sample testing.
Source Evidence¶
- [META] [FILTER] ブローカー毎のスプレッド・約定遅延で EA の実効利益は 20-50% 変動する
- [FILTER] [STATS] 東京市場 (09:00-15:00 JST) はスプレッド拡大・流動性低下で短期戦略のコスト負けが多い
- [FILTER] ADX trend strength フィルター: 閾値 20-30 の間が実用域、30超は過剰に絞り込みすぎ
- [FILTER] セッション時間フィルター (東京/欧州/NY) 追加で PF が 10-20% 改善する例多数
Tradable Spec¶
- Entry logic: BUY entry: close[1] exceeds the N-bar highest high evaluated at bar[2] or earlier —
close[1] > iHigh(_Symbol, PERIOD_CURRENT, iHighest(_Symbol, PERIOD_CURRENT, MODE_HIGH, InpLookback, 2))(input default InpLookback=20). SELL entry: close[1] < N-bar lowest low — symmetric. ATR activity filter: useatr[2] < atr_avg[2] * InpSqueezeMultevaluated on bar[2] NOT bar[1] — evaluating squeeze and breakout on the same bar causes a logical contradiction (squeeze = low ATR, breakout = high move; same-bar AND is nearly impossible). Regime: use 100-bar SMA slope (sma100[1] - sma100[20] > 0) as an independent trend filter. ONE regime variable only: do NOT also add a price-vs-SMA check — one slope condition is sufficient. - Exit logic: Partial exit 50% at 1R (distance = entry to initial SL). Trail remaining 50%: ATR trailing stop at InpTrailATR * atr[1] (default InpTrailATR=2.0), only moving in profit direction — NEVER widen stop. Regime exit: if regime condition (volatile/trending) disappears — ADX drops below InpMinADX — close immediately. Time exit: close any open position after InpMaxBars bars (default=48) if still alive. Hard rule: initial SL is NEVER moved against position.
- Risk management: Fixed fractional risk per trade, no martingale, no grid expansion, max one position per symbol, and hard daily loss guard.
Filters¶
- Spread and session filter
- Minimum ATR activity filter
- Regime-specific confirmation filter from source evidence
- Minimum sample count filter before accepting optimization
Logic Independence Requirements¶
Mandatory check (must verify before implementation):
- Entry signal variables and regime filter variables must be calculated from independent data sources or independent lookback periods.
- Bad example:
bullishCross = fastMA[1] > slowMA[1]ANDisBearishRegime = fastMA[1] < slowMA[1]— these cannot both be true on the same bar, resulting in zero trades. - Correct regime definition: slope of
slowMA[1] - slowMA[10], higher timeframe MA direction, or slope over a long lookback (50+ bars). - When all filters are AND-combined, sketch-verify that at least one bar can theoretically trigger.
- For mean-reversion strategies, always verify that "negation of entry condition ≠ regime condition".
- When using the same indicator (RSI, BB, ATR, etc.) as both "signal source" and "filter source", confirm you are not demanding contradictory inequalities on the same bar.
- Single regime variable only: Define exactly one bool variable (e.g.,
bullishRegimeoruptrend) and use only that one variable in the entry AND condition. Ban combining two regime variables with AND (e.g.,bullishRegime && regimeUp). If you need to judge across multiple axes (slope, price position, ADX), merge them into a single composite bool variable before AND-combining.
Optimization Envelope¶
- Relaxable: confirmation thresholds, ATR activity threshold, session window, signal confirmation bars.
- Not relaxable: stop-loss discipline, max one position, no martingale, no fixed historical price levels.
- Initial optimization scope: 3-5 parameters only.
- If no trades: loosen entry confirmation first, then session restriction, then ATR threshold.
- If too many trades: strengthen regime filter and minimum signal distance.
Backtest Acceptance¶
- Backtest at least 9 months with the latest 3 months held out.
- Use walk-forward setting 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 too low; first loosen entry filters before optimizing profit targets.
Overfitting Controls¶
- Keep each numeric parameter in a wide theory-backed range; do not tune to a single date range.
- Limit optimization to 3-5 core parameters in the first pass.
- Prefer regime filters with clear market meaning over curve-fitted thresholds.
- Stop improving the candidate after repeated NO_TRADE/LOW_SAMPLE failures.
Learning Feedback¶
- No prior ledger signal was available for this DNA.
Implementation Guardrails¶
- [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)
- [STATS] [META] スリッページ許容値(SetDeviationInPoints)はinputパラメータ化することで、バックテストや運用時の調整が容易になる (.clinerules)
- [TREND] [BREAKOUT] [FILTER] [META] マルチタイムフレームEAでATR等のボラティリティ指標をCopyBufferする際、エントリー判定用の価格・MA(start_pos=1で確定足参照)とATR(start_pos=0で未確定バー参照)でstart_posが混在しやすい。設計方針として「全バッファのstart_posを統一する」か「ATRのみ最新値を使う理由をコメントで明記する」かを決めておくべき。 (.clinerules)
- [META] HistorySelect(0, TimeCurrent()) は全取引履歴を走査対象にするため、長期運用や多数の取引がある口座ではパフォーマンスに影響する。連敗カウント等の直近履歴のみが必要な場合は、開始時刻を限定する(例: TimeCurrent() - 30243600)か、最後のチェック時刻を記録して差分走査にする。 (.clinerules)
- [META] MQL5のOnTradeTransactionではDEAL_ENTRY_INOUTも処理対象に含めないと、ネッティング口座での約定イベントを捕捉できない場合がある (.clinerules)
- [META] OnTradeTransactionでHistoryDealSelectを使用する際、DEAL_ENTRY_OUTとDEAL_ENTRY_INOUTの両方を処理することで、ネッティング口座とヘッジ口座の両方に対応できる。この2値チェックパターンは連敗カウント等の決済イベント処理の標準実装として有効。 (.clinerules)
- [META] OnTradeイベントでHistorySelect(0, TimeCurrent())による全履歴スキャンは、取引履歴が長期化するとパフォーマンス劣化を招く。g_last_processed_dealに対応する時刻を別途保持し、HistorySelectの開始時刻を直近に絞り込むパターンが推奨される。 (.clinerules)
Story Package¶
- Hook: AI autonomously discovered "Session Micro Breakout" from research notes and converted it into an EA for verification.
- Blog angle: Can a research idea truly be reproduced on MT5? We publish results all the way through to OOS decay.
- Failure angle: Failures are classified as NO_TRADE / LOW_SAMPLE / OVERFIT / HIGH_DD and fed into the next research candidate pipeline.
Spec Validation Warnings (auto-generated)¶
- CONTRADICTION: ATR squeeze filter と breakout entry signal が同一バーで矛盾する可能性が高い。仕様では『ATR activity filter: use atr[2] < atr_avg[2] * InpSqueezeMult evaluated on bar[2] NOT bar[1]』と明記されているが、entry signal『close[1] > iHigh(..., InpLookback, 2)』は bar[1] で評価される。bar[1] でのブレイクアウトは通常 ATR を上昇させるため、その直後の bar[2] で『atr[2] < atr_avg[2] * InpSqueezeMult』が同時に真になる確率は極めて低い。仕様の注釈『squeeze and breakout on the same bar causes a logical contradiction』は bar[1] vs bar[2] の時間差を意図しているが、ブレイクアウト直後のATRが低いという前提は市場の物理的性質に反する。
- Fix: 以下のいずれかを採用すること: (1) ATR フィルターを『atr[3] < atr_avg[3] * InpSqueezeMult』に変更し、ブレイクアウト前の状態を参照する。(2) 『atr[2] > atr_avg[2] * InpSqueezeMult』に反転させ、ブレイクアウト後の ATR 上昇を確認する(スクイーズ解放戦略に転換)。(3) ATR フィルターを削除し、代わりに ADX や SMA slope のみでレジーム判定する。
- WARNING: Regime filter『sma100[1] - sma100[20] > 0』の定義が曖昧で、実装時に entry signal と矛盾する可能性がある。仕様では『ONE regime variable only: do NOT also add a price-vs-SMA check』と明記されているが、『sma100[1] - sma100[20] > 0』は SMA の傾きを測定する条件である。一方、entry signal『close[1] > iHigh(...)』は価格ブレイクアウトを検出する。両者が独立していることは確認できるが、『sma100[1] - sma100[20] > 0』が真になるバーと『close[1] > iHigh(...)』が真になるバーが同時に存在するかは、InpLookback と SMA パラメータの組み合わせに依存する。特に InpLookback が大きい場合(例: 50以上)、ブレイクアウトが SMA 傾きの反転と同期しない可能性が高い。
- Fix: 以下のいずれかを採用すること: (1) SMA 傾きの lookback を短縮し、entry signal と同期しやすくする(例: sma100[1] - sma100[5] > 0)。(2) Regime 条件を『close[1] > sma100[1]』に変更し、価格が SMA 上にあることを確認する(price-vs-SMA check だが、仕様の『ONE regime variable only』に抵触しないよう、SMA slope と統合した単一 bool 変数にまとめる)。(3) バックテストで『Regime filter が真になるバーの割合』と『Entry signal が真になるバーの割合』を確認し、両者の AND が実際に発火するバーが存在することを検証する。
- WARNING: Exit logic『Regime exit: if regime condition (volatile/trending) disappears — ADX drops below InpMinADX — close immediately』で、ADX の定義が不明確。Entry 時に ADX チェックがないため、Entry 後に ADX が低下して即座にクローズされるシナリオが想定される。Entry 条件に『ADX > InpMinADX』を追加するか、Regime exit の ADX 閾値を明確に定義すること。
- WARNING: 『Partial exit 50% at 1R』の定義が曖昧。『distance = entry to initial SL』とあるが、entry price と SL の距離が 1R であることを確認する計算式が仕様に記載されていない。実装時に『1R = entry - SL』と『TP1 = entry + (entry - SL)』の関係を明示すること。
- WARNING: 『Trail remaining 50%: ATR trailing stop at InpTrailATR * atr[1]』で、atr[1] の更新タイミングが不明確。毎バー更新するのか、部分決済後のみ更新するのかを明記すること。
- WARNING: 『Time exit: close any open position after InpMaxBars bars (default=48) if still alive』で、InpMaxBars の起点(Entry bar = 0 か 1 か)が不明確。実装時に明示的に定義すること。
- WARNING: 『Minimum sample count filter before accepting optimization』が仕様に記載されているが、具体的な最小トレード数が定義されていない。Backtest Acceptance セクションでは『Reject if OOS trade count is too low』とあるが、「too low」の定義が不明。最低 20-30 トレード以上など、具体値を設定すること。
- WARNING: 『Session Micro Breakout』という名称だが、仕様に『東京市場 (09:00-15:00 JST) はスプレッド拡大・流動性低下で短期戦略のコスト負けが多い』と記載されている。Entry logic に session time filter が明示されていない。『Filters』セクションに『Spread and session filter』とあるが、具体的な実装条件(例: 09:00-15:00 JST を除外)が仕様に記載されていない。
- WARNING: 『Regime-specific confirmation filter from source evidence』が『Filters』セクションに記載されているが、具体的な条件が不明。『sma100[1] - sma100[20] > 0』以外に何を指すのか明確にすること。
- WARNING: 『Relaxable: confirmation thresholds, ATR activity threshold, session window, signal confirmation bars』とあるが、『signal confirmation bars』の定義が仕様に記載されていない。Entry signal『close[1] > iHigh(...)』に複数バーの確認が必要なのか、不要なのかを明示すること。
- WARNING: 『If no trades: loosen entry confirmation first, then session restriction, then ATR threshold』という最適化ガイダンスがあるが、『entry confirmation』の具体的な条件が仕様に記載されていない。
- WARNING: 『Backtest at least 9 months with the latest 3 months held out』とあるが、walk-forward window size(例: 3 ヶ月ごと)が定義されていない。実装時に明示すること。
免責事項
本EAは自動生成された検証用コードです。実運用可否はご自身で検証してください。
関連用語¶
— SPONSORED —