自動交易停用(AutoTrading disabled)導致EA不動作
目錄
- 10027 與 10026 的差異(客戶端停用 vs 伺服器端停用)
- ① TRADE_RETCODE_CLIENT_DISABLES_AT = 10027(你的終端機端為OFF)
- ② TRADE_RETCODE_SERVER_DISABLES_AT = 10026(經紀商端為OFF)
- MT5的交易許可為四層結構 — 全部ON才能運作
- 第一層:工具列的「演算法交易」按鈕(整個終端機)
- 第二層:選項設定中的「允許演算法交易」
- 第三層:各圖表EA設定中的「允許演算法交易」
- 第四層:圖表右上角EA圖示的狀態
- 30秒快速排查(依此順序檢查)
- 容易被忽略的5個原因
- ① 使用投資者密碼登入(僅供檢視)
- ② 經紀商在該帳戶類型上禁止使用EA(10026)
- ③ 終端機重啟、更新或切換帳戶後按鈕又變回OFF
- ④ VPS自動啟動時自動交易仍維持OFF
- ⑤ 混淆了模擬帳戶與正式帳戶
- 用MQL5偵測此狀態(給EA開發者)
- 運用要點
- 優先順序檢查清單
- 總結
- 常見問答
- Q:我已經把演算法交易按鈕打開ON,但EA還是不進場。
- Q:10027 與 10026 有什麼不同?
- Q:明明昨天還能正常運作,自動交易卻莫名其妙變成OFF了。
- Q:手動下單可以,但只有EA無法下單。
「自動交易停用」導致EA不動作(MT5)
明明已經把EA設定到圖表上,卻不管等多久都沒有任何一次進場——遇到這種情況,第一個該懷疑的就是「自動交易(演算法交易)被停用」。這個問題的特徵是不會跳出明顯的錯誤,而是靜悄悄地沒有反應,是EA不動作原因中壓倒性的第一名。而且MT5的交易許可是四層結構,只要其中任何一層是OFF,訂單就無法送出。
本文同時面向使用MT5執行EA的交易者,以及用MQL5開發EA的開發者,將整理兩個相關返回代碼 10027(TRADE_RETCODE_CLIENT_DISABLES_AT) 與 10026(TRADE_RETCODE_SERVER_DISABLES_AT) 的意義、四層許可結構、容易被忽略的原因,以及在程式端偵測的方法。關於錯誤代碼的完整清單,請參閱 MQL5 / MT5 錯誤代碼對應總整理。
本文以2026年7月時點的MT5(build 4xxx系列)為前提撰寫。畫面名稱與圖示外觀可能因版本不同而略有差異。
10027 與 10026 的差異(客戶端停用 vs 伺服器端停用)
代表「自動交易停用」的返回代碼有兩種,差別在於是哪一方擋下了交易。只要分辨出這一點,處理方式就已經確定一半了。
① TRADE_RETCODE_CLIENT_DISABLES_AT = 10027(你的終端機端為OFF)
這是客戶端(也就是你的MT5終端機)設定中自動交易被停用的狀態。原因可能是工具列的「演算法交易」按鈕為OFF、選項設定中的許可被取消等。此時,訂單請求會在送到經紀商伺服器之前就在終端機內被拒絕。
意義: 客戶端終端機的自動交易被停用(AutoTrading disabled by client)
常數: TRADE_RETCODE_CLIENT_DISABLES_AT
值 : 10027
「Experts」(專家顧問)分頁會出現類似以下的紀錄。
2026.07.07 09:15:32.441 EA_NAME (XAUUSD,H1) OrderSend failed 10027
2026.07.07 09:15:32.441 EA_NAME (XAUUSD,H1) CTrade::OrderSend: ... [autotrading disabled by client]
處理方式只需修正自己MT5的設定。將下一章介紹的四層全部打開ON即可解決。
② TRADE_RETCODE_SERVER_DISABLES_AT = 10026(經紀商端為OFF)
這是伺服器(也就是經紀商)端禁止該帳戶進行自動交易的狀態。無論怎麼檢查終端機的設定都無法解決。常見於部分紅利帳戶、美分帳戶、競賽帳戶等條款中規定「不可使用EA」,或因違反條款等原因,經紀商以帳戶為單位停用了演算法交易。
意義: 伺服器端的自動交易被停用(AutoTrading disabled by server)
常數: TRADE_RETCODE_SERVER_DISABLES_AT
值 : 10026
唯一的處理方式是向經紀商確認。請聯繫客服確認該帳戶類型是否支援EA(是否需要變更為支援帳戶或重新開戶)。
| 代碼 | 常數 | 阻擋方 | 處理方式 |
|---|---|---|---|
| 10027 | TRADE_RETCODE_CLIENT_DISABLES_AT | 自己的MT5終端機 | 開啟終端機的四層許可(本文可解決) |
| 10026 | TRADE_RETCODE_SERVER_DISABLES_AT | 經紀商的伺服器 | 向經紀商確認該帳戶是否可用EA |
MT5的交易許可為四層結構 — 全部ON才能運作
在MT5中,EA要能送出訂單,需要經過四個獨立的開關。只要有一個是OFF,訂單就無法送出。如果遇到「明明昨天還在動」的情況,通常就是這四層中的某一層被關掉了。
第一層:工具列的「演算法交易」按鈕(整個終端機)
MT5上方工具列的**「演算法交易」按鈕**。ON時顯示綠色的播放符號(▶),OFF時則顯示紅色的停止符號。快速鍵是Ctrl+E(意外地常有人不小心按到而把它關掉)。若此處為OFF,所有圖表、所有EA的下單都會被整批停止,並回傳10027。
第二層:選項設定中的「允許演算法交易」
工具 → 選項 → 專家顧問 分頁中的「允許演算法交易」勾選項。這是第一層按鈕的基礎設定,若此處未勾選,按鈕即使打開ON也無法運作,或即使打開也無法送出訂單。
同一分頁中還有「當~時停用演算法交易」相關的勾選項(切換帳戶時/切換設定檔時/圖表商品或週期變更時)。若勾選了這些項目,切換帳戶的瞬間等情況下,第一層的按鈕會自動變回OFF。「有時候會莫名其妙停下來」的真相,多半就是這個。
第三層:各圖表EA設定中的「允許演算法交易」
在圖表上插入EA時的對話框(或在圖表上的EA名稱按右鍵→設定)中,「一般(Common)」分頁 → 「允許演算法交易」勾選項。這是只對該圖表上該EA生效的開關。若此處未勾選,就會出現其他EA都能運作、唯獨這個EA不動的情況(此時 MQLInfoInteger(MQL_TRADE_ALLOWED) 會回傳false)。
第四層:圖表右上角EA圖示的狀態
EA正確載入後,圖表右上角會顯示EA名稱與一個小圖示(帽子符號)。
- 彩色(藍色系)的帽子 = EA正在運作中,可進行交易
- 灰色的帽子/顯示取消符號 = EA已載入,但無法交易(上述①~③其中一層為OFF)
- 完全沒有顯示EA名稱 = EA根本沒有載入到圖表上(插入失敗或已被移除)
此圖示只是「結果的顯示」,並非可直接操作的開關,但是能一眼確認狀態的最快檢查點。表現方式可能因版本略有不同。
| 層級 | 位置 | 影響範圍 | MQL5偵測方式 |
|---|---|---|---|
| ① 演算法交易按鈕 | 工具列(Ctrl+E) | 整個終端機 | TERMINAL_TRADE_ALLOWED |
| ② 選項中的許可 | 工具→選項→專家顧問 | 整個終端機 | TERMINAL_TRADE_ALLOWED |
| ③ 各圖表的許可 | EA設定→一般分頁 | 僅該圖表的EA | MQL_TRADE_ALLOWED |
| ④ EA圖示 | 圖表右上角 | 狀態顯示 | —(①~③的結果) |
30秒快速排查(依此順序檢查)
- 工具列的「演算法交易」按鈕是綠色(▶)嗎? → 若是紅色,點擊開啟ON(Ctrl+E)
- 圖表右上角有沒有顯示EA名稱與彩色的帽子圖示? → 若為灰色請看下一步,若連名稱都沒有請重新插入EA
- EA設定 → 一般分頁 →「允許演算法交易」是否已勾選? → 若未勾選請勾選並重新套用
- 工具 → 選項 → 專家顧問 →「允許演算法交易」是否已啟用? → 同時檢查「切換帳戶時停用」等相關勾選項
- 確認帳戶資訊 — 是否用投資者(僅供檢視)密碼登入? → 改用交易密碼重新登入
- 1~5全部確認無誤卻仍出現10026 → 向經紀商確認該帳戶是否可使用EA
大多數情況只需步驟1~3即可解決。
容易被忽略的5個原因
① 使用投資者密碼登入(僅供檢視)
MT5帳戶有交易密碼與投資者密碼(僅供檢視)兩種。用投資者密碼登入時,無論手動或自動都完全無法下單,即使按下演算法交易按鈕也無法交易。這種情況常發生在把帳戶展示給他人看之後,或密碼管理工具記住了舊密碼的情況。在MQL5中可透過 AccountInfoInteger(ACCOUNT_TRADE_ALLOWED) 回傳false來判斷。請改用交易密碼重新登入。
② 經紀商在該帳戶類型上禁止使用EA(10026)
部分美分帳戶、附贈紅利的帳戶、競賽帳戶可能依條款規定不可使用EA。此時伺服器端會拒絕,因此回傳10026,終端機端無法解決。請確認開戶時的條款,必要時變更為支援EA的帳戶類型。
③ 終端機重啟、更新或切換帳戶後按鈕又變回OFF
在MT5更新之後,或在啟用了選項中「切換帳戶時停用演算法交易」等設定的環境下,演算法交易按鈕可能會變回OFF。這是典型的「上週還在動,卻不知不覺間停了」的模式。建議養成每次重啟或切換後都確認按鈕顏色的習慣,或者取消選項中的自動停用勾選項。
④ VPS自動啟動時自動交易仍維持OFF
在VPS運作環境中,即使已設定好「Windows重啟 → MT5自動啟動」的流程,也可能出現啟動後的MT5自動交易仍為OFF的情況。MT5在啟動時可透過 /config 傳入設定檔(ini檔),並在 [Experts] 區段中指定自動交易許可(AllowLiveTrading)以及EA的自動附加。若有設定自動啟動,請務必連同這個啟動時設定一併規劃,並在每次重啟後務必以遠端方式確認圖表右上角的圖示是否顯示為彩色。由於VPS本來就是「為了無人值守運作」的環境,若疏於這項確認,可能造成數天到數週的機會損失。
⑤ 混淆了模擬帳戶與正式帳戶
如果遇到模擬帳戶中EA能運作、正式帳戶卻不動(或反過來)的情況,請確認MT5目前登入的是哪一個帳戶。常見的情況包括選項中的「切換帳戶時停用演算法交易」生效導致按鈕被關閉,或只有正式帳戶端是用投資者密碼登入。只要查看導航器的帳戶號碼與終端機右下角的連線顯示,10秒內就能確認。
用MQL5偵測此狀態(給EA開發者)
10027/10026最麻煩的地方就是「悄悄停下來」。若能讓EA端自行透過紀錄與提醒回報是哪一層在阻擋,就能大幅降低支援成本。會用到以下四個函數。
| 函數 | 檢查的內容 |
|---|---|
TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) | 整個終端機的演算法交易許可(按鈕+選項) |
MQLInfoInteger(MQL_TRADE_ALLOWED) | 此EA(此圖表)的交易許可 |
AccountInfoInteger(ACCOUNT_TRADE_ALLOWED) | 帳戶是否可交易(投資者登入時為false) |
AccountInfoInteger(ACCOUNT_TRADE_EXPERT) | 帳戶是否允許EA交易(伺服器端設定) |
// 找出是哪一層在阻擋自動交易並輸出紀錄
bool CheckAlgoTradingAllowed()
{
bool ok = true;
if(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
{
Print("BLOCKED [Terminal]: AutoTrading button is OFF (toolbar / Ctrl+E) or disabled in Options");
ok = false;
}
if(!MQLInfoInteger(MQL_TRADE_ALLOWED))
{
Print("BLOCKED [Chart/EA]: 'Allow Algo Trading' is unchecked in this EA's Common tab");
ok = false;
}
if(!AccountInfoInteger(ACCOUNT_TRADE_ALLOWED))
{
Print("BLOCKED [Account]: trading not allowed - investor (read-only) login?");
ok = false;
}
if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
{
Print("BLOCKED [Server]: broker disabled EA trading for this account (retcode 10026)");
ok = false;
}
return ok;
}
運用要點
在OnInit中檢查一次並發出警告,OnTick中則不中斷執行,是常見的做法。
int OnInit()
{
if(!CheckAlgoTradingAllowed())
Alert("EA loaded, but algo trading is blocked. See Experts log for the reason.");
return INIT_SUCCEEDED; // 不要設為 INIT_FAILED
}
若此處設為INIT_FAILED,使用者在打開按鈕之後就需要重新插入EA的額外步驟。只要讓載入本身成功,一旦使用者打開演算法交易按鈕,交易就能立即開始。在OnTick端,建議只在狀態改變時輸出一次紀錄(不要每個Tick都Print),這樣Experts分頁才不會被灌爆。
此外,在OrderSend()的retcode收到10027 / 10026時,若能連同常數名稱一併輸出紀錄,事後追查會更方便。
if(res.retcode == TRADE_RETCODE_CLIENT_DISABLES_AT) // 10027
Print("Order rejected: AutoTrading disabled on YOUR terminal. Turn ON the Algo Trading button.");
else if(res.retcode == TRADE_RETCODE_SERVER_DISABLES_AT) // 10026
Print("Order rejected: broker disabled autotrading for this account. Contact your broker.");
FXEA365所提供的EA,其圖表上的儀表板設計為隨時顯示自動交易的ON/OFF狀態,因此只要看一眼畫面,就能立刻察覺這種「靜悄悄停下來」的狀態。
優先順序檢查清單
| 優先度 | 確認項目 | 處理方式 |
|---|---|---|
| 🚨 首先 | 演算法交易按鈕為紅色(OFF) | 點擊開啟ON(Ctrl+E) |
| 🚨 首先 | 圖表右上角的EA圖示為灰色 | 依序確認四層 |
| ⚠️ 接著 | EA設定・一般分頁的「允許演算法交易」 | 勾選後重新套用 |
| ⚠️ 接著 | 選項中的許可+自動停用勾選項 | 開啟許可・重新檢視自動停用設定 |
| ✅ 確認 | 是否用投資者密碼登入 | 改用交易密碼重新登入 |
| ✅ 確認 | 10026(伺服器端拒絕) | 向經紀商確認帳戶的EA可用性 |
| 🛠 開發 | EA靜默無反應 | 實作上述分層檢查程式碼 |
總結
- 「EA不動作」原因的第一名是自動交易(演算法交易)被停用。特徵是不會跳出錯誤,而是靜悄悄地沒有反應。
- 10027 = 自己的終端機端為OFF(自己可以修正)、10026 = 經紀商端為OFF(需向客服確認)。
- MT5的交易許可分為①工具列按鈕 ②選項 ③各圖表的EA設定 ④圖示顯示四層。全部ON才能真正送出訂單。
- 投資者密碼、切換帳戶時的自動關閉、VPS重啟後按鈕變回OFF,是三大容易被忽略的陷阱。
- EA開發者可透過
TERMINAL_TRADE_ALLOWED/MQL_TRADE_ALLOWED/ACCOUNT_TRADE_ALLOWED/ACCOUNT_TRADE_EXPERT讓EA自行回報是哪一層被擋住。
錯誤代碼的完整整理請參閱 MQL5 / MT5 錯誤代碼對應總整理,具備狀態常駐顯示儀表板的免費EA請參閱 EA一覽。
常見問答
Q:我已經把演算法交易按鈕打開ON,但EA還是不進場。
請確認除了按鈕(第一層)以外的其他層級。特別常見的是各圖表EA設定(一般分頁)中「允許演算法交易」未勾選。可透過圖表右上角的EA圖示是否顯示為彩色來做最終確認。若圖示已顯示彩色卻仍不進場,很可能不是自動交易的問題,而只是EA的進場條件尚未成立(請確認Experts分頁的紀錄)。
Q:10027 與 10026 有什麼不同?
10027(TRADE_RETCODE_CLIENT_DISABLES_AT)是你自己的MT5終端機停用了自動交易,可透過修改終端機設定解決。10026(TRADE_RETCODE_SERVER_DISABLES_AT)則是經紀商的伺服器以帳戶為單位禁止自動交易,終端機端無法解決,請向經紀商確認該帳戶類型是否可使用EA。
Q:明明昨天還能正常運作,自動交易卻莫名其妙變成OFF了。
很可能是選項(工具 → 選項 → 專家顧問)中「切換帳戶時/切換設定檔時停用演算法交易」相關的勾選項所導致。此外,MT5更新後也可能以按鈕OFF的狀態啟動。若採用VPS運作,請務必將重啟後的確認納入例行檢查流程。
Q:手動下單可以,但只有EA無法下單。
若手動下單能成功,代表帳戶本身是有效的。問題出在各圖表的EA設定(一般分頁)或工具列的演算法交易按鈕為OFF。由於手動交易與「演算法交易」的許可無關,能正常送出,因此這種症狀強烈顯示是自動交易層級被停用所致。若仍無法解決且出現10026,則代表經紀商限制了該帳戶使用EA的權限。
相關文章
📧 漲價預告 + 免費5天郵件課程
所有EA目前均為首發價,並將隨銷量階梯式上調。在每次漲價前收到通知,另有每日一封郵件:自動交易本質、正確解讀回測、券商選擇技巧。
※ 嚴格保護隱私。可隨時取消訂閱。