首页 > 博客 > MQL5 / MT5 错误代码处理指南 — ERR_NO_MONEY、ERR_TRADE_DISABLED 完整列表

MT5MQL5错误代码故障排查EA日志

MQL5 / MT5 错误代码处理指南 — ERR_NO_MONEY、ERR_TRADE_DISABLED 完整列表

发布日: 2026-05-18阅读时间:约 1 分钟
本文为发布之日的信息。EA的业绩数值(PF、DD、年化)会随实盘运行与重新验证而变动,最新数值请在各EA页面确认。 查看最新EA业绩

MQL5 / MT5 错误代码处理指南 — ERR_NO_MONEY、ERR_TRADE_DISABLED 完整列表

当MT5的Expert日志标签页中出现 ERR_NO_MONEYERR_TRADE_DISABLED 等MQL5错误时,难免令人担忧,但绝大多数错误的原因与解决方法都非常明确。本文汇总了EA实际运行过程中最常见的错误代码及其处理方案。

如何查看Expert日志标签页

点击MT5底部的「Expert」标签页,即可按时间顺序查看所有EA的日志记录。

显示格式:
2026.05.18 10:00:01.234  GOLD EMA ATR EA XAUUSD,H1: [ERROR] 130

时间        EA名称         交易对    时间框架  消息内容

如果出现错误,请根据错误代码编号来定位原因。


常见错误代码及处理方法

ERR_NO_MONEY(错误代码 134)

示例消息: "Order failed: not enough money"
         "ERR_NO_MONEY"

原因: 保证金不足,无法建立仓位。

处理方法:

  1. 在MT5的「交易」标签页中确认当前的保证金维持率
  2. 若维持率接近100%以下,考虑追加入金
  3. 降低EA的RiskPercent以减小手数
  4. 手动平掉部分持仓,回收保证金

ERR_TRADE_DISABLED(错误代码 4109)

示例消息: "Trade is not allowed"
         "AutoTrading disabled"

原因: MT5的自动交易功能已关闭。

处理方法:

  1. 点击MT5顶部工具栏的「自动交易」按钮,将其切换为开启状态(绿色)
  2. 依次进入 工具 → 选项 → 专家顾问 → 勾选「允许自动交易」,然后重启MT5

VPS重启后MT5自动启动时,此错误较为常见。


ERR_MARKET_CLOSED(错误代码 132)

示例消息: "Market is closed"

原因: EA在非交易时间(周末或节假日)尝试建仓。

处理方法: 通常无需处理。从周六00:00至周日约17:00(服务器时间),市场处于关闭状态。在此期间若EA尝试入场,便会出现此错误,周一将自动恢复交易。


ERR_INVALID_STOPS(错误代码 130)

示例消息: "Invalid stops"
         "Stop level violation"

原因: SL(止损)或TP(止盈)的设置值触及了券商的最小止损距离限制。

处理方法:

  1. 确认券商的止损距离要求(在MT5中右键点击交易品种 → 规格 → 查看「止损级别」一栏)
  2. 确认EA的SL幅度大于券商设定的止损距离
  3. 此错误在ATR值极小的低波动时段尤为常见

ERR_OFF_QUOTES(错误代码 136)

示例消息: "Off quotes"

原因: 未能从券商服务器接收到报价,存在连接问题。

处理方法:

  1. 查看MT5底部状态栏确认连接状态
  2. 若已断开,请重启MT5
  3. 查看券商是否发布服务器故障通知
  4. 检查VPS的网络连接状态

ERR_TRADE_TIMEOUT(错误代码 128)

示例消息: "Trade timeout"

原因: 订单执行超时,由服务器拥堵或网络延迟引起。

处理方法:

  1. 此错误多发于重要数据公布后等高负载时段
  2. EA通常会在下一个Tick自动重试,一般无需干预
  3. 若频繁发生,建议检查VPS的网络环境或考虑更换券商

TRADE_RETCODE_REJECT(返回代码 10006)

示例消息: "Request rejected"

原因: 订单被券商拒绝,可能是因为价差过大或价格波动过快。

处理方法:

  1. 检查MaxSpreadPoints的设置值,此错误多发于价差扩大时
  2. 若仅在重要数据公布后出现,可视为正常行为忽略
  3. 若频繁发生,可适当调高MaxSpreadPoints的值

"Margin level too low"

示例消息: "Margin level too low. Skip signal."

原因: EA设置了 UseMarginCheck = true,当保证金维持率低于MinMarginLevel(如200%)时,EA会自动停止建仓。

处理方法:

  1. 这是正常的保护机制,并非错误
  2. 保证金维持率恢复后,EA将自动恢复建仓
  3. 根本解决方案:追加入金,或降低RiskPercent

"No signal on this bar" 或 "Wait for next bar"

这不是错误,而是调试信息。

"No signal. ATR=1245, EMA(50)=1998.23"

这是EA每次扫描图表后输出的正常日志,表示「本次未满足入场条件」。


错误优先级分类

优先级错误处理方式
紧急ERR_NO_MONEY(134)立即补充保证金
紧急ERR_TRADE_DISABLED(4109)开启自动交易
注意ERR_INVALID_STOPS(130)重新检查SL设置
注意ERR_OFF_QUOTES(136)频繁出现检查连接环境
正常ERR_MARKET_CLOSED(132)仅限周末无需处理
正常ERR_TRADE_TIMEOUT(128)偶发无需处理
正常Margin level too low保证金不足时的正常保护动作

高效查看Expert日志的方法

筛选日志

在Expert标签页内右键点击 → 选择「过滤器」,可仅显示特定EA或特定错误的日志。

日志文件保存位置

MT5的日志文件保存在以下路径:

C:\Users\[用户名]\AppData\Roaming\MetaQuotes\Terminal\[ID]\MQL5\Logs\

系统会按日期自动生成对应文件。排查错误时,请打开该文件夹进行查阅。


总结

EA的绝大多数错误可归为以下四类:

  1. 保证金不足:追加入金或缩小手数即可解决
  2. 自动交易已关闭:点击按钮开启即可
  3. 连接问题:重启MT5或检查VPS网络状态
  4. 正常行为:无需处理(周末市场关闭、价差扩大时的回避机制等)

建议养成每天查看Expert日志标签页的习惯,快速识别高优先级错误(134、4109),及时响应处理。


常见问题(FAQ)

Q:在哪里可以查询错误代码?

可在MQL5官方文档(mql5.com)中查看完整的错误代码列表。此外,也可通过MT5的帮助功能(F1键)进行搜索。

Q:出现大量错误时,是否应该停止EA?

若只是偶发性的ERR_MARKET_CLOSED(132)或ERR_TRADE_TIMEOUT(128),无需停止EA。但若ERR_NO_MONEY(134)反复出现,建议暂停EA并确认保证金状况后再重新启动。

Q:出现「Invalid account」错误,怎么处理?

MT5的登录信息(服务器名、登录ID、密码)可能有误。请尝试通过 文件 → 开设交易账户 重新登录。

Q:没有错误,但EA不建仓,是什么原因?

如果日志中没有错误却不建仓,说明当前处于「未产生交易信号的正常状态」。EA并非在每根K线都会入场,只有在条件满足时才会建仓。请耐心观察一段时间。以H1时间框架的EA为例,每天入场1至3次属于正常范围。

5日邮件课程(免费)

每日一封邮件,涵盖FX自动交易本质、正确解读回测、选择经纪商的要点。

※ 严格保护隐私。可随时取消订阅。

评论与提问