Setup & troubleshooting
MT5 EA Not Trading? Diagnose It Step by Step
An EA that is not trading may be waiting correctly, failing to initialize, lacking permission or receiving rejected requests. First determine which stage it reaches. Changing random inputs until a trade appears can hide the original problem.
Identify the running program
Record the account's demo/live status, broker server, exact chart symbol, timeframe, EA name and release. Confirm you are looking at the terminal that contains the intended compiled file. Save the active inputs before making changes.
Start troubleshooting on a demo account. A helpful evidence set includes the time of the observation, a settings export and the relevant log lines. Avoid sending account passwords or other login credentials with a support request.
Check permissions at both levels
MT5 controls automated trading at platform level and for individual EAs. Both can affect whether a robot may trade. The official setup guide explains those controls and dependency permissions.
Confirm whether the product actually requires external libraries or web access before enabling them. Do not enable every permission as a general repair. If the program failed during startup, fix that specific failure before investigating its entry logic.
Locate the stage that stopped
| What you observe | What to investigate |
|---|---|
| No successful startup | File identity, inputs, dependencies and initialization messages. |
| Running, no signal | Required history, trading hours and documented entry conditions. |
| Signal, no request | Spread, exposure, session or other internal filters. |
| Request rejected | The server return code and accompanying details. |
| Order accepted, no position yet | Whether it is a pending order waiting for its trigger. |
This sequence prevents you from treating every quiet chart as a permission problem. A robot designed to wait for a rare setup may remain idle while functioning correctly.
Use the actual rejection reason
The MQL5 trade-server code reference identifies, among others, 10014 for invalid volume, 10016 for invalid stops, 10018 for a closed market and 10019 for insufficient funds. Record the returned code rather than guessing from the absence of a trade.
For invalid volume, compare the requested amount with the symbol's minimum and step. For invalid stops, inspect the requested prices and applicable restrictions. For insufficient funds, investigate the proposed exposure and margin calculation; depositing more money is not a debugging method.
Send a report that can be reproduced
Describe one case: “At this time, on this symbol, I expected this action because of this rule; the log showed this outcome.” Include the release, terminal build, inputs and relevant log excerpt. State whether the issue occurs in the tester, on a demo chart or elsewhere.
Change one thing at a time and keep the previous evidence. If the product documentation does not explain when an entry should occur, request that explanation before modifying the strategy. The baseline testing guide can help create a controlled reproduction.
Back to top