专家顾问中的每个交易时段过滤器都是基于服务器时间编写的,而服务器时间取决于经纪商选择的时钟标准。有些服务器采用UTC时间,有些在冬季采用UTC+2、夏季采用UTC+3,而且时间调整的服务器并不都在同一个周末进行调整。 该工具从交易品种自身的价格历史数据中读取时间,而非依赖论坛帖子:外汇和CME交易周于纽约时间17:00收盘,因此将每周收盘时的服务器时间与该时刻的UTC时间进行对比,即可得出该周服务器的时差。 在过去的60周内,大约有60个测量值(每个收盘时间对应一个),根据这些序列,该工具可以判断时钟是否调整、何时调整以及采用的是哪种日历——美国夏令时还是欧洲夏令时。随后,它会显示未来几周伦敦、纽约、东京和悉尼开盘时的服务器时间。

Exness模拟服务器,五个“市场观察”符号,每个符号包含60周的H1K线,单次处理耗时12.3毫秒。当前显示的是最近一次常规收盘时的时差;“日历”字段显示时区状态为“固定”、“美国”或“欧盟”,并标注美国和欧洲夏令时切换日期是否位于该时间窗口内(已测试); “不规则”统计与周围收盘价不一致的收盘价,此处为黄金因美国节假日导致的四次提前收盘;“周日”统计服务器时间中至少包含一根K线的周日。BTCUSD全天候交易,无收盘价可供测量。截图时将面板字体大小设为4以适应页面;默认值为8。
问题
诸如“10:00 至 13:00 交易”之类的交易时段过滤器,是基于服务器时钟对伦敦或纽约时间的约定。只有当两个时钟之间的时差保持不变时,该约定才成立,而每年有两次时差会发生变化。 欧洲和美国在不同的周末调整时钟——2026年,美国于3月8日将时钟拨快,欧洲则于3月29日拨快;到了秋季,欧洲于10月25日将时钟拨回,美国则于11月1日拨回。 在春季的三周和秋季的一周里,伦敦比纽约早四小时而非五小时,而遵循其中一种日历的服务器将与另一座城市的时间出现偏差。
这些周中哪一周会影响某个EA,取决于服务器自身的规则,而该规则很少以程序可读的形式记录下来。 TimeTradeServer() − TimeGMT() 会给出今天的时差,但该值是根据电脑的时钟和时区计算得出的,对于进行回测的去年3月或下个月的情况则毫无说明。
其衡量标准
基准点。 银行间外汇交易周,以及金属和美国指数期货的CME交易周,均于美国纽约时间17:00结束。 对于该交易品种H1历史数据中每次持续至少InpMinGapHours小时(默认20)的中断,该工具将收盘价定义为:中断前最后一个H1K线的时间(开盘价)+ 1小时, 并将 U 设为最接近该时间的纽约时间 17:00,并根据美国夏令时规则转换为 UTC 时间。close − U 即为该收盘价对应的服务器时差。节假日暂停(圣诞前夕、除夕)同样在 17:00 结束,也视为锚点。
当涉及多个交易品种时,系统将采用最常见的偏移量和日历作为最终结果,而与之不符的交易品种将在日志中列出——例如,纽约时间16:00收盘的股票差价合约显示偏移量为1小时,而24/7交易的加密货币品种则完全没有收盘时间。
三台模拟服务器,三套时钟
附图为2026年10月7日的EURUSD H1图表;包含截至最新K线(2025.08.13至2026.10.07)的60周H1K线; 除符号列表外,所有输入均采用默认设置(Exness平台使用*,其他两个平台使用指定符号名称)。
| 服务器 | 交易品种 | 平仓 | 当前偏移量 | 日历 | 已观察到的切换(首次关闭后) | 不规则收盘 | 带有K线的周日 |
|---|---|---|---|---|---|---|---|
| Exness-MT5Trial17 | EURUSD、GBPUSD、USDJPY、XAUUSD | 各62 | UTC+0 | 无,已测试 | — | XAUUSD 4,其余 0 | 60 |
| ICMarketsSC-模拟 | EURUSD、GBPUSD、USDJPY | 各62 | UTC+3 | 美国 | 2025年11月8日 −1小时,2026年3月14日 +1小时 | 0 | 0 |
| MetaQuotes-模拟 | 欧元/美元、英镑/美元、美元/日元、黄金/美元 | 62 / 40 / 40 / 62 | UTC+3 | 所有4个指标均显示看涨;偏移:4个中有3个达成一致 | 2025年10月31日 −1小时,2026年4月4日 +1小时 | EURUSD 1,XAUUSD 4 | 0 |

