Page 1 of 1

Using MultiCharts To Update Crabel Patterns

Posted: 01 Oct 2010
by furytrader
In the attached .zip file, I have posted a discussion of how I recently used MultiCharts to update a price pattern table that originally appeared in Toby Crabel’s 1990 book “Day Trading With Short Term Price Patterns & Opening Range Breakout”. Crabel's work has always intrigued me, but one shortcoming of his book is that, twenty years after it was written, the data related to price patterns is a bit old.

As part of this discussion, I have included:

1) An essay in Adobe Acrobat format which explains the process;

2) The PowerLanguage code used to generate the tables (both in a .txt file as well as a .pla file); and

3) A completed Excel spreadsheet that shows updated close-to-close price patterns for the CBOT 10 Year Note market for the last ten years.

As anyone familiar with this book knows, this discussion touches upon only one part of Crabel's overall approach to trading. If you're seriously committed to trading quantitatively using price patterns, I urge you to pick up a copy of his book (which is, albeit, very expensive).

If you have any questions or suggestions about this material, feel free to drop me a line.

Good luck!

Re: Using MultiCharts To Update Crabel Patterns

Posted: 01 Oct 2010
by TJ
thanks for sharing.

Re: Using MultiCharts To Update Crabel Patterns

Posted: 04 Oct 2010
by furytrader
You're welcome. One thing to point out about the methodology outlined in this discussion is that it points to a way to use MultiCharts to generate and test a wide variety of patterns automatically.

The key here is that this approach creates a multi-character string to describe a market pattern and then compares that string to a similarly-created string that describes current market conditions. If the strings match, a trade is generated.

In this study, the string is fairly simple, with one character representing each bar, indicating whether the close for a particular bar is higher or lower than the preceding close. However, there's no reason why this string couldn't describe more complicated relationships between price bars.

For example, let's imagine that we wanted to test a more complex pattern, one that involves the high, low and close. We could create a pattern that involves three characters to describe each bar, with the first character describing the high of the bar relative to the previous bar, the second character describing the low of the bar to the previous bar and the third character describing the close of the bar to the previous bar. The relative position of each element (high, low, close) could be described as follows:

1 = element (high, low or close) is equal or higher than the high of the previous bar
2 = element is lower than previous bar high but equal or higher to previous bar close
3 = element is lower than the previous bar close but equal or higher than previous bar low
4 = element is lower than the previous bar low

Using this framework, we could create a string describing a bar that has a high higher than the previous bar high, a low higher than the previous bar close but lower than the high and a close also above the previous bar close. The string would look like "122". We could build upon this to describe three bars as: "122344243" Note however, that this pattern doesn't describe how bar three compares to bar one but simply bar three to bar two and bar two to bar one.

This is very much an example of data mining, and so it would be great if there were a way to automatically test a pattern both in-sample and out-of-sample using MultiCharts in order to determine which patterns are truly robust. I've experimented with the walk-forward capabilities of MultiCharts, but that doesn't really work because the parameters being optimized are actually those characteristics that describe the pattern. This is different, for example, then finding the optimum length of a moving average, where slight shifts in value are not significant. Here, shifting one of the descriptive characters results in a totally different pattern.

Any suggestions on how to do that would be greatly appreciated!