MT4黄金EA周末没有日志,是卡住了吗?先区分报价与定时事件
OnTick依赖图表品种的新报价,OnTimer需要程序订阅。按事件入口、日志位置与重新初始化记录排查,避免用休市无输出直接判定故障。
作者:托马斯|MT4实务|2026年11月14日
摘要:周末打开终端,EA界面还在却长时间没有新日志,不能仅凭这个现象判断程序卡死。排查首先要明确程序由什么事件触发、是否真的会在该入口打印日志,再检查终端状态。本文不以实盘下单试验程序,也不把流程图当作任何EA已通过测试的证明。
没有新报价,报价事件可能不会发生
MetaQuotes官方MQL4文档说明,EA所附图表品种收到新的报价时,才产生相应NewTick事件并调用正确声明的OnTick处理函数。如果程序把检查和日志都写在这个入口内,在没有新报价的时段,就可能没有新的执行记录。
这不意味着所有EA都必须等待报价。程序也可以使用定时器或图表事件等入口。因此不能看到“周末”就一概解释所有静默,更不能将另一个品种仍在更新的现象当成当前黄金图表必定收到报价的证据。
先辨认程序等待哪个事件

图为原创流程教学示意,非真实行情,也没有展示实际交易账户。第一条路径依赖图表品种的新报价;第二条依赖程序成功订阅定时器。定时事件可以触发检查逻辑,但不等于当前市场可以成交,程序依然必须核对交易条件与数据有效性。
官方建议在初始化时订阅定时器,并在卸载时取消。仅写出OnTimer函数、却没有订阅,并不能说明它会周期运行。函数名称、参数及返回类型也必须符合事件处理要求,任意拼写错误可能让预期入口没有被调用。
普通使用者怎样逐步排查
先核对账户、服务器、图表品种名称和当前连接状态,确认查看的是正确终端。记录最后报价时间与平台交易时间,不用电脑时钟代替服务器行情时间。周末常规休市也不代表其他产品的交易安排完全相同,应以具体平台公告为准。
再查看Experts与Journal等相关日志,保存最后几条初始化、卸载或错误记录。注意日志过滤、日期以及是否查看了另一台终端。若EA本身只在发生交易条件时打印,没有新记录也可能只是打印条件未满足,不能据此证明程序从未运行。
随后检查EA说明是否包含定时检查、心跳输出或周末维护机制。没有源码时,应把版本、参数、图表品种、最后报价时间和日志交给提供者核对,不要臆测所有产品都使用同一事件结构。
有源码时优先验证什么
在模拟环境中核对OnInit、OnTick、OnTimer等入口的声明及必要订阅,并用适度频率的诊断日志确认实际路径。日志可记录事件类型、品种及数据时间,避免只写“正常”而没有可复核上下文。不要把账户密码或其他凭据写进诊断输出。
终端运行、图表加载、事件触发和交易执行是不同层次。定时器仍输出不能证明行情新鲜,也不能证明订单一定能够发送。报价事件不触发时,更不应通过放宽交易权限、重复提交订单来验证程序是否活着。
为什么反复切换周期可能干扰排查
官方文档说明,图表品种或周期变化、输入参数变化,会涉及卸载与重新初始化。反复切换可能让原问题被新的初始化过程掩盖,也可能触发程序重新加载状态。应先保存日志和参数,再按说明在安全环境中验证,而不是不断重挂EA观察它是否偶尔恢复。
不同EA对持仓恢复、变量持久化和重复下单防护的实现不同。本文不保证重新加载安全,不建议在存在真实敞口时盲目卸载或重启。任何维护操作都应先明确持仓由谁管理。
怎样判断排查已经结束
如果已确认当前品种没有新报价、逻辑只位于报价入口,且没有其他错误证据,可以记录为等待行情,而不是宣称已修好程序。若定时入口本应运行却持续无输出,则继续检查订阅、初始化结果和程序错误,不能用休市解释一切。
恢复报价后,也应先核对时间戳与状态,再确认程序按预期处理新事件。事件恢复并不证明交易策略有收益优势,订单仍面临点差、滑点和执行风险。排查的目标是找出程序实际停在哪一层,而不是通过实盘冒险获得答案。