日付と時刻を扱う関数のサンプルコード!具体的にどのような値が設定されるか解説します
MT4(MQL4)/MT5(MQL5)の日付と時刻
MQL5ホームページ(日付と時刻 – MQL5 リファレンス)より。
TimeCurrent | 最後の既知のサーバ時間(相場受信の最終時刻)を datetime フォーマットで返します。 |
TimeTradeServer | 取引サーバの現在の計算時間を返します。 |
TimeLocal | ローカルコンピューター時刻を datetime フォーマットで返します。 |
TimeGMT | クライアント端末が実行しているコンピュータのローカル時間をGMTを夏時間を考慮した datetime フォーマットで返します。 |
TimeDaylightSavings | 夏時間のスイッチの符号を返します。 |
TimeGMTOffset | DST スイッチ を考慮して、GMT時間とローカルコンピュータの現在時刻との差を秒で返します。 |
TimeToStruct | datetime 値を MqlDateTime 構造体型の変数に変換します。 |
StructToTime | MqlDateTime 構造体型の変数を datetime 値に変換します。 |
サンプルコード
Print("//最後にサーバから受信した市場時刻(市場クローズ中は更新されない)");
Print("TimeCurrent=",TimeCurrent());
Print("//取引サーバの現在時刻(PC時刻とは違うので注意)");
Print("TimeTradeServer=",TimeTradeServer());
Print("//ローカルコンピュータの現在時刻");
Print("TimeLocal=",TimeLocal());
Print("//実行端末のローカル時間(夏時間考慮ありだが、PC設定に依存するので夏時間がない日本だとあまり意味がない?)");
Print("TimeGMT=",TimeGMT());
Print("//夏時間のスイッチの符号(PC設定に依存するので日本だと基本的に0)");
Print("TimeDaylightSavings=",TimeDaylightSavings());
Print("//GMT時間とローカルコンピュータの現在時刻との差(秒)");
Print("TimeGMTOffset=",TimeGMTOffset());
MqlDateTime conv;
TimeToStruct(TimeCurrent(),conv);
Print("//TimeCurrent()をdatetime型からMqlDateTimeへ変換");
Print("TimeToStruct(TimeCurrent(),conv)=",conv.year,",",conv.mon,",",conv.day,",",conv.hour,",",conv.min,",",conv.sec,",",conv.day_of_week,",",conv.day_of_year);
Print("//datetime型からMqlDateTimeへ変換したTimeCurrent()をdatetime型へ再変換");
Print("StructToTime(conv)=",StructToTime(conv));
結果
//最後にサーバから受信した市場時刻(市場クローズ中は更新されない)
TimeCurrent=2021.09.14 16:18:35
//取引サーバの現在時刻(PC時刻とは違うので注意)
TimeTradeServer=2021.09.14 16:19:11
//ローカルコンピュータの現在時刻
TimeLocal=2021.09.14 22:19:11
//実行端末のローカル時間(夏時間考慮ありだが、PC設定に依存するので夏時間がない日本だとあまり意味がない?)
TimeGMT=2021.09.14 13:19:11
//夏時間のスイッチの符号(PC設定に依存するので日本だと基本的に0)
TimeDaylightSavings=0
//GMT時間とローカルコンピュータの現在時刻との差(秒)
TimeGMTOffset=-32400
//TimeCurrent()をdatetime型からMqlDateTimeへ変換
TimeToStruct(TimeCurrent(),conv)=2021,9,14,16,18,35,2,256
//datetime型からMqlDateTimeへ変換したTimeCurrent()をdatetime型へ再変換
StructToTime(conv)=2021.09.14 16:18:35
コメント / Comments