Why Do Expert Advisors Stop Working?
An Expert Advisor runs well for months, then the results turn. Most of the time the code did not change. Something around it did: the market, the costs, the broker, the platform, or the size of the bets. Here are the six usual causes and how to check each one.
1. The market changed (regime change)
Every EA is built on a pattern: ranges, trends, quiet sessions, pullbacks. When the market moves into a different mode, the pattern can stop paying. A range EA meets a strong trend. A grid EA meets a move far bigger than anything in its test.
Gold gave a clear example this year. Spot gold made a record high of about $5,595 an ounce on 29 January 2026 and fell about 9.5–9.8% the next day, its biggest one-day fall since 1983, after the Fed chair news and a dollar rebound (Kitco, 30 Jan 2026; QNA/Reuters data, 31 Jan 2026). An EA tested only on calmer years had never seen a day like that.
Check: compare the last 3 months of the market with the test period. Is the daily range much bigger or smaller? Is the market trending where it used to range? See how a gold EA can be stressed against big moves in our sister note EA stress test on gold.
2. Costs and spread are higher than in the test
Spread, commission, swap and slippage eat small edges first. An EA that makes a few points per trade can turn flat when the spread widens or a commission is added.
The MetaTrader 5 tester itself shows why tests can look too clean. With generated ticks, "a spread fixed in the appropriate bar is used", while testing on real ticks is "as close to real conditions as possible" (MetaTrader 5 Help, real and generated ticks). Swap is a separate cost per symbol and side (SYMBOL_SWAP_LONG, SYMBOL_SWAP_SHORT in the symbol properties), and it matters for EAs that hold trades overnight.
Check: re-run the test on real ticks with your broker's commission. Then compare the average spread in your live trade history with the spread used in the test.
3. The broker or server changed
Each broker sets its own rules per symbol: minimum stop distance (SYMBOL_TRADE_STOPS_LEVEL), freeze level (SYMBOL_TRADE_FREEZE_LEVEL), lot step, filling type, trading hours. Move to a new broker or server, or let the broker change a setting, and orders that worked can start to fail.
An MQL5 article puts it simply: these conditions "stay invisible until an OrderSend quietly fails against one" (Broker Reality Check, Part 1, MQL5). The tester uses your own broker's specs, so it does not warn you.
Check: read the Experts and Journal tabs for errors like invalid stops, invalid volume or unsupported filling mode. Compare the symbol specification on the old and new server.
4. It was overfitted to the past
If the inputs were tuned until the backtest looked perfect, the EA may have learned the noise of one period, not a real edge. It then fails on data it has never seen.
MetaTrader 5 has a built-in check for this. Forward testing is "the repeated run of the best optimization results on a different time period", which helps you "avoid parameters fitting in certain areas of historical data" (MetaTrader 5 Help, strategy optimization).
Check: turn on Forward in the optimization settings. If the forward period looks much worse than the back period, the inputs are fitted, not robust. Many inputs and few trades are a warning sign too.
5. A platform or EA update changed the behaviour
MetaTrader gets new builds often, and EAs get new versions. A new build can change how the terminal or tester behaves, and a recompiled EA is a new program. MetaQuotes lists the changes in each release note, for example the large AI assistant update in build 6060.
Check: note the terminal build and EA version on the day the results changed. If both changed at once, test the old EA file on demo to see which one made the difference.
6. The risk size grew faster than the account
Sometimes the EA is fine but the lot size is not. Lots raised after a good month, a compounding setting, or a second EA on the same account can turn a normal drawdown into a margin call. On a prop account, the daily loss or max loss rule can end the account before the EA has time to recover.
Check: look at the largest floating loss in your history and ask what it would be at today's lot size. For a prop account, run your numbers through our prop firm rule check.
What to do when your EA stops working
- Do not change ten things at once. Stop or cut the size first, then find the cause.
- Read the logs. Errors point to broker or platform causes (3 and 5).
- Compare live trades with the backtest over the same dates. Different trades mean costs, ticks or broker rules (2 and 3). Same trades with worse results mean the market changed (1).
- Run a forward test on the original inputs to check for overfitting (4).
- Re-size to the drawdown you can live with (6).
If the EA was written with AI, the same checks apply. We explain why in Can ChatGPT write a profitable EA? and show a safe coding workflow in How to use the MetaEditor AI assistant.
FAQ
Why does my EA work in the backtest but not live?
Most often: the test used generated ticks or a fixed spread, costs were left out, or the inputs were fitted to the test period. Test on real ticks with your real costs and run a forward test.
Why did my EA stop opening trades?
Check the Journal for errors. A changed stop level, lot step, filling type or trading session on the broker side is a common reason. So is a filter in the EA (spread, time, news) that now blocks every signal.
Can an EA work again after it stops?
Sometimes. If the cause was costs, broker settings or size, fixing them can bring it back. If the market mode changed, the EA may only work again when that mode returns, and nobody knows when that will be.