Slippage can make or break your trading system.
Hard to believe? Read on and check the tests and charts further below…
We recently talked about some data pitfalls that can affect your trading and testing of mechanical systems. Slippage was not mentioned. However, this is a critical piece of data to integrate in your back-testing parameters (and to get right if you want to get accurate backtest results).
I decided to study the impact of slippage on one of the trading systems from the suite used for the State of Trend Following report.
Impact of Slippage on Donchian System
The system under study is the simple Donchian Channel with the following parameters:
- Entry breakout: 20 days
- Exit breakout: 10 days
- Entry Stop: 2 x 39-day exponential ATR, risking 1% of Total Equity
One of the good things about Trading Blox is the wide range of parameters you can test in your simulation. There are over 30 simulation parameters such as interest, rollover, commissions, handling of lock-days, which can be tested to check their impact on the system performance.
So, I quickly fired up Trading Blox, and ran a stepped simulation with slippage varying from 0% to 35%.
Slippage in Trading Blox
The slippage percentage is not an amount directly added/substracted to the entry/exit price. Instead it takes into account the range of the day of the order. From Trading Blox documentation:
For a long entry, the slippage factor is calculated by measuring the range from the theoretical entry price to the day’s highest price, and multiplying that amount by the Slippage Percent. (For short entries, the slippage factor is calculated by measuring the range from the theoretical entry price to the low). The slippage factor is then added to, or subtracted from the theoretical entry price, to obtain the simulated fill price.
Here’s how it works for a buy trade:
Slippage percent: 25%
Theoretical buy order price: 100
High Price (for the day): 120
Slippage Factor: (120 – 100) x 0.25 = (20 x 0.25) = 5
Simulated fill price: Order Price + Slippage Factor = (100 + 5) = 105
The distance between the high price and the order price is multiplied by the slippage factor. In this example, the difference between the high price and the order price is 20 points. The 20 points are multiplied by the 25% slippage to get an estimated slippage of 5 points. The fill price for the order will be 5 points worse than the stop order price of 100 simulating a fill at 105.
Slippage test results
Here are the results of the stepped simulation and a chart of the resulting equity curves for each stepped test:
|Slippage (%)||Ending Balance||CAGR%||MAR||Modified Sharpe||Annual Sharpe||Max Total Equity DD||Longest Drawdown||# Trades|
The impact of slippage is rather dramatic. Even ignoring the extreme cases, consider the difference between a back-test with no slippage and the next one up, with a small 5% number: the performance is cut drastically to a point where the MAR ratio of the system is more than halved (1.08 v 0.51) as both CAGR and Drawdowns deteriorate sharply.
Imagine setting up a buy order for 100 tomorrow. If the price trades between 99 and 102, your order should be filled. However, with 5% slippage, the fill price would be 100.1 instead of the order price of 100. This is the difference between a good system and a not-so-good one…
Slippage: fact of life for Trend Followers
Most Trend Following systems get in and out in the same direction as the current price momentum. Therefore, this keeps them more exposed to slippage than a mean-reversion system, for example.
Unfortunately, this is not something that can be tested, apart from running tests in real markets (or having some more complete and granular data, such as tick data, complemented with some book depth information).
An idea to investigate would be to avoid the obvious price levels that every trader and their dog are watching (ie breakout of 20-day range, 50-day moving average, etc.). Alternative but close parameter values (19 or 21-day breakouts, 50-day MA + 1%, etc.) could possibly give similar results (they should if the system is robust) but trade at levels less watched and possibly expose the system to less slippage.
Slippage at the “Pros”
I was recently talking to an emergent Trend Following hedge fund in London. They mentioned their team of two traders to enter and manage positions. You could think that the need for two traders in a Long Term Trend Following fund managing under $20M is possibly superflous. However the result they were getting is negative slippage, which, as the backtest results show, can mean much more than just a nice little extra boost to the overall performance.
Aspect Capital, one of the Trend Following Wizards, is an example of a large fund having developed a research team and infrastructure to enhance their trade executions, with the use of algorithmic trading (execution) in combination with their trading desk. This is used in addition to their main alpha-generating automated trading signals. Their approach is discussed in an interview with Automated Trader magazine:
“At the moment about 90% of our electronic trading is managed by our algorithmic execution model”
“we see automation as being of value in [...] removing our footprint in the market by keeping our order flow under the radar”
“We have a team of three people mostly focused on the execution algorithms”
Slippage: an essential part of a System
Slippage might be considered as an after-thought in developing an automated trading system, However, the results of our tests point to slippage being a core contributor to the overall system performance. This is further highlighted by the effort professional fund managers put in to improve their executions.
The question is: how can you reduce slippage as a small trader? Sure, your footprint is much smaller than the big funds, but if you employ a Trend Following system you’re likely to occur slippage. Probably a case where it does not pay to be a small fish in a big pond (with bigger fish having better market access).
Picture credits: eek-the-cat@flickr