TimeCurrent

最後の既知のサーバ時間、つまり、「気配値表示」ウィンドウで選択したシンボルのうちの 1 つの相場受信の最終時刻を返します。OnTick() ハンドラでは、この関数は取り扱かったティックを受信した時間を返します。他の場合(例えば ハンドラ OnInit()、OnDeinit()、OnTimer() などでの呼び出し)、これはウィンドウのタイトルともなっている、「気配値表示」ウィンドウでのシンボルの相場の最終受信の時刻です。この時刻値は、取引サーバ上で形成され、お使いのコンピュータの時刻の設定に依存しません。この関数には 2 つのバージョンがあります。

パラメータなしでの呼び出し

datetime  TimeCurrent();

MqlDateTime 型のパラメータとの呼び出し

datetime  TimeCurrent(
  MqlDateTime&  dt_struct      // 構造体型の変数
  );

パラメータ

dt_struct

[out] MqlDateTime 構造体型の変数

戻り値

datetime 型の値

注意事項

MqlDateTime 構造型の変数がパラメータとして渡された場合は、それに応じて満たされます。

高解像度のカウンターとタイマーを配置するには、ミリ秒単位で値を生成する GetTickCount() 関数を使用します。

ストラテジーテスターのテスト中には TimeCurrent() は過去のデータに応じてシミュレートされます。

例:

void OnStart()
 {
//--- 日付/時刻データを格納するMqlDateTime変数を宣言し、気配値ウィンドウから最後の相場の時刻を取得する
  MqlDateTime tm={};
  datetime   time1=TimeCurrent();   // 呼び出しの最初の形式:気配値表示ウィンドウ内のいずれかのシンボルの最後の相場の時刻
  datetime   time2=TimeCurrent(tm); // 呼び出しの2番目の形式:MqlDateTime構造体を埋めた、気配値ウィンドウ内のいずれかのシンボルの最後の相場の時刻
 
//--- 日付/時刻を受信し、ログ内の対応するデータを構造体に入力した結果を表示する
  PrintFormat("Tick time: %s\n- Year: %u\n- Month: %02u\n- Day: %02u\n- Hour: %02u\n- Min: %02u\n- Sec: %02u\n- Day of Year: %03u\n- Day of Week: %u (%s)",
              (string)time1, tm.year, tm.mon, tm.day, tm.hour, tm.min, tm.sec, tm.day_of_year, tm.day_of_week, EnumToString((ENUM_DAY_OF_WEEK)tm.day_of_week));
 /*
  結果:
  Tick time: 2024.04.18 15:40:06
  - Year: 2024
  - Month: 04
  - Day: 18
  - Hour: 15
  - Min: 40
  - Sec: 06
  - Day of Year: 108
  - Day of Week: 4 (THURSDAY)
 */
 }