Monday, April 09, 2012

Best way to set profit targets and stops while designing a trading system?

On a different topic today - What is the best way to set profit targets and stops while designing a trading system?
Although, I am sure there is no one "correct" answer - there are various ways of setting such targets that we can look at and examine their merits.

Starting with the simplest scenario - the most robust way of designing a system  is to NOT have any stops or profits built in - the system simply exits as per whatever conditions you have specified for entries and exits. This prevents us introducing variables for stop and profit target values into the system design and is usually the most robust  method (may not be the most profitable or easiest to trade though!). However, in real life it is not always possible to trade without a stop at least  -therefore the second best solution is to have a variable built in for stop but not for profits - this ensures that you know your worst case -  but the best case is only vaguely known based on historical performance of the system. This solution will only be practical  - if -

A) your system has really large stops,
B) it trades markets which have long periods of trending price action

If either of these conditions are not met - then it is quite likely that there'll be loads of whipsaw trades resulting in  a very choppy performance. I personally use this method in one of my systems which is meant to be an investment oriented system in S&P 500 stocks - with average holding periods of more than 6 months for each position and sometimes a position can last for years! In all my other systems though - I employ a stop as well as a profit target - simply because these systems are meant for trading short term moves - and there's only so much a market can move in short term - which brings us to another interesting question:
How do we decide the actual stop and profit values??

Again - there are many ways of deciding on a stop/profit value - the easiest one being choosing a static value - which remains fixed throughout the life of the system. For example  - we can run historical backtests on our data and decide that in past 0.5% for stop and 5% for profits has produced the most optimum set of results (Note: I say optimum - not most profitable) - provided it is a large enough data-set and we are fairly confident that volatility conditions in future are not likely to be extremely different  - we can choose these values for our future trading purposes. This method  - although simple to implement - has some serious shortcomings - In general - we have to  look really hard at the equity curve produced by using these static profit and stop values - and    make sure that most of the profits are not being generated by a small number of trades when the volatility conditions were very different. For example - if I run a backtest on a trend-following forex system on EURUSD or GBPUSD from 2005 - 2010 - depending on what values I choose - 2008-2009 period is very likely to distort the overall results because the markets were extremely volatile during this period - therefore - when I look at the equity curve of this system  - I need to make sure that I am not curve-fitting the stop/profit values to this highly volatile period - and other periods of low volatility are  giving results which would be acceptable in my day-to-day trading.

Choosing a static value(in points or percentage) for stop/profit may be the easiest way to design a system - but most likely it won't be the most robust as it won't have the capacity to adapt itself to changes in market conditions. So - what do we do to take a more dynamic approach towards choosing stops/profit values??

There are a some approaches we can adopt to making our systems more dynamic:

  • Choose stops/profits as multiples of Average True Range(ATR) - this makes sure that your stops and profit targets are getting adjusted as per the recent volatility of the markets. One of the interesting features of ATR is that it tends to stabilize as you use higher value of look-back periods -therefore if you wish to take a longer term average value of stop/profit targets regardless of recent volatility - use higher values of ATR in your system design - or else - if you want your system to react faster to market conditions then try using a short term ATR - maybe 5-10 periods. Although this technique is pretty helpful in making your system more dynamic - we can take it to a higher level by using values which are able to differentiate between trending/ranging markets -
  •   Choose stops/profits as multiples of recent range divided by Average True Range(ATR) : In using this technique - we take a recent range (for example 10 day range would be Highest High Value in previous 10 trading days minus Lowest Low value in previous 10 trading days) and divide this range by a longish ATR - say 30 periods. Using this technique  - our stops/profit targets will be automatically adjusted lower if the markets were ranging in last 10 days and in case there was a strong trend in place - then our system will automatically set higher stop/profit targets - taking into account higher directional movement of the markets. (You can use a variation of this theme by simply taking the range of last "N" days as the profit target and a similar value of range of  "M" days as stop target - thus eliminating ATR but still keeping the system dynamic). 
  • In one of my systems - stops are based on Levels generated by trading history of the markets - therefore there is no fixed value - it keeps changing based on pattern formation (See my previous posts with trend charts using dynamic levels for an example of what I am saying)
  • Choose a combination of any of the above by using different methods for stops/profits
So, as you can see - even the seemingly simple matter of setting stop/profit values throws up quite a few possibilities while designing a system. If you know of any other interesting ways - do let our readers know by commenting on this article.

The comments and posts published in this blog are NOT trading recommendations. They can not be considered as trading calls or advices. If you decide to use the information offered here for your real trading, it is at your own risk.