21/08/2026
Your converted Expert Advisor compiled without a single error, and that is the part nobody should find reassuring.
Since MetaTrader 5 build 6060 in July 2026, the MetaEditor your EA already lives in ships an AI assistant, free on the MQL5 Lite plan. One of MetaQuotes' own published example prompts reads: "Convert this MQL4 Expert Advisor to MQL5 using modern language features and the Standard Library." The conversion is now one prompt away. The checking is not.
The characteristic failure of an MT4 to MT5 migration does not produce anything wrong to find. It produces an absence — something that should have happened and didn't. The compiler, the Strategy Tester and the demo account are error detectors, and this failure class does not produce errors.
One break-even manager held three open positions and moved none of them to break-even. The loop iterated OrdersTotal(), which on MT5 counts pending orders only. Three positions, no pending orders, so a faithfully recompiled MT4 loop correctly iterated over nothing. Time to detection: indefinite. There was no event to notice.
The one that costs more is subtler. A crossover EA read the wrong end of a CopyBuffer array, and because the wrong-end read applied uniformly to every bar, the equity curve came out mediocre rather than obviously broken. A broken backtest gets investigated. A mediocre one gets re-optimised — and every hour of that work fits the parameters more tightly to the bug.
Translation is not the risky part. These tools are good at it. The risky part is that a clean compile plus a matching backtest is the specific pair of signals least able to detect how conversions actually break.
If the failures are absences, the only way to find them is to write down what should be present before you go looking. Which of your EA's actions would leave no trace at all if they silently stopped happening?