TimeCurrent
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)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));
/*
Result:
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)
*/
}