Spread is normally constant in the backtest, unless you use historical spreads. The long exit price stored in the .csv file is simply TradePriceClose - Spread. Since Spread is the same, the difference that you observe means that you are logging a slightly wrong exit price. Store the current trade pointer, print out its TradePriceClose after exiting it, and compare. Somewhere there lies the problem.