
0時直後のスプレッドは日中の10倍、だからEAは待つ
D1(日足)ベースの戦略で、ずっと気になっていた「0時ちょうど」の参入タイミングを見直しました。結論から言うと、新規エントリーを5分だけ遅らせることで、これまでバックテストでは見えていなかった「隠れたコスト」を削減できることが分かりました。
D1(日足)ベースの戦略で、ずっと気になっていた「0時ちょうど」の参入タイミングを見直しました。結論から言うと、新規エントリーを5分だけ遅らせることで、これまでバックテストでは見えていなかった「隠れたコスト」を削減できることが分かりました。
なぜ0時ちょうどが問題なのか
D1系スリーブ(connorsやcalなど、日足・4時間足・1時間足の0時確定で動く戦略)は、シグナルが出ると同時にサーバーの0時バーで成行注文を出します。実はこの時間帯、ロールオーバー(日またぎの閉場処理)直後でスプレッドが極端に広がっています。 バックテストは基本的に平常時のスプレッドを想定しているため、この「0時直後のコスト」は成績に反映されません。過去の検証では、このスプレッド拡大による実損が月利換算でマイナス0.076ポイント分もの誤差を生んでいる可能性が浮上しました。
0時直後のスプレッドと価格の動き
検証として、Dukascopyのティックデータを用いて平日0時から5分間のスプレッドを計測しました。
| 通貨ペア | 日中比のスプレッド倍率 |
|---|---|
| EURUSD | 6.8倍 |
| GBPUSD | 7.3倍 |
| CHFJPY | 10.1倍 |
| EURNZD | 7.9倍 |
| 中央値で見ると、0時から5分間は日中の2.5〜10倍もの広がりがあります。一方で、15分も経てば1.0〜3.3倍まで落ち着くため、この「最初の数分間」を避けるだけでかなりのコストカットになります。 | |
| では、5分待つことで価格が不利に動いてしまう(ドリフト)リスクはどうでしょうか。過去2,270件のトレードを追跡したところ、5分後の価格変化はconnors戦略でプラス1.14pips、他の戦略でも概ね0〜0.5pips程度の変動に収まりました。スプレッドの節約分(特にEURNZDなどでは10pipsを超えるケースも)を考えると、5分待つことによるデメリットよりもメリットの方が明らかに大きいという結果です。 |
EA v1.17.0での実装内容
今回の検証結果を受け、EAをバージョン1.17.0へアップデートしました。
- 新機能:
InpRolloverDeferMin(デフォルト5分)を実装。 - 動作:0時から指定した分数は新規エントリーを保留し、スプレッドが落ち着いたタイミングで発注します。
- 決済:決済については市場閉場のリスクを避けるため、これまで通り即時実行とします。
- 副次的効果:週明け月曜の0時に発生する大きなスパイク(値飛び)も、このガード機能で自動的に回避されます。
今後の運用方針
この変更は、リスクや戦略の前提条件を変えることなく「執行コストだけを改善する」というものなので、迷わず採用しました。期待される回収効果は月利プラス0.02〜0.05%程度とわずかですが、長く運用するほど効いてくる「タダで手に入る改善」です。 今後は、利用しているブローカーの実スプレッドで倍率を微調整していく予定です。決済まで遅らせるべきかについては、含み損を抱える時間が延びるリスクとのトレードオフになるため、今回は見送りました。また、指数CFDについては取引時間が異なるため、別仕様として慎重に検討していきます。
この検証のつながり
この検証は、過去の次の検証を踏まえています(前回ダメだった→今回こうした、別ロジックとの比較など)。