【MQL4テクニック】現在の日付時刻を取得する方法まとめ
EAやインジケータを作成する際、なにかと現在の日付時刻が必要となる場面は多いです。
今回は2種類の取得方法とプラスαをご紹介します。
サーバー時刻を取得する
取引サーバーの時刻を取得するには、TimeCurrent()
関数を使用します。
datetime TimeCurrent();
取得したサーバ時間は気配値ウィンドウに表示されている時刻と一致します。
ローカルPCの時刻を取得する
MT4を稼働しているローカルPCの現在時刻を取得するには、TimeLocal()
関数を使用します。
datetime TimeLocal();
注意事項
ストラテジーテスターを利用したバックテストを行う場合、TimeLocal()
関数の時間はTimeCurrent()
関数の時間になってしまうので注意が必要です。
サーバー時刻の必要な部分だけを取得する
MQL4にはサーバー時刻の「年」や「分」だけを取得するための関数が備わっています。
まとめて紹介します。
//サーバーの年を取得する
int Year();
//サーバーの月を取得する
int Month();
//サーバーの日を取得する
int Day();
//サーバーの時を取得する
int Hour();
//サーバーの分を取得する
int Minute();
//サーバーの秒を取得する
int Seconds();
特定の時刻のみに取引するEAなどを作成する際にとても活躍します。
合わせてこちらの記事も参考にしてください。
サーバー時刻の曜日を取得する
DayOfWeek()
関数を使用することで、サーバー時刻の曜日を取得することが出来ます。
int DayOfWeek();
戻り値はint型である0~6の数値です。
0:日曜日 1:月曜日 ・・・5:金曜日 6:土曜日
にそれぞれ対応します。
曜日ごとの勝率を算出する際などに活用できます。
今年の経過日数を取得する
DayOfYear()
関数を使用することで、サーバー時刻を基準した今年の経過日数を取得することができます。
int DayOfYear();
戻り値はint型である1~365(366)の数値です。
サーバー時刻が1月1日の場合では戻り値が1
12月25日の場合では戻り値は359となります。