TimeCurrent

返回最后访问的服务器时间,最后在"市场报价"窗口中选择交易品种接收的引用时间。在 OnTick() 处理器中,函数返回接收的处理器时间。在其他情况下(例如,调用 handlers OnInit(), OnDeinit(), OnTimer()等等),对于在 "市场报价"窗口中的交易品种常量有 最后一个报价收据时间,时间在窗口标题上显示。时间值在交易服务器上形成并不能依靠时间设置电脑。有两种变量函数。

无参量调用

datetime  TimeCurrent();

调用MqlDateTime类型参量

datetime  TimeCurrent(
   MqlDateTime&  dt_struct      // 结构类型变量
   );

参量

dt_struct

[out] MqlDateTime 结构类型变量

返回值

日期时间 类型值

注释

如果 MqlDateTime 结构类型变量以参量传递,就会因此填满。

要安排高分辨率的计数器和计时器,可使用 GetTickCount() 函数,它产生的值以毫秒为单位。

在策略测试器进行测试期间,TimeCurrent() 根据历史数据进行模拟。

示例:

void OnStart()
  {
//--- 声明MqlDateTime变量以填充日期/时间数据,并从市场报价窗口获取最后报价的时间
   MqlDateTime tm={};
   datetime    time1=TimeCurrent();    // 第一种调用形式:市场报价窗口中某一交易品种的最后报价时间
   datetime    time2=TimeCurrent(tm);  // 第二种调用形式:填充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)time1tm.yeartm.montm.daytm.hourtm.mintm.sectm.day_of_yeartm.day_of_weekEnumToString((ENUM_DAY_OF_WEEK)tm.day_of_week));
   /*
   Result:
   Tick time2024.04.18 15:40:06
   - Year2024
   - Month04
   - Day18
   - Hour15
   - Min40
   - Sec06
   - Day of Year108
   - Day of Week4 (THURSDAY)
   */
  }