テクニカルEA化

複数時間足フィルターの落とし穴

「上位足でトレンドを確認し、下位足でエントリーする」というマルチタイムフレーム(MTF)分析は、裁量トレーダーにとって王道の手法です。しかし、これをEAに実装しようとすると、バックテストでは見えにくい落とし穴がいくつも出てきます。

Read this for この手法を、EAの条件として分解する。

テクニカルは入口だけではなく、見送り条件、方向判定、撤退条件に分けると検証しやすくなります。

Category テクニカルEA化

filter / EA logic

「上位足でトレンドを確認し、下位足でエントリーする」というマルチタイムフレーム(MTF)分析は、裁量トレーダーにとって王道の手法です。しかし、これをEAに実装しようとすると、バックテストでは見えにくい落とし穴がいくつも出てきます。

裁量では「ちらっとチャートを見て方向を確認する」だけで済むことが、EAではコードとして厳密に定義する必要があるため、想定外の挙動やパフォーマンスの低下を招くことがあります。

結論:MTFフィルターの主な落とし穴

EAにマルチタイムフレームフィルターを導入する際に、特に注意すべきポイントは以下の通りです。

  1. 確定足と未確定足の問題: 上位足のインジケーター値は、そのバーが確定するまで変動し続けます。未確定足の値でフィルター判定すると、エントリーの判断がティックごとにコロコロ変わるため、非常に不安定なEAになります。
  2. タイムラグ: H4足でトレンドを確認してからM15でエントリーする場合、H4足の確定を待つと最大4時間の遅延が発生します。この遅延がエントリータイミングを逃し、パフォーマンスを悪化させる原因になることがあります。
  3. 過剰フィルター: 上位足のフィルターを厳しくしすぎると、エントリー条件を満たす場面が極端に少なくなり、EAの取引回数が統計的に意味のないレベルまで減少するリスクがあります。
  4. 時間足の組み合わせ爆発: M1/M5/M15/H1/H4/D1など、どの時間足の組み合わせが最適かを探ろうとすると、パラメータの過剰最適化に陥りやすくなります。特定の相場環境にしか通用しないEAができてしまう危険性があります。

なぜEA運用でMTFフィルターが重要か

裁量トレーダーは、上位足のトレンドを漠然と捉え、直感的にエントリーの方向性を判断できます。しかし、EAはそうはいきません。「上位足が上向き」という曖昧な表現を、プログラムコードとして厳密に定義する必要があるからです。

例えば、「MAが上向き」なのか、「ADXが25以上」なのか、「前のバーより現在のバーが高い」のか。その定義一つでEAの挙動は大きく変わります。この厳密な定義が、裁量では見えなかったMTFフィルターの落とし穴を顕在化させます。

MTFフィルターの仕組みと条件

MQL5での上位足データ取得の基本

MQL5で上位足のインジケーターデータを取得する際は、どのバーを参照するかが非常に重要です。特に、確定足と未確定足の区別はEAの安定性に直結します。

// H4足のEMA(20)を取得
int ema_h4_handle = iMA(_Symbol, PERIOD_H4, 20, 0, MODE_EMA, PRICE_CLOSE);
double ema_h4[];
// 重要: [1]で確定足を参照する。[0]は未確定足
CopyBuffer(ema_h4_handle, 0, 1, 1, ema_h4); // 確定済みの最新バーのEMA値

// 確定足のトレンド判定
double ema_h4_prev[];
CopyBuffer(ema_h4_handle, 0, 2, 1, ema_h4_prev); // 1つ前の確定バーのEMA値

bool h4_uptrend = (ema_h4[0] > ema_h4_prev[0]); // 最新の確定足と1つ前の確定足でトレンドを判定

確定足 vs 未確定足:EAの安定性を左右する選択

インジケーターの値を参照する際、[0](未確定足)と[1](最新の確定足)のどちらを使うかで、EAの挙動は大きく変わります。

バックテストやリアル運用でEAが壊れるポイント

MTFフィルターを安易に導入すると、バックテストでは良い結果が出ても、リアル運用でパフォーマンスが崩れることがあります。

MTFフィルターをEAに導入する際の確認ポイント

これらの落とし穴を避けるために、MTFフィルターをEAに組み込む際は、以下の点を重点的に確認しましょう。

  1. 上位足のインジケーターは必ず確定足[1]を参照する:これだけでEAの安定性が格段に向上します。
  2. MTFフィルターあり/なしのPFと取引回数を比較する:フィルター導入によって、PFが向上しつつも取引回数が極端に減っていないかを確認します。フィルターで取引回数が30%以上減る場合は、効果とリスクのバランスを再考しましょう。
  3. 上位足のパラメータは最適化しない:標準的な値(例: EMA 20、ADX 14)を使用し、過剰最適化のリスクを減らします。
  4. 上位足と下位足の組み合わせは2段階にとどめる:例えばH1とM15のように、シンプルな組み合わせから始め、3段階以上は避けるのが賢明です。複雑な組み合わせは、検証が難しく、過剰最適化のリスクを高めます。

自分の検証スタンス:MTFフィルターとの向き合い方

私自身がEAを開発・検証する際、MTFフィルターはH1の方向確認とM15でのエントリーという2段階を基本にしています。H4やD1まで加えると、エントリーの遅延が大きくなりすぎたり、取引回数が減りすぎたりする経験が多いためです。

また、上位足のパラメータは極力最適化しない方針です。EMA 20やADX 14といった一般的な設定を固定で使い、そのフィルターがEAのロジックに本当に優位性をもたらすのかを検証します。上位足の設定まで最適化してしまうと、特定の期間にしか通用しない「見せかけの優位性」に騙されるリスクが急増すると考えています。

次に読むべき記事

トレンドとレンジ判定をEAにどう入れるか

裁量では見分けやすいトレンドとレンジも、EAにすると定義が難しい。具体的な数値化とフィルターへの応用を解説。

EMAパーフェクトオーダーは入口よりフィルター向き

EMAパーフェクトオーダーは強力なトレンド判断指標だが、エントリー条件に使うと遅延が大きい。フィルターとしての活用法を深掘り。

ADXでRSI逆張りEAのトレンド被弾を避ける

RSI逆張りEAはトレンド相場で大きく負けることがある。ADXをトレンドフィルターとして導入し、リスクを軽減する方法を検証。

過剰最適化チェックリスト

バックテストでPFが高くても、リアルで勝てないEAの多くは過剰最適化が原因。具体的なチェック項目と対策を解説。

本記事は個人の検証メモであり、投資助言ではありません。マルチタイムフレーム分析の効果は銘柄・相場環境によって変動します。EA運用には常にリスクが伴います。

公開前チェック


修正サマリー

修正後本文

Technical to EA この手法を、EAの条件として分解する。

テクニカルは入口だけではなく、見送り条件、方向判定、撤退条件に分けると検証しやすくなります。

参照した公式情報

免責

本記事は個人の検証メモであり、投資助言ではありません。バックテスト結果は将来の成績を保証しません。海外FXや自動売買には、法規制・レバレッジ・スプレッド拡大・約定遅延・スリッページなどのリスクがあります。条件は変わるため、最新情報は各公式ページで確認してください。