EA not taking trades? Broken, or deciding not to trade
EA not taking trades in MT5? Tell a broken setup from an EA that is choosing not to trade: permissions, Journal error codes, skip reasons and demo vs live.
Key takeaways
- Read the Experts and Journal tabs of the Toolbox before changing any setting. Error codes mean a fault; a logged skip reason means the EA is working and chose not to trade.
- An MT5 EA needs three switches on: the Algo Trading toolbar button, Allow algorithmic trading in Tools → Options → Expert Advisors, and Allow Algo Trading on the EA’s own Common tab. The broker must also allow EAs on the account.
- An EA that talks to a server also needs its address under Allow WebRequest for listed URL. Without it, the request fails, typically with error 4014.
- A quiet chart is not proof of a fault. Spread limits, news blackouts, daily loss limits, position caps and a size below the minimum lot all stop trades on purpose.
- When an EA works on demo but not live, compare symbol names, netting or hedging, minimum lot and volume step, spreads, and whether the broker allows EAs on that account type.
On this page
- EA not taking trades: the 60-second triage
- The three switches and the chart icon
- WebRequest: the fourth permission for server-connected EAs
- Account and broker causes
- Decode the Journal and Experts tabs
- Working as designed: the reasons a well-built EA skips
- Works on demo, silent on live: the usual suspects
- Still stuck? What to send the EA’s developer
- How PipWarden shows why it did not trade
An EA not taking trades is either blocked (by a setting, the broker or an error) or working as designed and deciding not to trade. To tell which, read the Experts and Journal tabs of the Toolbox (Ctrl+T) before you change a single setting: error lines point to something you can fix, and a logged reason for skipping means the EA is doing its job.
An Expert Advisor (EA) is a program that runs inside the MetaTrader 5 desktop terminal and trades by itself.
EA not taking trades: the 60-second triage
- Look at the chart’s top-right corner. A running EA shows its name and a small hat icon there (MT5 help: Expert Advisors). A blue hat means it may trade; a grey hat means it may not. No name means the EA is not running on that chart; installing an Expert Advisor in MT5 covers attaching it.
- Open Toolbox → Experts. This tab shows what the EA prints. Error codes such as 10027, 10014 or 4014 mean something is blocking it; the decoder table below explains them.
- Open Toolbox → Journal. This tab records the terminal’s own events: connection, login and trade operations (MT5 help: platform logs).
- Look for a reason. Lines such as “spread too wide” or “daily loss limit reached” mean the EA checked a signal and one of its rules said no.
- Check the clock. A weekend, a holiday or a symbol outside its trading session produces no trades, and often no messages either.
A blue hat, no errors and no reasons usually means the entry conditions have not lined up: a selective strategy checks every new candle and passes on most of them. The useful yardstick is the EA’s own backtest: if it traded three times a month there, three quiet days on a live chart are not news.
The three switches and the chart icon
MT5 checks permission at several levels before an EA’s order reaches the broker (MQL5 reference: trade permission). The terminal and the EA levels are yours, set in three places:
| Switch | Where | When it is off |
|---|---|---|
| Algo Trading button | Main toolbar, or Ctrl+E | The button is red instead of green, no EA in the terminal may trade, and orders fail with 10027 |
| Allow algorithmic trading | Tools → Options (Ctrl+O) → Expert Advisors | The Options counterpart of the button: algo trading is off for the whole terminal |
| Allow Algo Trading | The EA’s properties (F7 on the chart) → Common tab | Only this EA is blocked: its hat is grey while other EAs can still trade |
MetaQuotes’ own help pages still use the older names, an “AutoTrading” button and “Allow Auto Trading” for both boxes (MT5 help: platform settings). They are the same settings. The smiley face that many guides describe belongs to MetaTrader 4; MT5 shows the hat.
Two error codes belong here. 10027, “Autotrading disabled by client terminal”, means your terminal blocked the order; 10026, “Autotrading disabled by server”, means the broker did.
If algo trading keeps switching itself off, check the options in the same Expert Advisors tab that disable it when you change account, profile, or a chart’s symbol or timeframe (the last blocks only that chart’s EA). Moving an EA to MetaQuotes’ virtual hosting also disables automated trading in the local terminal, on purpose (MT5 help: migration). The MT5 Algo Trading button guide covers each case.
WebRequest: the fourth permission for server-connected EAs
Some EAs talk to a server: for signals, a news calendar, a licence check or their settings. WebRequest is the MQL5 function they use for those HTTP calls, and MT5 only lets it reach addresses you list yourself under Tools → Options → Expert Advisors → Allow WebRequest for listed URL (MQL5: WebRequest).
If the address is missing, the call fails, typically with error 4014, “Function is not allowed for call” (MQL5 runtime error codes). The EA can show a blue hat and still never trade, because it never receives its instructions. Type the address exactly as the EA’s documentation gives it, starting with https://. WebRequest also cannot run in the Strategy Tester, so an EA that depends on it may show no trades in a backtest either.
For PipWarden, the address is the one already in the EA’s ApiUrl input. Without it, the EA’s panel shows WebRequest not allowed; adding it needs no restart.
The same tab’s Allow DLL imports box is labelled “potentially dangerous, enable only for trusted applications”. An EA that needs a DLL (a Windows library outside MQL5) says so in its documentation; an unexplained request for one is a warning sign.
Account and broker causes
- Investor password. A login with the investor (read-only) password lets you “see the account status, analyze prices, and work with your own Expert Advisors, but not trade” (MT5 help: authorization). Log in again with the master password.
- EAs disabled by the broker. Some servers or account types do not allow automated trading. Orders fail with 10026, and only the broker can change that.
- Market closed. Weekends, holidays and each symbol’s own sessions. Right-click the symbol in Market Watch and choose Specification to see its quote and trade sessions for each day of the week (MT5 help: Market Watch); orders outside them fail with 10018. The forex market hours tool shows the main sessions in your time zone.
- Symbol trade mode. The Specification’s Trade field can read Long only, Short only or Close only, and a broker can prohibit trading in a symbol entirely. A close-only symbol rejects new orders with 10044.
- Symbol suffixes. Some brokers name the same pair
EURUSD.m,EURUSDmorEURUSD.pro. An EA set up for a name the broker does not use trades nothing. Right-click Market Watch and choose Symbols to see the exact names.
Decode the Journal and Experts tabs
Trade requests come back with a five-digit return code (10004 to 10046); errors raised inside MQL5 itself have four digits. The meanings are MetaQuotes’ own, shortened, from the trade server return codes and runtime error codes.
| Code | Meaning | Whose side | What to check |
|---|---|---|---|
| 10027 | Autotrading disabled by client terminal | Your terminal | The Algo Trading button |
| 4752 | Trading by Expert Advisors prohibited | Usually your terminal | The three switches above |
| 10026 | Autotrading disabled by server | Broker | Ask the broker, or use an account type that allows EAs |
| 4014 | Function is not allowed for call | Your terminal | The WebRequest list above |
| 10018 | Market is closed | Broker hours | The sessions in the Specification; the weekend |
| 10044 | Only position closing is allowed | Broker | The symbol is close-only |
| 10014 | Invalid volume in the request | Your settings or the EA | The lot is below Minimal volume, above Maximal volume or off the Volume step in the Specification. See minimum lot size |
| 10019 | Not enough money to complete the request | Your account | Free margin is too low for the lot size |
| 10016 | Invalid stops in the request | The EA vs broker rules | The stop loss or take profit is closer to the price than the symbol’s Stops level |
| 10030 | Invalid order filling type | The EA | A fill policy the symbol does not offer (Filling in the Specification). The developer must fix it |
| 10031 | No connection with the trade server | Connection | The internet connection of the PC or VPS, and the broker’s server status |
| 4756 | Trade request sending failed | Either | A generic failure. Look for the five-digit return code logged with it |
The Stops level is a band around the current price, in points, inside which you cannot place a stop loss, take profit or pending order; an order inside it comes back as “Invalid stops” (MQL5: the checks a trading robot must pass).
Working as designed: the reasons a well-built EA skips
A well-built EA checks more than its entry signal, and each check can stop a trade. The quoted text is the label PipWarden shows in its signal log.
- The spread is too wide. The live spread is above the maximum set for the pair (“Spread too wide”). Spreads often widen around the daily rollover, so these skips cluster there.
- High-impact news. A news blackout pauses new entries around releases such as NFP or CPI for the currencies involved (“High-impact news”). By default, PipWarden’s window runs from 60 minutes before a release to 30 minutes after; see high-impact news in forex.
- Daily loss limit reached. Once the day’s losses reach the daily loss limit, no new trades open until the next day (“Daily loss limit reached”). See how to set a daily loss limit.
- Position and exposure caps. The account is at its maximum open positions (“Max open positions”), the pair is at its own cap, one position by default (“Position already open on pair”), or the trade would add to a currency already at its exposure cap (“Correlated exposure”).
- Free margin. The order would leave free margin below the minimum share of equity set for the account (“Not enough free margin”).
- The size is below the minimum lot. The risk-based size is smaller than the broker’s minimum, so the trade is skipped rather than opened bigger than the risk allows (“Risk below minimum lot”).
- The kill switch is on. The kill switch closes the bot’s positions, and no new trades open while it stays on (“Kill switch active”).
- No setup. The strategy found nothing to trade: “No clear trend”, “Trend too weak (ADX)”, “No entry trigger” or “Outside trading session”.
- A veto. Where PipWarden’s optional AI filter is available and switched on, it can block a trade but never add one (“Rejected by AI filter”).
The position size calculator runs this sum for any pair, and lot size for a $100 account goes through the small-account case.
Here is a day of those decisions in PipWarden’s signal log, as an illustrative demo log made up for this page, with no prices and no results.
| Time (UTC) | Pair | Decision | Reason |
|---|---|---|---|
| 07:00 | EURUSD H1 | No trade | Trend too weak (ADX) |
| 08:00 | GBPUSD H1 | Rejected | Spread too wide |
| 10:00 | AUDUSD H1 | No trade | No entry trigger |
| 12:00 | USDJPY H1 | Rejected | High-impact news |
| 13:00 | EURUSD H1 | Executed | MACD crossover |
| 14:00 | GBPUSD H1 | Rejected | Risk below minimum lot |
| 22:00 | EURUSD H1 | No trade | Outside trading session |
Six of the seven decisions ended without a trade, each with a reason, and none of them is a fault.
Works on demo, silent on live: the usual suspects
An EA that trades on demo and goes quiet on live is usually meeting a different account, not a different market. Compare the two:
- Symbol names. The live server may use a suffix the demo server does not.
- Netting or hedging. On a netting account “you can have only one common position for a symbol at the same time” (MT5 help: position accounting). An EA written for hedging, with several positions per pair, behaves differently.
- Minimum lot and volume step. A different minimum or step can turn a valid size into error 10014, or push a risk-based size below the minimum.
- Spreads. The live account type can be priced differently from the demo, so a max-spread filter that rarely fired on demo can fire often.
- Broker permissions. Some live account types do not allow EAs at all (10026).
- Account switch. With the disable-on-account-change option ticked, logging in to the live account switched algo trading off.
Before connecting real money, a structured run on demo shows what “normal” looks like for your setup; how to test an EA on a demo account has a checklist.
Still stuck? What to send the EA’s developer
“It doesn’t trade” is not enough to diagnose anything. Send:
- The log lines, with timestamps, from the Experts and Journal tabs. Right-click either tab and choose Open for the log files: the terminal’s in
Logs, the EA’s inMQL5\Logs, one file per day namedYYYYMMDD.LOG. - The MT5 build. Help → About shows the version and build.
- The account type. Demo or live, netting or hedging, and the broker’s server name.
- A screenshot of the symbol’s Specification window, with the stops level, filling, volume and sessions visible.
- The EA’s inputs, as a screenshot of the Inputs tab (F7 on the chart).
How PipWarden shows why it did not trade
Every signal lands in the dashboard’s signal log as executed, rejected or no trade, with the reason, as in the table above. Right before opening a trade, the EA rechecks your position limit and the pair’s spread limit with live data from your terminal; if either fails, the log shows the trade as skipped by the EA, with the reason.
The EA’s chart panel shows New trades: allowed or why they are blocked, and names these setup problems:
Bot status: paused: the bot has not been started on the dashboard. The EA connects and reports, but opens no trades until you start it.WebRequest not allowed: the platform address is missing from the WebRequest list.Another MetaTrader terminal is already running the EA for this account: the same token runs in a second terminal, such as a VPS and a home PC. This copy opens no trades until the other is removed. After a restart or update, the message can show for about half a minute, then clears.Settings: built-in safe defaults: the EA has no settings from the server yet, so it opens no new trades.
On a fresh setup, the first decision comes when the next candle closes: up to an hour on H1.
Alerts go to Telegram or email when trades open or close, when a limit is hit, and in a daily report; an “EA offline” alert tells you when the terminal stops reporting. Limits are checked before every order, but open trades run to their own stops and prices can gap past them.
PipWarden needs MetaTrader 5 on a Windows PC or VPS and a broker that allows EAs; it cannot run on a phone. See how it works and the features.
Forex and CFD trading is high risk, and you can lose money. This guide is not financial advice. Read the risk disclosure before you trade.
Frequently asked questions
Why is my EA attached to the chart but not opening any trades?
What does the grey hat icon on my MT5 chart mean?
Why does my EA work on demo but not on my live account?
How long can a working EA go without taking a trade?
Where can I see why my EA did not take a trade?
Educational content, not financial advice. Forex and CFDs are traded on margin and are high risk: you can lose money, and more than your deposit with some brokers. Examples use made-up numbers and show no real results. Read the risk disclosure.