MT4を利用するにはいろいろな時間を理解する必要があります。 よく出てくる時間帯は以下の4つです。
EA開発時に夏時間の取り扱いには頭を悩ませた方も多いと思います。
時間を表す関数は3つあります。
サーバー時間、イギリス時間、米国東部時間には夏時間があります。 この時間を取り扱う時はHour()もしくはTimeHour(TimeCurrent()) を使用すると夏冬の影響が少なくなります。
日本時間はTimeHour(TimeLocal())でPCもしくはVPSの時間を取得しましょう。 特にVPSを使用する場合は時間が正しいか確認する必要があります。
TimeLocal()はバックテストではTimeCurrent()と同じ値になります。 バックテストではOnTimer()は動作しません。バックテストで確認する時にはOnTick()を使用すると動作します。
バックテストではMT4標準でGMTを取得する関数TimeGMT()が機能しないです。
たいてい、MT4を扱っているFX業者のタイムゾーンはGMT+2、ニューヨークの夏時間に合わせてGMT+3になります。このように扱うと週の日足が5本になり簡便になりますからね。
ニューヨーク夏時間は、現地時間で「3月第2日曜日午前2時〜11月第1日曜日午前2時」と決められています。
##########
FXに関係ある代表的なタイムゾーンは以下の通りです。括弧()内は夏時間、サマータイムです。
NYクローズで日足を確定するため。
NYクローズは現地ニューヨーク時間(GMT-5)の夕方5時です。日本との時差は14時間(サマータイム時は13時間)です。この時にMT4(GMT+2/+3)の時刻が午前0時となり、日足が確定します。
またNYクローズ時の日本時間は、日本は朝7時(夏時間の時は6時)です。これはFXの証券会社の取引開始時間やスワップのロールオーバー時間と重なっていることがわかります。