I have been trading for a long time, and I have noticed that most EAs perform well in backtesting but poorly in live trading.
I even backtested an EA for the exact same month when it was running on a low-latency VPS. The backtest showed good results, but the actual trading performance was poor.
What could be the reason for such a big difference?
Is it due to tick data, spreads, slippage, execution speed, or something else? How can we identify the real cause?
I would start with the first trade where the two runs disagree, rather than the monthly profit total. A nearby VPS does not tell you whether the test and live EA saw the same input or used the same fill assumptions.
For that one trade, compare three stages:
Signal: same EA version, inputs, symbol specification, timestamp and completed/in-progress candle state.
Order request: same direction, size, order type, stop and target. Include rejected or cancelled requests.
Fill: requested price versus actual fill, spread, commission and exit reason.
If the signals differ, investigate data and calculation timing first. If the signals match but requests differ, inspect execution/state handling. If requests match but fills differ, compare the tester’s fill model and costs with the actual order history. Keep the original settings while doing this; changing parameters would hide the first divergence.
Can you post one anonymised backtest/live trade pair with timestamps, your platform and tester tick/spread settings? That would let us narrow the cause without guessing from the final P&L.
One thing I would check is the size of your stops and targets compared with the range of the bars you’re trading, especially on more volatile days.
If your entry, target, and stop any/all fall within the same bar, the finished bar alone doesn’t tell you which happened first. The target price could have been reached before you even entered. The backtest has to work that out using its available data and fill rules, which may not match what happened live.
Tight stops and targets inside a large bar can make that difference especially noticeable. I would compare a few of the trades that disagree and see whether that’s where the differences are occurring.