Continuing the quest to develop a decent breakout system…
Be sure to read Part 1 for the introductory information. Part 2 (this article) will jump right into things with no background information.
- Buy the next open after a stock has closed at a new N-day high
- Hold the stock for X days, selling at the close
- System can hold a maximum of 20 stocks with capital allocated equally among all
- If there are more stocks than cash, the system ranks picks by dividing volume by the 50 day average volume. Highest ranked stocks are purchased until the system runs out of cash
- Only stocks with a close > $5.00/share and 10 day average volume > 300,000 are eligible. No OTCBB.
- Delisted data was used (no survivorship bias)
- Test period is from 1.1.2001 to 1.1.2009
Let’s look at the results of the optimization:
The graph above shows that there are two areas which show promise. The only problem is that the area on the right hand side requires holding the trades almost twice as long as they are held on the left hand side to achieve similar gains. However, the right hand side, representing buying a stock after making a new 90 day high and holding it for more than 95 days appears to be less peaky and therefore more robust.
The graph above shows that the greater the N day high, the greater the potential average trade. I suspect the trade off here is to find a balance between opportunity and potential profit. It is likely that the greater the N day high, the fewer the number of stocks (less opportunity) meeting that criteria. If there is not enough opportunity, the system may not be fully invested, and this will hurt performance.
Note the circled area in the graph above. It is not very smooth, while the raised area to the right that corresponds with 85 bars or better, is more rounded and less peaky. It is likely that holding for greater than 85 days will result in more robust and consistent results.
The Importance of Profit/Bar
The above graphs show that holding trades longer may result in similar but possibly more robust results in real-time than holding them for a shorter amount of time. In order to accurately compare results, we want to divide the average trade by the number of bars the trade was held.
For example, if we use what looks to be the optimum settings (based on the above graphs) of an N day high of 90 and a hold of 65 bars, the average trade is 4.15%. We then divide that by 65 to get 0.063% of profit per day.
Using what appears to be the more robust criteria of an N day high of 85 with a hold of 90 bars yields an average trade of 3.08% and a Profit/Bar of 0.0342%.
Next Up- Ranking
Next, I will re-run these tests but will try out different ranking methods. I’m curious to see if they make much difference at this early stage of testing.
Here is the equity curve generated from these optimized inputs: N day high of 90 and a hold of 65 bars.
This equity curve shows a compound annual return of 15.55%