This is the single most common heartbreak in automated trading, and it’s rarely because the EA is “fake”.
The usual culprits, in order: (1) the backtest used poor tick data or a 90% model instead of every-tick 99.9%; (2) spread and slippage on the live account are wider than the test assumed; (3) the parameters were curve-fit to the past — a profit factor above ~2.5 over many years is a red flag, not a selling point; (4) the live broker’s leverage/feed differs from the test.
The defense I trust: out-of-sample testing (optimize on the first half, validate on the untouched second half) and treating suspiciously perfect numbers with suspicion. What’s the biggest backtest-vs-live gap you’ve personally hit?
The usual suspects, in order of how often they’re the cause: (1) over-optimization — the EA memorized the past instead of learning a pattern; if you optimized many parameters over the same data you tested on, this is almost certainly it; (2) unrealistic backtest conditions — default spread, no slippage, no commission; (3) regime change — the EA is genuinely fine but was built for a volatility/trend regime that ended; (4) broker differences — spread, stop levels, quote feed. The diagnostic: run a walk-forward test (optimize on 2019–2023, test untouched on 2024–2025). If the untouched period fails, it was #1 all along — which is the most common answer.
Seconding over-optimization. My rule now: the fewer parameters I tune, the closer live results track the backtest. Every extra optimized input is another way to memorize noise.