【開発の裏側㊳】MT5の経済指標カレンダーを過去で読むと、冬の指標だけ1時間ずれていました

【開発の裏側㊳】MT5の経済指標カレンダーを過去で読むと、冬の指標だけ1時間ずれていました

記事
IT・テクノロジー
どうも、FXトレーダー兼システムエンジニアのナオトです。

ゴールドのEAに、経済指標の前後は新しく入らない、という機能を足したときの話です。
過去のデータで効き目を測ろうとして、時刻のずれに気づきました。



MT5には、経済指標の予定と結果が入ったカレンダーが内蔵されています。
CalendarValueHistory という関数を使うと、過去の指標の時刻も、EAの中から読めます。

これを使って、指標の発表の前後で、ゴールドがどれだけ動いたかを数えました。



確かめに使ったのは、米雇用統計です。
米雇用統計は、いつもニューヨーク時間の朝8時30分に発表されます。サーバーの時刻に直すと、夏も冬も、いつも同じ時刻に並ぶはずです。

ところが、カレンダーの時刻は、夏の発表が15時30分、冬の発表が16時30分と、2つに分かれていました。
冬だけ1時間ずれていたんです。



原因は、時差の持ち方でした。

使った業者のサーバーは、冬はGMTプラス2時間、夏はプラス3時間で動いています。値動きのデータの時刻は、そのときの時差で記録されています。
一方、カレンダーの関数が返す時刻は、呼び出した今の時差で、過去の分まで全部そろえて返していました。
測ったのは夏の時期だったので、冬の指標まで夏の時差で並んでいたわけです。



本当にそうなのか、月ごとに確かめました。
米国の大きな指標で、時刻をそのまま使った場合と、1時間引いた場合のどちらで発表のあとの値幅が大きくなるかを、56か月分並べました。

4月から10月は、そのままのほうが大きい。11月から3月は、1時間引いたほうが大きい。
56か月すべてが、ヨーロッパの夏時間の切り替えの日を境に、この形にそろいました。



直し方は、カレンダーの時刻を夏の時差で書かれているものとみなし、ヨーロッパの夏時間の外なら1時間引く、です。

直す前と後で、米雇用統計59回の、発表後10分の値幅の中央値を比べました。
直す前は9.79ドル、直したあとは15.17ドル。直前の10分と比べた倍率は、2.03倍から4.08倍になりました。
直す前は、冬の分だけ、発表から1時間たった、もう落ち着いた時間を測っていたことになります。



このずれが出るのは、過去を読むときだけです。
いま動いているEAが、今週や来週の予定を読む分には、今の時差のままで合っています。

だから、テスターで回すときは、カレンダーの関数を直接使わず、時刻を直した予定のファイルを読ませる形にしました。

過去の指標で何かを測るときは、時刻が合っているかを、発表の時刻が決まっている指標で一度確かめてみてください。

経済指標をからめたEAやインジケーターの制作、過去検証のご依頼も受けています。


最後までお読みいただき、ありがとうございました。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す