You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MetaTrader 5中通过WebRequest获取伦敦、纽约时间及回测可用服务器时间

在MetaTrader 5中获取时区时间及回测兼容的服务器日期

核心方案

不需要通过WebRequest调用外部接口,MQL5内置API就能直接实现需求,且完全支持回测场景。

1. 获取回测兼容的服务器日期时间

回测和实盘模式下,TimeCurrent()函数会返回当前服务器的Unix时间戳(回测时返回模拟的回测进程时间),搭配TimeToString()可转换为可读格式:

datetime server_time = TimeCurrent();
Print("服务器时间:", TimeToString(server_time, TIME_DATE|TIME_SECONDS));

2. 转换服务器时间为伦敦/纽约时区

使用内置的TimeZoneConvert()函数,直接将服务器时间转换为目标时区时间,支持的时区常量包括:

  • 伦敦时区:TIME_ZONE_LONDON
  • 纽约时区:TIME_ZONE_NEW_YORK

示例代码:

// 获取服务器当前时间
datetime server_dt = TimeCurrent();

// 转换为伦敦时间
datetime london_dt = TimeZoneConvert(server_dt, TIME_ZONE_LONDON);
Print("伦敦当前时间:", TimeToString(london_dt, TIME_DATE|TIME_SECONDS));

// 转换为纽约时间
datetime ny_dt = TimeZoneConvert(server_dt, TIME_ZONE_NEW_YORK);
Print("纽约当前时间:", TimeToString(ny_dt, TIME_DATE|TIME_SECONDS));

3. 转换特定日期时间到目标时区

如果需要转换自定义的特定日期时间,只需将目标datetime值传入TimeZoneConvert()即可:

// 自定义特定时间(服务器时区)
datetime specific_server_dt = D'2024.05.20 12:00:00';

// 转换为伦敦时间
datetime specific_london_dt = TimeZoneConvert(specific_server_dt, TIME_ZONE_LONDON);
Print("特定时间的伦敦时间:", TimeToString(specific_london_dt, TIME_DATE|TIME_SECONDS));

关键注意点

  • 回测模式下TimeCurrent()自动适配回测进程的模拟服务器时间,无需额外处理
  • 内置时区转换无需依赖网络,避免WebRequest的权限限制和延迟问题
  • 更多时区常量可参考MQL5的ENUM_TIME_ZONE枚举定义

内容的提问来源于stack exchange,提问作者David BS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 20:22:02