Another slippage post inspired by a reader’s comment (thanks to Eventhorizon this time).
The idea is to use stop-limit orders in the Donchian Channel system to avoid slippage. The stop-limit orders would prevent the system from buying/selling above/below the entry breakout level – thus reducing entry slippage.
Of course, with daily data, it is impossible to know and test whether the price sails past the breakout stop level and never pulls back (stop-limit order not executed) or whether it revisits these levels later throughout the trading session (and triggers the order execution).
However if the instrument trades again at the same level a few days later (ie. the price has retraced from the breakout), the limit order should be executed.
BlueEventHorizon ran a quick test (published on his blog) and calculated that around 85% of such breakout signals retrace in the following 5 days (excluding the day of the actual breakout).
However this stat alone is not a very good indicator of how well a system based on the same logic would perform: the original system has 62% losing trades – most of them would probably be “caught” by the new system, when the losers start to retrace. Of the 38% original winning trades, the system would probably only capture just over half of them (85% – 62% = 23% vs. 38%).
The system would probably suffer from missing out on these winning trades but would benefit from improved slippage for all the remaining trades.
This caught my interest and I decided to code up and test a “Donchian Retrace” system: the breakout acts as an End-of-Day signal and trigger a tentative limit order (at the breakout level) for the next five days.
The rest of the system is identical to the one tested in the original slippage post:
- Entry breakout: 20 days
- Exit breakout: 10 days
- Entry Stop: 2 x 39-day exponential ATR, risking 1% of Total Equity
Testing the retrace system with 0% slippage produces a CAGR of 35.51% with a MAR ratio of 0.48, whereas running the original system gave us a CAGR of 57.62% and a MAR ratio of 1.11. The percentage of winning trades goes up, as expected, for the retrace system (72% vs. 62%).
However, this is not a fair comparison, as the original Donchian system will be subject to slippage on entry, whereas the new retrace system should not. Adding 5% slippage to the original Donchian system gives a CAGR of 33.55% and MAR of 0.53:
The comparison does not look too bad for the retrace system, but it is obviosuly dependent on the real level of slippage suffered by the system.
Since the system does not perform so badly when waiting for a retrace, it might be interesting to test the impact of waiting for an even stronger retrace, past the original breakout level. By adding an “extra retrace” parameter to the system, we can decide and test by how much the retrace must overshoot the initial breakout level to enter the position. The higher the “extra retrace” parameter, the more trades are likely to be missed, but the better the execution on all the other trades.
Below are the results of a stepped simulation with different values for the extra retrace (expressed in ATR multipliers):
|Retrace ATR multiplier||CAGR%||MAR||Modified Sharpe||Annual Sharpe||Max Total Equity DD||Longest Drawdown||# Trades|
There is a notable improvement in the system by waiting for an extra retrace, which seems to simulate some negative slippage – although more in more trades are missed as the extra retrace increases.
Note that all these simulation results are still subject to slippage assumptions. However, they should also be slightly over-pessimistic in the fact that they cannot test for same-day retraces (and simply ignore them), therefore potentially missing out more winning trades than in reality (all those trades that retrace on the day but not in the next 5 days).
Limit orders could be another tool to reduce slippage. After all, if they were recommended to the Turtle traders, they must be a useful tool…