MT5 EA Not Opening Trades: 7 Reasons, and How to Fix Each
An EA is on the chart, the clock is ticking, and no order appears. Before changing a single setting, open the Experts and Journal tabs in the Toolbox: MetaTrader almost always says why, in plain words, and the seven causes below cover nearly every case.
First: read the two tabs that already know the answer
Open the Toolbox at the bottom of MetaTrader (Ctrl+T) and look at two tabs.
Experts is where the EA talks. It logs when it starts, what it decided, and anything it refused to do. Journal is where the terminal talks: order requests, broker replies, connection changes. When an order fails, the reason appears here as a short phrase like not enough money or market closed.
Almost nobody reads these, and they answer the question most of the time. Everything below is really a guide to what those lines mean.
1. Algorithmic trading is switched off
The most common cause by a wide margin, and the easiest to miss because everything looks normal.
Look at the top right corner of the chart. A smiling face next to the EA name means it may trade. A sad face means it is loaded and will never send an order.
There are two separate switches and both must be on:
- The AutoTrading button in the toolbar. Green means on.
- Allow Algo Trading in the EA's own settings, on the Common tab. Right click the chart, choose Expert Advisors, then Properties.
The Journal names this one clearly: Expert Advisors are disabled, or autotrading disabled by client.
One more trap: MetaTrader turns AutoTrading off by itself when you change accounts or open a new profile. An EA that worked yesterday can be silent today for exactly this reason.
2. The account is netting, and the EA expects hedging
This one confuses more traders than anything else on MT5, and it is invisible unless you know to look.
On a hedging account, each position stands on its own, so an EA can hold a buy and a sell at once, or several buys at different prices. On a netting account, MetaTrader merges every position on a symbol into one: a second buy does not sit beside the first, it enlarges it, and a sell reduces it.
Any EA built around a grid, a basket or a hedge therefore cannot do what it was designed to do on a netting account. Some stop with an error, some quietly do nothing, and a few trade in a way the seller never intended.
Check which one you have: the account type is written in the Trade tab of the Toolbox, next to your balance, as Hedge or Netting. You cannot convert an existing account. Your broker opens a new one, which is usually a two minute job.
We wrote a longer explanation of the difference, including what MetaTrader does with your stop losses in each mode, in Hedging vs Netting Accounts in MT5.
3. The chart symbol is not the symbol the EA expects
Brokers rename instruments. The same pair can be EURUSD, EURUSD.m, EURUSD.raw, EURUSDmicro or EURUSD-ECN depending on where you opened the account.
If an EA is told to trade a pair by name, or if you attached it to the wrong chart, it will sit there politely and do nothing. Two checks:
- Is the EA attached to the chart of the instrument you expect, on the timeframe it was designed for? A strategy tuned for H1 attached to M1 is a different strategy.
- Does the symbol have a suffix? Open Market Watch (Ctrl+M) and read the exact name.
The Journal calls this one unknown symbol or invalid request.
4. The account cannot afford the order
The Journal line is not enough money, sometimes followed by [No money].
It means the order needs more margin than the account has free. There are two versions of this, and the second one surprises people:
- Your lot size is too large for the balance. Lower it and the problem goes.
- The symbol's own minimum lot is too large. On gold, the minimum is often 0.1 or 0.2 lots, and 0.2 lots of XAUUSD can need several hundred dollars of margin. An account below that can never open a single trade on that symbol, whatever the EA does.
An EA that does not check this before sending will retry on every tick and fill the Journal with the same refusal thousands of times. If your log looks like that, this is your cause.
Work out a lot size your balance can actually carry with our lot size calculator.
5. The market is closed, or the EA's own hours are
Two different clocks, and both can be the answer.
The broker's clock decides whether the instrument is trading at all. Forex closes for the weekend, and metals, indices and crypto CFDs each have their own sessions and daily breaks. The Journal says market closed or trade is disabled.
The EA's clock is its own setting, and it runs on server time, not yours. Most EAs have a start hour and a stop hour; if your broker's server sits three hours away from you, a window that looks like the London session on your watch is not the one the EA is using. The server clock is the one shown in Market Watch.
6. The conditions have not happened yet
The least satisfying answer, and often the right one.
An EA that decides on closed bars of H1 makes at most one decision an hour, and a strategy with a filter on it may pass several days without a valid signal. That is the strategy doing its job. Watching a fresh install for twenty minutes and concluding it is broken is the single most common false alarm in this niche.
Tell the difference like this: if the Experts tab shows the EA initialised with no errors, and no failed order appears in the Journal, nothing is broken. It is waiting.
If you want to see it make decisions quickly, run it in the Strategy Tester over a few months of history instead. That is what the tester is for.
7. A filter inside the EA is holding it back
Well built EAs refuse to trade in conditions they were not designed for, and a refusal looks identical to a fault from outside.
The usual ones:
- Spread filter. Many EAs skip entries when the spread is wider than some limit. At the daily rollover, on news, and on a raw account with commission, the spread can sit above that limit for a while.
- News filter. Some EAs stand down, or trade differently, around high impact events. Note that MetaTrader's economic calendar is not available in the Strategy Tester, so a news filter that works on a live chart reports itself as off during a backtest.
- Risk limits. A daily loss limit or a drawdown limit that has already tripped will keep the EA paused until the next day, usually with a line in the Experts tab saying so.
- Maximum open positions. If the EA already holds its limit, it stops adding.
If it is our EA
Forex Success AI writes what it is doing into the Experts tab, and there are three lines worth knowing:
- A note at startup that the account is netting. The grid needs a hedging account; see cause 2.
- A line saying an entry was skipped because free margin is not enough. That is cause 4, and the EA stands down for the rest of the bar rather than retrying every tick.
- A line saying trading is paused, with the reason, when a daily loss or drawdown limit has been reached. It resumes by itself.
The dashboard on the chart shows the same state without reading logs: whether trading is active or paused, the range in force, and the news window if one is open.
A two minute checklist
- Smiley face on the chart, AutoTrading green, Allow Algo Trading ticked.
- Trade tab says Hedge if the EA needs hedging.
- Right symbol, right timeframe, correct suffix.
- Free margin comfortably above the margin for one minimum lot.
- Market open, and the EA's hours set in server time.
- Experts tab: initialised, no errors.
- Journal: no repeated refusal.
If all seven pass and it still has not traded, it is waiting for its signal. Give it a few bars of its own timeframe before deciding otherwise.