「“相場に合わせて賢く動く”」時間足とフィルターを使ったEA構築術

時間足の使い分けがトレード成績を左右する理由

自動売買(EA)において、ロジックの土台となる「時間足」の選択は極めて重要です。なぜなら、同じインジケーターや売買ルールでも、使用する時間足が違うだけでトレードの性質や成績は大きく変わるからです。

たとえば、1分足を使うEAはエントリー頻度が多く、素早い判断と処理が求められます。一方、1時間足以上のEAでは、トレード回数は減るものの、ダマシが少なくなり、より安定したパフォーマンスを目指すことができます。

一般的に使われる時間足の特徴は次のとおりです。

  • 1分足・5分足:スキャルピング向き。反応が早く、高頻度トレードに最適だが、ノイズも多い。

  • 15分足・30分足:バランス型。トレード頻度と精度のバランスがとれた構成が可能。

  • 1時間足・4時間足:スイングトレード向き。ノイズが減り、戦略性重視のEAに適している。

  • 日足以上:長期視点のポジショントレード。経済指標やファンダメンタルズとの整合性がとりやすい。

つまり、時間足をどれにするかは、「戦略スタイル」「トレード頻度」「目標収益率」などに応じて慎重に選定する必要があります。

フィルター条件がEAに「知性」をもたらす

時間足の選定だけでなく、“フィルター”の有無と精度はEAにとって大きな分岐点となります。

ここでいうフィルターとは、「本来のエントリー条件とは別に、エントリーの質を高めるための追加条件」のことを指します。例として以下のようなものがあります。

  • トレンドフィルター:上位時間足でトレンドが出ているときだけエントリー(MAやADXなどを使用)

  • ボラティリティフィルター:ATRや標準偏差で動きの強さを測定し、相場が動いている時のみ稼働

  • 時間帯フィルター:ロンドン・NY時間だけトレードし、東京時間は休止するなどの時間帯制御

  • スプレッドフィルター:スプレッドが広がったときはエントリーしない

こうしたフィルターを導入することで、EAは「常にエントリーし続ける単純作業マシン」から、「判断軸を持ち、状況に応じて賢くトレードするツール」へと進化します。

フィルターの組み合わせと多時間軸ロジックの可能性

特に注目すべきは、**異なる時間足を使ってフィルターをかける“多時間軸ロジック”**です。

たとえば、5分足でエントリーするが、1時間足が上昇トレンドであることを条件にする。このように、短期の売買判断と中期の市場状況を併用することで、単一時間軸では実現できない安定性と再現性を実現できます。

このアプローチの利点は以下のとおりです。

  • ノイズに振り回されにくくなる

  • 高勝率エントリーが増える

  • EAが“全自動である必要がない”という割り切りも可能(手動補助との併用)

以降ではこの多時間軸フィルターを含む**「具体的な組み方のパターン」「コードへの実装方法」「実例に見るEA改善法」**を解説し、より実践的な内容に踏み込んでいきます。


多時間軸フィルターの実装方法とMQLでの考え方

前編で解説したように、時間足とフィルターの組み合わせはEAに「柔軟な判断力」を与えるうえで極めて重要です。ここでは、その具体的なMQL4での実装例と、ロジック構築の考え方を紹介します。

たとえば、「5分足でエントリーするが、1時間足が上昇トレンドであることを条件とする」場合、以下のようなコードになります。

mql4
double ma_5m = iMA(NULL, PERIOD_M5, 20, 0, MODE_EMA, PRICE_CLOSE, 0); double ma_1h = iMA(NULL, PERIOD_H1, 50, 0, MODE_EMA, PRICE_CLOSE, 0); if (ma_5m > iMA(NULL, PERIOD_M5, 20, 0, MODE_EMA, PRICE_CLOSE, 1)) && (ma_1h > iMA(NULL, PERIOD_H1, 50, 0, MODE_EMA, PRICE_CLOSE, 1)) { // Buyエントリー }

このように、上位時間足の値をリアルタイムで取得し、現在の足と比較することで条件付きのエントリーを実現できます。注意点としては、上位足の更新タイミング(例:H1は1時間ごとにしか更新されない)に気をつけ、iBarShiftを使って直近の確定バーを明示的に指定するのが望ましいです。

実践例:時間足とフィルターを使ったEA改善のステップ

ここでは、実際にEAを改善するステップを「トレード履歴→分析→フィルター導入」という流れで紹介します。

ステップ1:過剰なエントリーと負けトレードを分析

例えば、5分足で作ったEAが「ニュース発表直後」「東京時間のレンジ相場」などで損失を出している場合、それが特定の条件に集中しているとわかれば、それを除外するフィルターが効果的です。

ステップ2:該当する場面に絞ってフィルターを追加

  • ニュース発表時のボラティリティ上昇:ATRやスプレッドで除外

  • レンジ局面:ADXや価格の移動幅で静的状態を除外

  • 東京時間の除外:TimeHour() 関数で時間帯を限定

ステップ3:フォワードテストでフィルターの効果を評価

バックテストでは結果が良くても、フォワードテストで安定しているかを必ず確認します。フィルターが入りすぎると、今度はエントリーしなくなり、機会損失が増えることもあるため、効果とトレードオフのバランスを見極める必要があります。

まとめ

時間足とフィルターの組み合わせは、EA開発において「環境適応力」を高める重要な要素です。時間足によって戦略が大きく変わるだけでなく、上位足や特定の条件でエントリーを絞ることで、過剰なトレードやノイズを回避し、より安定した運用を目指すことが可能になります。

特に、多時間軸でのフィルターは、裁量トレーダーが無意識に使っている感覚をEAに取り込む手段として有効です。今後の開発においては、単一のインジケーターやロジックに頼らず、**複数条件と時間軸を絡めた「総合判断型EA」**を目指すとよいでしょう。


コメント

タイトルとURLをコピーしました