世界时

在 MQL5 中,你可以基于计算机的本机时间及其时区确定全球 GMT (UTC)。

datetime TimeGMT()

datetime TimeGMT(MqlDateTime &dt)

该函数返回 datetime 格式的 GMT,从计算机的本机时间开始计数,并考虑到了冬令时和夏令时的转换。

概括性计算公式:

TimeGMT() = TimeLocal() + TimeGMTOffset()

因此,世界时的表示精度取决于本地计算机上时钟的正确设置。理想情况下,取回的值应与服务器已知的值保持一致。

对于基于外部经济新闻的交易策略,使用 GMT 时区的日历是最容易的:这样可以可以通过 TimeGMT 跟踪即将发生的事件。要将一个事件与图表上的服务器时间绑定,你应针对服务器时区与 GMT 之间的差值 (TimeTradeServer() - TimeGMT()) 对事件进行校正。但请记住,MQL5 有其自己内置的 日历

int TimeGMTOffset()

该函数返回以秒数表示的 GMT 与计算机的本机时间之间的当前差值(基于 Windows 中的时区设置并考虑当前夏令时)。在大多数情况下,时区以相对于 GMT 的整数小时数给出,因此 TimeGMTOffset 等于时区乘以 -3600(转换为秒)。例如,在冬季,时区可能等于 UTC + 2,因此偏移量为 -7200,而在夏季可能为 UTC + 3,因此偏移量为 -10800。减号是必需的,因为在将其时间转换为 GMT 时,正时区需要减去上述秒数,而负时区需要加上。

包含 TimeGMTTimeGMTOffset 用法的脚本见 上一节