【MQL4テクニック】現在の日付時刻を取得する方法まとめ

MQL4テクニック

EAやインジケータを作成する際、なにかと現在の日付時刻が必要となる場面は多いです。

今回は2種類の取得方法とプラスαをご紹介します。

サーバー時刻を取得する

取引サーバーの時刻を取得するには、TimeCurrent()関数を使用します。

datetime TimeCurrent();

取得したサーバ時間は気配値ウィンドウに表示されている時刻と一致します。

ローカルPCの時刻を取得する

MT4を稼働しているローカルPCの現在時刻を取得するには、TimeLocal()関数を使用します。

datetime TimeLocal();

注意事項

ストラテジーテスターを利用したバックテストを行う場合、TimeLocal()関数の時間はTimeCurrent()関数の時間になってしまうので注意が必要です。

あなたのやりたいことがきっと見つかる!
MQL4テクニック 逆引き集 はこちら

サーバー時刻の必要な部分だけを取得する

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となります。

POINT

こちらの記事で悩みが解決されない場合は、
MQL4 User Community に参加してお気軽にご質問ください。

MQL4初心者の方や開発に行き詰った方の悩みを、 様々なソフトウェアやツールを開発してきた経験豊富なエンジニアたちが解決いたします。