第十章 日期和时间
这一组函数用于处理 日期时间 类型数据(即一个整数,表示从1970.1.1 0:00时开始的秒数)。
要安排更高精度的计数器和计时器,可以使用GetTickCount()函数,它以毫秒为单位。
函数 | 功能 |
---|---|
TimeCurrent | 返回最后一个已知的服务器时间,为 日期时间 类型(最后一次报价的时间) |
TimeTradeServer | 返回交易服务器当前的计算机时间 |
TimeLocal | 返回本地计算机的时间 |
TimeGMT | 以本地计算机的时间计算出GMT时间,考虑夏令时 |
TimeDaylightSavings | 返回夏令时的开关标帜 |
TimeGMTOffset | 在考虑夏令时的情况下,以秒为单位返回当前GMT时间 和 本地计算机时间之间的差异 |
TimeToStruct | 将 日期时间 值转换为MqlDateTime结构类型的变量 |
StructToTime | 将MqlDateTime结构类型的变量转换为 日期时间 值 |
# 10.1 TimeCurrent
返回最后访问的服务器时间,在“市场报价”窗口中选定的交易品种的最后一次报价的时间。在OnTick()处理程序中,该函数将返回已接收处理的时间。在其他情况下(例如,在处理程序OnInit()、OnDeinit()、OnTimer()等),对于在"市场报价"窗口中的任何一个 交易品种 都有最后一个报价时间,时间在窗口标题上显示。这个时间值在交易服务器上形成,并不依靠你的电脑时间设置。此函数有两种调用方式。
调用时无参数
datetime TimeCurrent();
调用时,带MqlDateTime类型参量
datetime TimeCurrent(
Mqldatetime& dt_struct // 结构类型变量
);
2
3
参数 dt_struct
[out] MqlDateTime 结构类型变量
返回值 日期时间 类型值
注意 如果将MqlDateTime结构类型变量作为参数传递,则会相应地填充它。 要安排高精度的计数器和计时器,可以使用GetTickCount()函数,它以毫秒为单位。 在策略测试器中,根据历史数据对TimeCurrent()进行了模拟。
# 10.2 TimeTradeServer
返回计算出的交易服务器的当前时间。与TimeCurrent()不同,时间值的计算在客户机端执行,取决于计算机上的时间设置。此函数有两种调用方式。 调用时无参数
datetime TimeTradeServer();
调用时,带MqlDateTime类型参量
datetime TimeTradeServer(
Mqldatetime& dt_struct // 结构类型变量
);
2
3
参数 dt_struct
[out] MqlDateTime 结构类型变量
返回值 日期时间 类型值
注意 如果将MqlDateTime结构类型变量作为参数传递,则会相应地填充它。 要安排高精度的计数器和计时器,可以使用GetTickCount()函数,它以毫秒为单位。 在策略测试器中,根据历史数据对TimeCurrent()进行了模拟。
# 10.3 TimeLocal
返回客户端运行的电脑上的本地时间,此函数有两种调用方式。 调用时无参数
datetime TimeLocal();
调用时,带MqlDateTime类型参量
datetime TimeLocal(
Mqldatetime& dt_struct // 结构类型变量
);
2
3
参数 dt_struct
[out] MqlDateTime 结构类型变量
返回值 日期时间 类型值
注意 如果将MqlDateTime结构类型变量作为参数传递,则会相应地填充它。 要安排高精度的计数器和计时器,可以使用GetTickCount()函数,它以毫秒为单位。 在策略测试器中,TimeLocal()总是相当于模拟服务器时间的 TimeCurrent() 。
# 10.4 TimeGMT
返回GMT时间,这其中考虑了客户端本地时间,包含夏令时DST开关。此函数有两种调用方式。 调用时无参数
datetime TimeGMT();
调用时,带MqlDateTime类型参量
datetime TimeGMT(
Mqldatetime& dt_struct // 结构类型变量
);
2
3
参数 dt_struct
[out] MqlDateTime 结构类型变量
返回值 日期时间 类型值
注意 如果将MqlDateTime结构类型变量作为参数传递,则会相应地填充它 。 要安排高精度的计数器和计时器,可以使用GetTickCount()函数,它以毫秒为单位。 在策略测试器中,TimeGMT() 总是相当于模拟服务器时间的 TimeTradeServer()。
# 10.5 TimeDaylightSaving
如果已切换到夏令时,则以秒为单位,返回对夏令时的校正。这取决于你电脑的时间设置。
int TimeDaylightSavings();
返回值 如果转换成冬季(标准)时间,则返回0。
# 10.6 TimeGMTOffset
返回当前GMT时间和本地计算机时间之间的时间差,考虑冬季(标准)或夏令时的切换。取决于你电脑的时间设置。
int TimeGMTOffset();
返回值 整数型 数值,以秒为单位。计算GMT 时间和本地电脑时间之间的差异。
TimeGMTOffset() = TimeGMT() - TimeLocal()
# 10.7 TimeToStruct
转变 日期时间 类型的值(数字从1970.01.01以秒开始)到结构变量 MqlDateTime 中。
bool TimeToStruct(
datetime dt, // 日期时间
Mqldatetime& dt_struct // 采用值的结构
2
3
参数 dt
[in] 用于转换的数值。
dt_struct
[out] 结构类型MqlDateTime变量
返回值 如果成功返回true,否则false。若要获得有关错误的信息,请调用GetLastError() 函数。
# 10.8 StructToTime
转变结构变量 MqlDateTime 到 日期时间 类型值,然后返回结果值。
datetime StructToTime(
MqlDateTime& dt_struct // 日期和时间结构
);
2
3
参数 dt_struct
[in] 结构类型变量MqlDateTime。
返回值 日期时间型的值包括从01.01.1970起的以秒为单位的数值。