I've come across some behavior regarding slippage that I find to be somewhat troubling, and I'm interested in getting a better feel for the mechanism behind the slippage calculations in backtesting.
As always, I'm trying to determine why real-time performance in some strategies is significantly different than backtesting. I'm highly familiar with all of the standard responses, but this one goes a little further.
I generally try to build a lot of slippage into backtests - way more than what I would expect normally. I "assumed" that slippage was being correctly modeled, so that if I attempted "live" trading (this is really just using live data, not real money) I should get approximately similar results.
What I'm finding instead is that - at least for stops - I do not believe Ninja calculates slippage correctly at all. Let me share an example:
I ran a backtest on 6B going back to 8/1/2010. In the first example, I built in no slippage on execution, and came out with a final net profit in that case of $21,207. This number was based on a total of 141 trades that were stopped out @ market, 6 contracts per trade on average. For this backtest, the average profit per trade was $62.37. I used limit orders on entries and profitable exits. Only stops were market trades.
I then ran the same backtest, except this time I incorporated 10 ticks of slippage.
Instead of getting negative profit out of the backtest, I got $19,662. The average profit per trade had simply dropped to $57.83.
141 trades that were stopped @ market, 6 contracts per trade, tick size of $6.25, tick slippage of 10 = $52,875 (I mean, who wouldn't want a trading system that makes 10 ticks like that per trade, guaranteed?) Yet the backtest showed a slight decline of $1,600.
So, based on this, I'd like a little more information regarding how slippage is actually calculated - for market orders, as well as for stop-market orders.
Kind Regards,
CG
PS I get the feeling that live trading (again, "live" being with live data, not real money) correctly models slippage, which is where I'm seeing the types of losses I was attempting to model in the first place.
Comment