A common question among MetaTrader users comes from backtest results that appear to change for no reason. Without changing any settings like inputs, the currency pair, or the date ranges used, the backtest results change with every click of the start button. As I mentioned in previous posts on MetaTrader backtesting, MT4 assumes the spread on historical data rather than using recorded data. All charts in the software, and all trading software for that matter, display bid data. The ask is not recorded.
Trading incurs spread costs on every execution. MetaTrader has no choice but to make assumptions trading costs because the historical ask data is unavailable. The way it does this is by taking the current spread of the currency pair under study.
If you find this especially annoying, the easiest way to lower your frustration is by disconnecting from the broker. Severing the connection prevents the assumed spread from updating. The backtest results will stop jumping around.
Femto Trader says
I found some months ago a very useful software called MT4i Spread Controller. You can set your own spread for backtesting using this software.