When an Expert Advisor does not trade, diagnose it in layers: installation, permissions, strategy conditions, then the exact broker response. Changing random inputs can hide the real problem and create new risk.
First checks when an MT4 EA is not working
- Confirm the EA appears under Navigator → Expert Advisors and is attached to the intended chart.
- Confirm global AutoTrading and the EA’s Allow live trading permission are both enabled.
- Verify account, symbol suffix, timeframe, Magic Number, market hours and inputs.
- Open Terminal → Experts and Journal; record the full message and numeric code.
- Change one cause at a time, then verify the log again.
Error → meaning → cause → fix
| Error | What it means / why it happens | How to fix it |
|---|---|---|
| EA missing from Navigator | File is in the wrong terminal or folder | Open Data Folder from that MT4 instance; move .ex4 to MQL4/Experts; refresh Navigator. |
| AutoTrading disabled | Global or per-EA permission is off | Enable the toolbar button and Allow live trading in EA properties. |
| Invalid account / license | Login, account type or bound license does not match | Verify broker server and license rules; contact vendor—do not bypass licensing. |
| DLL is not allowed | EA called an external library without permission | Enable only for a trusted required DLL; MetaTrader virtual hosting cannot run DLLs. |
| Trade disabled · 133 | The server rejects trading for the account or symbol. | Check the symbol’s trade permissions and account restrictions with the broker. Diagnose terminal permissions separately. |
| Market is closed · 132 | Requested instrument is outside tradable hours | Wait for the broker session; check holidays and symbol schedule. |
| Not enough money · 134 | Free margin cannot support the requested position | Reduce risk/volume; check leverage, margin and existing exposure. |
| Invalid stops · 130 | SL, TP or pending-order price violates the applicable price or distance rules. | Check current Bid/Ask, order direction, price precision and Stops Level. Recalculate position size if the stop distance changes. |
| Invalid volume · 131 | Lot is below minimum, above maximum or off-step | Use broker min/max/lot step and normalize the requested volume. |
| Trade context busy · 146 | Another trade operation is still processing | Serialize requests, wait briefly and retry with a bounded policy—not a tight loop. |
| Off quotes · 136 / requote · 138 | No executable quote or price moved | Check connection/spread; refresh price; use sensible slippage logic. |
| Connection problem · 6 | Terminal lost broker connectivity | Confirm server, internet, login, firewall and VPS status; avoid repeated orders until restored. |
EA loads correctly but opens no trades
This is not necessarily an error. Many EAs wait for a new bar, a specific session, maximum-spread conditions or several indicators to align. Confirm the documented symbol and timeframe, then look for log messages such as spread filter, trading window, maximum orders or news filter. Do not loosen every filter merely to force an entry.
“No setup found” is strategy behavior. Error 133 or a disabled permission is an execution block. The remedy is different.
Invalid Account and Invalid License
Commercial EAs may bind a key to an account number, broker, platform or maximum number of activations. Check that the entered account is the one registered with the vendor and that the license server is reachable. Never download patched files or disable security controls; request a legitimate reset or activation from the vendor.
DLL is not allowed
Some EAs use external libraries for licensing or additional functions. Only enable DLL imports if the file comes from a trusted source and the official manual requires it. MetaTrader’s integrated virtual hosting rejects DLL use, so migrate such an EA only to a compatible conventional VPS approved by the vendor.
Stops, volume, margin and execution errors
Error 130 — Invalid stops
The stop-loss, take-profit or pending-order price may be too close to the market, on the wrong side, or improperly normalized. Read the symbol specification and calculate with the instrument’s digits; do not solve it by removing protection.
Error 131 — Invalid trade volume
Normalize lots to the broker’s minimum, maximum and step. A computed 0.013 lot is invalid when the step is 0.01 unless rounded correctly, and rounding upward can exceed the intended risk.
Errors 136 and 138 — Off quotes and requotes
These usually reflect unavailable or changed prices. Check connectivity and spread, refresh the quote, and use bounded retry logic. Repeated immediate submissions can amplify the problem.
Error 146 — Trade context busy
MT4 processes a trade operation serially. Two charts or routines can collide. The EA should wait for the prior operation, re-check the market and stop retrying after a controlled limit.
VPS synchronization and duplicate-instance problems
After a MetaTrader virtual-hosting migration, configuration changes are not automatically remigrated. Synchronize again after changing charts or inputs. With a Windows VPS, confirm the terminal is open, logged in and set to start after reboot. In both cases, avoid trading the same account/EA/Magic Number from local and remote terminals simultaneously.
What to send support
Remove passwords, license keys and personally identifying information before sharing screenshots or logs.
Separate server restrictions from terminal permissions
Error 4109 means trading is not allowed for the program: check the EA’s Allow live trading setting and global AutoTrading. Error 4112 means automated trading is disabled by the server. Error 133 concerns a server trading restriction. These are different checks; switching the local toolbar button cannot remove a broker restriction.
Error 65 is an invalid-account response from the trading server. A vendor’s “invalid license” message can instead come from its own account binding, subscription or activation service. Record the exact message and source before choosing whom to contact.
Handle uncertain results and dynamic stop rules
After trade timeout 128, the request’s outcome may be unknown. Reconcile open orders, pending orders and recent history before retrying. Match ticket information where available, then symbol, Magic Number, side, volume and time. An immediate repeat can create a second order if the first request succeeded.
A Stops Level of 0 can mean no fixed minimum or a dynamic server rule; it does not guarantee that every stop will be accepted. Freeze Level governs restrictions near the market on modifying, cancelling or closing orders. Check it separately. Do not widen a stop merely to silence Error 130 without checking the new cash risk.
MQL4 error codes and symbol properties define these distinctions.
Official error reference
Numeric descriptions are based on the official MQL4 error-code reference. Broker implementation and EA-specific messages can add further conditions.