時間フィルターを持つEAはすべて何かの時計を読んでいますが、その時計はロンドンのものでもニューヨークのものでもありません。ブローカーのサーバー時計です。そしてほとんどのブローカーで、その時計は年に2回、1時間跳びます。説明に「サーバー時間08:00〜16:00に取引」とあるなら、本当に問うべきなのは、それが冬には実世界の何時で、夏には何時なのかという点です。
サーバー時間とは何か
ブローカーはUTCからの固定オフセットを決め、そのうえで夏時間をどう扱うかを決めます。最も多いのは冬UTC+2・夏UTC+3で、切り替えは米国の日付に合わせる方式です。こうすると日足の区切りがニューヨーク17:00に固定され、週に5本の日足になるからです。欧州の日付で切り替えるブローカーもあり、年間を通じてオフセットを一切動かさないブローカーもあります。
時計が変わると何が動くのか
サーバー時間で書かれたフィルターはサーバーに固定されており、セッションには固定されていません。ブローカーが米国の日付に従い、欧州が2〜3週ずれて切り替わる場合、その数週間はサーバー時計上でロンドンの開始が1時間早まるか遅れるかし、その後元に戻ります。ブローカーがどちらにも従わない場合、ずれは夏の間ずっと続きます。
自分のブローカーの方式を調べる
冬のある日と夏のある日に、気配値表示の時計とUTCを比べてください。差が両日で同じなら、そのブローカーは切り替えません。1時間違うなら、切り替わった2つの日付を特定してください。それが米国式か欧州式かを教えてくれます。履歴からも同じ答えが得られます。1月の日足と7月の日足の始値時刻を見比べればよいのです。10分で終わる作業で、これに代わる方法はありません。
バックテストはブローカーの履歴を引き継ぐ
過去のバーには、当時そのブローカーが使っていたサーバー時間で時刻が刻印されています。したがってその履歴でのバックテストは、自動的にその方式のもとで走ります。あるブローカーのデータで調整したsetファイルは、そのブローカーの時計に合わせて時間帯が調整されています。方式の違うブローカーで読み込むと、入力値は見た目がまったく同じなのに、すべてのセッション窓が1時間ずれます。
気にするEAと、ほとんど気にしないEA
セッションブレイクアウト、アジアレンジ戦略、時刻に紐づくニュースフィルター、日次クローズの判定を持つものは、すべて1時間に敏感です。H4やD1の終値でインジケーターを読むトレンド系は、時刻の影響をはるかに受けにくいのですが、無縁ではありません。バーの区切り自体がサーバーのオフセットとともに動くからです。00:00ではなく23:00で閉じる日足は含む時間帯が違い、始値・高値・安値・終値が違い、したがってD1ベースの信号はすべて少しずつ変わります。
実際にやること
時計が切り替わるたびに、取引履歴を開き、1件の約定時刻を、説明が取引するとしているセッションと照合してください。一致していれば何もする必要はありません。1時間ずれていて、EAにGMTオフセットや夏時間の入力項目があるなら、触るのはその項目だけです。1つ動かして、もう一度照合してください。1時間のずれを直すためにセッション時間やストップを調整し直してはいけません。次の切り替えでその調整が巻き戻され、問題が1つから2つに増えるからです。
当社の売上上位3本: GOLD NEURON (AI) https://www.mql5.com/ja/market/product/187329 · ATLAS PORTFOLIO https://www.mql5.com/ja/market/product/182751
公開しているバックテストには期間・残高・設定を明記し、フォワード口座は掲載箇所すべてでデモ口座と明記しています。一覧はこちら: fxea365.com/ea/ranking


