首頁 > 部落格 > 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. 工具 → 選項 → 智能交易系統 → 勾選「允許自動交易」後重新啟動

VPS 重啟後 MT5 自動開啟時,此錯誤較常發生。


ERR_MARKET_CLOSED(錯誤代碼 132)

訊息範例:"Market is closed"

原因: EA 試圖在非交易時段(週末、假日)進行開倉。

處理方法: 通常無需擔心。週末大約從週六 00:00 至週日 17:00(伺服器時間)市場關閉,在此期間嘗試開倉會出現此錯誤,但週一開市後將自動恢復。


ERR_INVALID_STOPS(錯誤代碼 130)

訊息範例:"Invalid stops"
         "Stop level violation"

原因: SL(停損)或 TP(止盈)的設定值觸及券商的最小停止位限制。

處理方法:

  1. 確認券商的停止位(最小 SL 距離)——在 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%),因此自動暫停開倉。

處理方法:

  1. 這是正常的保護機制(並非錯誤)
  2. 保證金維持率回升後,開倉將自動恢復
  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)。


常見問題

Q:錯誤代碼可以在哪裡查詢?

MQL5 官方文件(mql5.com)提供完整的錯誤代碼清單,也可透過 MT5 的說明功能(按 F1 鍵)進行搜尋。

Q:出現大量錯誤時,應該停止 EA 嗎?

若只是偶發性地出現 ERR_MARKET_CLOSED(132)或 ERR_TRADE_TIMEOUT(128),無需停止。但若 ERR_NO_MONEY(134)反覆出現,請先暫停 EA,確認保證金狀況後再重新啟動。

Q:出現「Invalid account」錯誤。

MT5 的登入資訊(伺服器名稱、登入 ID、密碼)可能有誤。請嘗試透過「檔案 → 開設交易帳戶」重新登入。

Q:沒有錯誤,但 EA 就是不開倉。

如果沒有錯誤卻不開倉,通常表示「目前沒有訊號,屬於正常狀態」。EA 並非在每根 K 線都會開倉,只有在條件全部符合時才會入場,請耐心觀察一段時間。若是 H1 週期的 EA,一天內開倉 1 到 3 次即屬正常。

5日郵件課程(免費)

每日一封郵件,涵蓋FX自動交易本質、正確解讀回測、選擇經紀商的要點。

※ 嚴格保護隱私。可隨時取消訂閱。