The previous post on slippage generated very good comments and I decided to address some of the points discussed in a follow-up post.
Slippage and Long-Term Systems
Last post concluded with a question:
How can you reduce slippage as a small trader?
You might not be able to reduce slippage in absolute terms, but you can still reduce the impact of slippage on your system performance.
By going “long-term”, a system will be less subject to the impact of slippage. Longer-term systems usually generate trades with larger average profits and the slippage costs consequently represent a smaller percentage of the overall trade P&L.
Let’s look at a longer timeframe of the Donchian Channel system studied in the initial post:
- Entry breakout: 100 days (vs. 20 days)
- Exit breakout: 50 days (vs. 10 days)
- Entry Stop: 5 x 199-day exponential ATR, risking 2% of Total Equity
And its stepped simulation results:
|Slippage (%)||Ending Balance||CAGR%||MAR||Modified Sharpe||Annual Sharpe||Max Total Equity DD||Longest DD||# Trades|
The number of trades drastically decreases (compared to the 20-day breakout system) while trade length increases: average trade duration is 119 days, while the average winning trade lasts 203 days.
Slippage obviously still has a detrimental impact on the performance – however its effect is much less felt than with the 20-day breakout system. The system keeps producing positive results across the whole slippage-stepped simulation. The MAR is “only” halved between the 0% slippage and 35% slippage cases.
Note that longer trades also occur rollover slippage, when having to move from one contract to the next. A “trade” lasting one year, could potentially involve buying and selling 12 times (if changing contract every month). However, rollover slippage is usually lower then entry/exit slippage, as it is less subject to price momentum and rollover can sometimes be traded as a calendar spread trade.
More granular Slippage test
The range of slippage over which the system above is tested is fairly wide and it might make sense to look at a smaller and more granular range – although if you re-read Bill Eckhardt’s interview in New Market Wizards, you will find that he advocates testing systems by trying to break them, to check their robustness (exaggerating slippage is one such way). If they still do not break, you might be onto something
By testing the 20-day breakout system over a range of slippage from 0% to 2% with 0.25% increments, I realised the impact of another Trading Blox system parameter: “Trade Always on Tick”. The performance drops much more between 0% and 0.25% slippage than for any other .25% increment.
The reason is that Trading Blox rounds up or down to the nearest tick (when the parameter is set to TRUE). Even if 0.25% represents much less than one tick, the slippage will be rounded up to one tick (this is of course more realistic).
Below are 2 stepped simulations with slippage ranging from 0% to 2%, with the “Trade Always on Tick” parameter swicthed from TRUE to FALSE
|Slippage (%)||Trade on Tick||Ending Balance||CAGR%||MAR||Modified Sharpe||Annual Sharpe||Max Total Equity DD||Longest DD||# Trades|
The combined impact of slippage and Always Trade on Tick show that backtesting results can be greatly affected by assumptions made about trading. Once again, bear in mind that this is a fairly short-term trading system.
“Slippage is pathological”
Finally, it was highlighted in the previous post comments that real-life slippage is a complicated “beast”, hard to model accurately.
This interesting article about CTAs highlights how large CTAs focus their R&D on reducing their market impact and the resulting slippage.
For the small trader, taking the long-term system route seems to be the easiest way to reduce the impact of slippage on the system performance
PS: thanks to Pumpernickel, Motomoto and Erik for their comments and thoughts on the initial post.
Picture credits: Coal Miki@flickr