该偏移量基于三个模拟服务器上欧元兑美元每次纽约时间17:00收盘价推算得出,数据范围为2025年8月1日至2026年10月7日的H1K线,每台服务器64个收盘价,每个收盘价对应一个点;虚线表示美国时区切换点,点线表示欧洲时区切换点。 数据源自通过MetaTrader5 Python包及终端MCP接口读取的H1K线时间,而非该工具自身的输出结果。
Exness:全年采用UTC时间。 62个收盘价均显示为+0:00,包括圣诞前夕和除夕的停盘时段。 变化的是收盘价本身:当纽约处于夏令时(3月中旬至11月初)时,当周最后一个H1K线以服务器时间21:00结束;其余时间则以22:00结束。 每周日都有从 21:00 或 22:00 开始的K线,因此日线图上会出现第六根短K线。黄金的偏移量相同,并增加了四个不规则收盘价,均为美国节假日提前收盘: 2025年11月28日“黑色星期五”(−2小时)、圣诞前夜(−3小时)、2026年6月19日“六月节”以及2026年7月3日星期五(各−4小时)。
IC Markets:遵循美国日历,冬季为UTC+2,夏季为UTC+3。 在2025年11月1日至8日以及2026年3月7日至14日这两个周末(即美国调整时钟的周末),时差会发生变化。外汇交易周全年均从周一00:00持续至周五24:00(服务器时间),周日不生成K线。
MetaQuotes-Demo:采用欧洲日历,时区为UTC+2 / UTC+3。 时区切换发生在2025年10月25日至31日以及2026年3月27日至4月4日的收盘之间。 其中一个欧元兑美元的收盘时间不规则:2026年3月13日星期五,在美洲时区与欧洲时区切换期间,最后一个K线于服务器时间00:00结束,比纽约时间17:00晚了一小时,而其前后的收盘时间均准时。 英镑兑美元(GBPUSD)和美元兑日元(USDJPY)在此交易终端上仅保留了自2026年1月起的H1历史数据,因此仅显示了春季切换的情况。 黄金与上述三组货币对的情况不同,日志中已特别说明:自2026年春季欧洲交易时段切换以来,其周收盘时间一直保持在服务器时间23:00,即纽约时间17:00前一小时,因此目前其时间显示为UTC+2:00。
这对未来几周意味着什么。 2026年10月7日的三项预测:在Exness平台,伦敦市场在10月23日之前于服务器时间07:00开盘,10月26日起于08:00开盘;纽约市场在10月30日之前于12:00开盘,11月2日起于13:00开盘。 在 IC Markets 上,伦敦市场开盘时间为 10:00,但 10 月 26 日当周除外,该周开盘时间为 11:00。 在 MetaQuotes-Demo 平台上,纽约市场开盘时间为 15:00,但上述同一周除外,该周开盘时间为 14:00。编写为“伦敦 10:00”或“纽约 15:00”的过滤器在 2026 年的 52 周中,有 48 周(其中 48 周中的 48 周)在 UTC+2/+3 服务器上均正确,但在其余四周中则不正确——其中三周在春季,一周在秋季,每个过滤器分别位于不同的服务器上;在 2027 年和 2028 年,春季的偏差为两周。
在所有三个实时连接中,交叉核对结果均与历史数据一致:TimeTradeServer() − TimeGMT() 在 IC Markets 和 MetaQuotes-Demo 上结果为 +3:00,在 Exness 上结果为 +0:00。 在准备本页面时,曾启动一个未登录的交易终端;离线状态下,该终端在+3:00时区的服务器上显示的时差为+0:00。因此,当终端未连接时,该工具会跳过检查,仅生成一条日志记录。
独立验证报告
该报告可在 MetaTrader 外部重新计算。 本页面使用的脚本仅读取摘要文件中的窗口数据,通过Exness服务器的终端MCP接口以及另外两台服务器的MetaTrader5 Python包,提取相同的H1K线时间,并使用Python的时区数据库(而非工具自身的夏令时规则)重新计算上述所有内容: 每个锚点行、每个切换行及其日历、每个汇总计数器、判定结果的偏移量及其日历,以及每个预测行。在本文展示的三次运行中,其结果在328、250和284个数值上完全一致,未出现任何差异。 该工具的定义首先通过十个手动处理的案例进行了验证——包括八个合成K线序列(固定型、美国型、欧洲型、反向切换、节假日暂停、数据缺失、间隔一周的两次提前收盘)以及两个预测——其中故意植入的十处错误均被成功检测出来。
使用方法
将该专家顾问附加到任何图表上。若 InpSymbols 为空,则审计当前图表的符号;输入 * 则审计“市场观察”中的所有符号;输入以逗号分隔的列表则审计该列表中的符号。请选择在周末停盘的符号——如主要货币对、黄金、指数期货;加密货币符号因无收盘价可供测量,故不适用。 审核运行一次(或每隔 InpRefreshMinutes 运行一次),在专家顾问日志中为每个符号打印一行,内容包括其异常收盘价、状态切换、审核结果及预测值;同时在图表上绘制表格并生成 CSV 文件。该程序仅读取历史数据:代码中不包含交易功能,无 DLL 组件,也不进行网络访问。 带 * 时,该工具仅读取“市场观察”中已有的符号。 该工具从不主动选择符号,但当某上市符号未出现在“市场观察”中且需先下载其历史数据时,终端会自动将其添加至“市场观察”(经测试:EURCHF和AUDNZD在首次读取时被添加,而AUDUSD在第二次读取时未被添加); 日志会在首次读取前列出此类符号的名称。
请先阅读日志。在 IC Markets 上,EURUSD 的日志记录为
EURUSD 62 个锚点(60 个周末,2 个节假日) | 当前 UTC+3:00 | 已观察 +2:00 +3:00 | 2 次切换: 2025.11.08 美国 -60,2026.03.14 美国 +60 | 时区模式:美国,dst_tested 1 | 不规则 0 | 周日K线 0天
这表明欧元兑美元在该时间窗口内收盘62次,服务器时间目前比UTC快3小时,此前也曾快2小时,且时钟曾两次调整:在2025年11月8日之前的一周向后调整1小时,在2026年3月14日之前的一周向前调整1小时,两次调整均以美国日期为准。 随后的预测线列出了时间变更当日各开盘时的服务器时间,例如
预测 2026.10.26 周一 时差 +3:00 伦敦 11:00 纽约 15:00 东京 03:00 悉尼 周日 23:00(伦敦)
使用多个在周末停止的符号:多数符号的结论即为最终结果,而持不同意见的符号将被标出。
输入
| 输入 | 默认 | 含义 |
|---|---|---|
| InpSymbols | "" | 符号:空 = 图表符号,* = 市场观察,否则为 CSV 列表 |
| InpWeeks | 60 | 要读取的H1历史数据周数(60周涵盖两个夏令时季节) |
| InpMinGapHours | 20 | 报价中断时间达到此长度即表示市场休市(周末/节假日) |
| 输入项目周数 | 8 | 按服务器时间计算,项目开始前的交易日数(以周为单位) |
| InpLondonOpen | 08:00 | 伦敦开盘,伦敦当地时间 |
| InpNewYorkOpen | 08:00 | 纽约开盘,纽约当地时间 |
| InpTokyoOpen | 09:00 | 东京开盘,东京当地时间 |
| InpSydneyOpen | 07:00 | 悉尼开盘,悉尼当地时间 |
| InpMaxExamples | 5 | 日志:按符号打印的不规则锚点 |
| InpWriteCsv | true | 写入锚点、开关、摘要、投影和结论的 CSV 文件 |
| InpShowPanel | true | 在图表上绘制结果表 |
| InpPanelCorner | CORNER_LEFT_UPPER | 面板角 |
| InpPanelFontSize | 8 | 面板字体大小 |
| InpPanelX | 10 | 面板 X 偏移量,px |
| InpPanelY | 18 | 面板 Y 偏移量,px |
| InpRefreshMinutes | 0 | 每 N 分钟重新审核一次(0 表示仅审核一次) |
超出范围的值(周数超出2至520范围、暂停时间超出6至60小时、预测时间超出1至52周、开放时间非HH:MM格式)将被限制或重置为默认值,并分别生成一条日志记录;专家顾问绝不会拒绝启动。
输出文件
所有文件均保存在 MQL5\Files\BrokerClockAuditor\ 目录下,以分号分隔并包含一行标题,文件名格式为 <symbols>_<weeks>w_<chart id>_…,以确保两个图表的文件绝不会互相覆盖。
限制条件,简明说明
由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/78123
Advanced Prop-firm Trade Panel based on S-R
一款适用于 MetaTrader 5 的手动交易面板,内置自营交易公司风险防护功能和隐藏式支撑/阻力位查找器。
CajasTF – MT5 集成多时间周期侧边栏
带有智能配色、独立价格刻度以及K线倒计时器的实时多时间周期侧边栏迷你图表。