Why Do Strategies Perform Differently in Backtesting and Live Trading?

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?

My theory:

the price movement in the stock market is like particle movement at the quantum level. As soon as you interact with it you change the market state: eg one buy order could lead to a full bear market thanks to overleverage. And you had no way of knowing that.

With backtesting you are essentially studying a frozen market state - model it however you like, but you cannot influence it, hence your model remains incomplete.