Several recent articles I’ve written explained my techniques for developing and testing trading systems. The trading system we have been working on is a very simple breakout strategy called FirstStrike. The first couple of articles on this subject I used a regime filter and a trend strength filter to help reduce unproductive trading times. Next I wanted to explore a few exit techniques. But before jumping into testing exit techniques, I wanted to show you a simple tool I created to help me test other exits.
The tool is a simple strategy to assist me in testing various stops and targets. My program is not completely unique. It’s actually based off an existing TradeStation strategy, called _Stops&Targets. I’ve taken this program and modified it with several other exit techniques. The code is available for download at the bottom of this article and is called _Stops&TargetsAdvanced. This strategy can be inserted into any chart to help you quickly test various exit techniques.
Below is an image of the _Stops&TargetsAdvanced strategy applied to a chart. You can see this strategy is running in parallel with another strategy called MA Simple. MA Simple is a moving average cross over system that only generates entry signals. All exit signals are generated by the _Stops&TargetsAdvanced strategy.
My code has the same stops and targets available in TradeStation’s original version, but I’ve expanded the capabilities to include the following nine new stops:
- Bar Count Exit – Exit a position based on the number of bars since the position was opened.
- ATR Hard Stop – Exit a position based on the average true range of the market. This is a fixed stop loss. In other words the stop does not advance as a position moves in your favor. However, the value of the stop loss is updated on each bar close to adjust for the current market ATR.
- ATR Trail – Trailing stop based on the average true range of the market.
- Square root ATR Trail – This stop was explained in the article ATR Square Root.
- Noise Tolerant Stop – This technique was demonstrated in the article A Noise Tolerant Money Management Stop and provides a linear regression based stop which is also a non-optimized based exit.
- Moving Average Exit – Exit a position based upon when price crosses beyond a simple moving average.
- RSI Exit – Exit a position based on an RSI value.
- Day Of Week Exit – Exit a position based upon the day of the week. By using this stop you can close all positions on a specific weekday, such as Friday.
- Time of Day Exit – Exit a position at a specific time during the day. This is only used with systems that trade intraday.
Next I will explain the input values for these nine new stops.
- ExitToTest – This indicates which stop to test. At the time of this writing there are nine stops to test. Simply enter the digit (see above for the correct digit) of the stop to activate.
- NumBars – The number of bars to exit a position since the entrybar.
- ATRLen – The number of bars to use in ATR calculation.
- ATRMult – This number is the ATR multiple. The value is multiplied by the ATR to generate a final value.
- NTStop_N – The look back period for the noise tolerant stop.
- MALen – The look back period to use for the moving average based exit.
- RSILen – The look back period to use for the RSI based exit.
- iDayOfWwek – The day of week to exit. 1 for Monday and 5 for Friday.
- ExitTime – The time of day to exit a position. Time should be expressed in military time.
The video explains the code and how to use these stops in much more detail. A future modification I would like to add would be to base exit decisions on a different time-frame. Currently all exit decisions are based on the same time-frame in which trades are executed. It’s a common practice to base exit decisions on a higher time-frame.
The code is available below and of course, you can freely change it by adding new stops or modify the existing stops. Please, change to your liking. Please note however, this tool is for backtesting. It has not been designed or tested on live markets. In closing, please leaving your comments below.