RESULTS FOUND FROM TECHNICAL PATTERN
STUDIES©
UNIVERSAL TECHNICAL SYSTEMS, INC.
During
the course of an exhaustive study and the testing of different price patterns over
a ten year period from
We
began our pattern studies in the early 1990s. Computer technology did not
allow us to the exhaustive testing that can be done today. In 1992 Toby Crabel
published a book called Day Trading With Short Term Price Patterns and Opening
Range Breakout. His studies identified
various price patterns with a combination of a volatility breakout system. In
fact Crabel pulled his book from the publishers, after recognizing the power of
pattern studies. Since then his book has sold as high as $2000 on EBay. With
todays technology we have carried these concepts to greater dimensions.
To
our knowledge, nobody else has carried pattern studies to this extent using the
various interday price pattern relationships. Most other studies that we know
of concentrated mainly on close to close patterns, open to open patterns or
open to close patterns. We use a 4 bar pattern with each day consisting of
open, high, low and close. All of our pattern studies utilize a comparison of
adjacent bars only. In other words, with the present bar being Bar1 and Bar4 representing
3 price bars ago, we then compare price patterns with Bar1/Bar2, Bar2/Bar3 and
Bar3/Bar4. If a pattern is found then a long or short position is taken on the
close of the completion of the 4 bar pattern.
Our
software model was developed to identify a series of price patterns taking two
price interday relationships at a time (see Table A). Each of those interday price
relationships is subjected to a query process of 21 different permutations (see
Table B). There are 120 combinations that comprise the various interday price pattern
relationships. For example, OP-OP is tested simultaneously with OP-H, and
each have 21 different price patterns for a possible 441 different price
patterns for that particular interday price relationship. We will use the
following combination formula for taking R elements at a time out of N
elements. CN,R = N!
/ R! * (N R)! Since we are taking 2 interday price pattern relationships at a
time out of 16 (see Table A), the total number of combinations would be 16! / (2!
* (16 2)!) = 120 possible combinations. You would then multiply the 441 by 120
for a maximum pattern study of 52,920 possible patterns for our universe of
study. If we programmed our software to take 4 interday price pattern
relationships at the same time, we would have a possible 16! / (4! * (16 4)!)
= 1820 interday price pattern relationship universe. This universe would then
be multiplied by 441. That would render us an entire universe of possible
patterns under study encompassing 802,620 patterns. That number is too large to
even comprehend. However by taking that approach, it would be difficult to
provide enough occurrences to produce a particular price pattern relationship
with any validity. In this case, by selecting only two interday price pattern
relationships, less is more, thus producing more occurrences per pattern. The
price patterns are then coded in base K, (21 different states Table B) and
stored into a pattern database file later to be imported as flat data files for
other software pattern analysis. In order for a price pattern to be included in
the price pattern database, the following criteria must be met. During the ten
year span under study, the pattern must have an occurrence or frequency of at
least 10 times. Secondly, the accuracy or percentage of winners to total number
of trades must be at least 70%. And thirdly the net P/L must be positive for
the end of day 1 and day 2 and day 3 respectively. Table C is an actual example
of the E-Mini Russell where the patterns were identified and coded with the
above aforementioned criteria.
As
an example lets apply the first interday price relationship (OP-OP/OP-H)
against the first price test of Table B. We would first test for OP-OP which
would be translated as follows:
OP(I)
< OP(I-1) and OP(I-1) < OP(I-2) and OP(I-2) < OP(I-3). We then apply
the relationship, OP-H and test for the following condition: OP(I) <
H(I-1) and OP(I-1) < H(I-2) and OP(I-2) < H(I-3). Both of these interday
price relationships are tested simultaneously to determine if there is a valid
pattern of at least ten occurrences. The next loop would test the OP-OP
against the first state of Table B while the OP-H would test against the
second state of Table B. This looping process would yield 441 different permutations
for each of the interday price relationships in Table A.
When
both of the interday price pattern relationships OP-OP and OP-H have located
a price pattern for the current 4 day price bar, you would then have a price
pattern code that would look something like 0025 for that particular 4 day
interval. Case 2 satisfies the condition for OP-OP and case 5 satisfies
the condition for OP-H. If 0025 appeared in the buy pattern database, then
a long position would be initiated on the close of the 4 bar pattern. The same
would be true if the pattern code occurred in the sell pattern database. A
short position would be initiated on the close of the pattern. The longest that
we stay in a position would be 3 days. An exit could occur earlier if Dual
Thrust exits during the day. After entry on the close of the first day, the Dual
Thrust methodology would look to exit the current position based on MDAY,
Example:
0025 would mean that the price pattern code 2 was assigned to the OP-OP price
pattern relationship and the 5 was assigned to OP-H price pattern relationship.
Specifically, the pattern code 2 would mean OP(I) < OP(I - 1) and OP(I - 1)
> OP(I - 2) and OP(I - 2) < OP(I - 3) while the price pattern code 5
would mean OP(I) > H(I - 1) and OP(I - 1) < H(I - 2) and OP(I - 2) > H(I
- 3). The interday price pattern relationships are always adjacent price
pattern studies as can be seen.
TABLE A
1. OP-OP/OP-H
2. OP-OP/OP-L
3. OP-OP/OP-CL
4. OP-OP/H-OP
5. OP-OP/H-H
6. OP-OP/H-L
7. OP-OP/H-CL
8. OP-OP/L-OP
9. OP-OP/L-H
10. OP-OP/L-L
11. OP-OP/L-CL
12. OP-OP/CL-OP
13. OP-OP/CL-H
14. OP-OP/CL-L
15. OP-OP/CL-CL
16. OP-H/OP-L
17. OP-H/OP-CL
18. OP-H/H-OP
19. OP-H/H-H
20. OP-H/H-L
21. OP-H/H-CL
22. OP-H/L-OP
23. OP-H/L-H
24. OP-H/L-L
25. OP-H/L-CL
26. OP-H/CL-OP
27. OP-H/CL-H
28. OP-H/CL-L
29. OP-H/CL-CL
30. OP-L/OP-CL
31. OP-L/H-OP
32. OP-L/H-H
33. OP-L/H-L
34. OP-L/H-CL
35. OP-L/L-OP
36. OP-L/L-H
37. OP-L/L-L
38. OP-L/L-CL
39. OP-L/CL-OP
40. OP-L/CL-H
41. OP-L/CL-L
42. OP-L/CL-CL
43. OP-CL/H-OP
44. OP-CL/H-H
45. OP-CL/H-L
46. OP-CL/H-CL
47. OP-CL/L-OP
48. OP-CL/L-H
49. OP-CL/L-L
50. OP-CL/L-CL
51. OP-CL/CL-OP
52. OP-CL/CL-H
53. OP-CL/CL-L
54. OP-CL/CL-CL
55. H-OP/H-H
56. H-OP/H-L
57. H-OP/H-CL
58. H-OP/L-OP
59. H-OP/L-H
60. H-OP/L-L
61. H-OP/L-CL
62. H-OP/CL-OP
63. H-OP/CL-H
64. H-OP/CL-L
65. H-OP/CL-CL
66. H-H/H-L
67. H-H/H-CL
68. H-H/L-OP
69. H-H/L-H
70. H-H/L-L
71. H-H/L-CL
72. H-H/CL-OP
73. H-H/CL-H
74. H-H/CL-L
75. H-H/CL-CL
76. H-L/H-CL
77. H-L/L-OP
78. H-L/L-H
79. H-L/L-L
80. H-L/L-CL
81. H-L/CL-OP
82. H-L/CL-H
83. H-L/CL-L
84. H-L/CL-CL
85. H-CL/L-OP
86. H-CL/L-H
87. H-CL/L-L
88. H-CL/L-CL
89. H-CL/CL-OP
90. H-CL/CL-H
91. H-CL/CL-L
92. H-CL/CL-CL
93. L-OP/L-H
94. L-OP/L-L
95. L-OP/L-CL
96. L-OP/CL-OP
97. L-OP/CL-H
98. L-OP/CL-L
99. L-OP/CL-CL
100. L-H/L-L
101. L-H/L-CL
102. L-H/CL-OP
103. L-H/CL-H
104. L-H/CL-L
105. L-H/CL-CL
106. L-L/L-CL
107. L-L/CL-OP
108. L-L/CL-H
109. L-L/CL-L
110. L-L/CL-CL
111. L-CL/CL-OP
112. L-CL/CL-H
113. L-CL/CL-L
114. L-CL/CL-CL
115. CL-OP/CL-H
116. CL-OP/CL-L
117. CL-OP/CL-CL
118. CL-H/CL-L
119. CL-H/CL-CL
120. CL-L/CL-CL
TABLE B
CASE "0"
OP(I) < OP(I - 1)
OP(I - 1) < OP(I - 2)
OP(I - 2) < OP(I - 3)
CASE 1
OP(I) > OP(I -1)
OP(I - 1) < OP(I - 2)
OP(I - 2) < OP(I - 3)
CASE 2
OP(I) < OP(I - 1)
OP(I - 1) > OP(I - 2)
OP(I - 2) < OP(I - 3)
CASE 3
OP(I) > OP(I - 1)
OP(I - 1) > OP(I - 2)
OP(I - 2) < OP(I - 3)
CASE 4
OP(I) < OP(I - 1)
OP(I - 1) < OP(I - 2)
OP(I - 2) > OP(I - 3)
CASE 5
OP(I) > OP(I - 1)
OP(I - 1) < OP(I - 2)
OP(I - 2) > OP(I - 3)
CASE 6
OP(I) < OP(I - 1)
OP(I - 1) > OP(I - 2)
OP(I - 2) > OP(I - 3)
CASE 7
OP(I) > OP(I - 1)
OP(I - 1) > OP(I - 2)
OP(I - 2) > OP(I - 3)
CASE 8
OP(I) = OP(I - 1)
OP(I - 1) < OP(I - 2)
OP(I - 2) < CASE 7
CASE 9
OP(I) = OP(I - 1)
OP(I - 1) > OP(I - 2)
OP(I - 2) < OP(I - 3)
CASE A
OP(I) = OP(I - 1)
OP(I - 1) < OP(I - 2)
OP(I - 2) > OP(I - 3)
CASE B
OP(I) = OP(I - 1)
OP(I - 1) > OP(I - 2)
OP(I - 2) > OP(I - 3)
CASE C
OP(I) < OP(I - 1)
OP(I - 1) = OP(I - 2)
OP(I - 2) < OP(I - 3)
CASE D
OP(I) > OP(I - 1)
OP(I - 1) = OP(I - 2)
OP(I - 2) < OP(I - 3)
CASE E
OP(I) < OP(I - 1)
OP(I - 1) = OP(I - 2)
OP(I - 2) > OP(I - 3)
CASE F
OP(I) > OP(I - 1)
OP(I - 1) = OP(I - 2)
OP(I - 2) > OP(I - 3)
CASE G
OP(I) < OP(I - 1)
OP(I - 1) < OP(I - 2)
OP(I - 2) = OP(I - 3)
CASE H
OP(I) > OP(I - 1)
OP(I - 1) < OP(I - 2)
OP(I - 2) = OP(I - 3)
CASE I
OP(I) < OP(I - 1)
OP(I - 1) > OP(I - 2)
OP(I - 2) = OP(I - 3)
CASE J
OP(I) > OP(I - 1)
OP(I - 1) > OP(I - 2)
OP(I - 2) = OP(I - 3)
CASE K
OP(I) = OP(I - 1)
OP(I - 1) = OP(I - 2)
OP(I - 2) = OP(I - 3)
TABLE C
"OP.OP","OP.H"
"ZZZZ"
"OP.OP","OP.L"
"0064"
"ZZZZ"
"OP.OP","OP.CL"
"0021"
"0030"
"0041"
"0074"
"ZZZZ"
"OP.OP","H.OP"
"0032"
"ZZZZ"
"OP.OP","H.H"
"0001"
"0032"
"ZZZZ"
"OP.OP","H.L"
"0062"
"ZZZZ"
"OP.OP","H.CL"
"0062"
"0064"
"ZZZZ"
"OP.OP","L.OP"
"ZZZZ"
"OP.OP","L.H"
"ZZZZ"
"OP.OP","L.L"
"0032"
"ZZZZ"
"OP.OP","L.CL"
"0017"
"ZZZZ"
"OP.OP","CL.OP"
"0012"
"ZZZZ"
"OP.OP","CL.H"
"0012"
"ZZZZ"
"OP.OP","CL.L"
"0004"
"0063"
"0064"
"ZZZZ"
"OP.OP","CL.CL"
"0047"
"0062"
"0072"
"ZZZZ"
"OP.H","OP.L"
"ZZZZ"
"OP.H","OP.CL"
"ZZZZ"
"OP.H","H.OP"
"0078"
"ZZZZ"
"OP.H","H.H"
"ZZZZ"
"OP.H","H.L"
"ZZZZ"
"OP.H","H.CL"
"ZZZZ"
"OP.H","L.OP"
"0072"
"ZZZZ"
"OP.H","L.H"
"ZZZZ"
"OP.H","L.L"
"ZZZZ"
"OP.H","L.CL"
"ZZZZ"
"OP.H","CL.OP"
"ZZZZ"
"OP.H","CL.H"
"0071"
"ZZZZ"
"OP.H","CL.L"
"ZZZZ"
"OP.H","CL.CL"
"ZZZZ"
"OP.L","OP.CL"
"0013"
"ZZZZ"
"OP.L","H.OP"
"0007"
"0013"
"0063"
"ZZZZ"
"OP.L","H.H"
"0013"
"ZZZZ"
"OP.L","H.L"
"ZZZZ"
"OP.L","H.CL"
"0053"
"ZZZZ"
"OP.L","L.OP"
"0013"
"ZZZZ"
"OP.L","L.H"
"ZZZZ"
"OP.L","L.L"
"0013"
"0026"
"ZZZZ"
"OP.L","L.CL"
"ZZZZ"
"OP.L","CL.OP"
"0006"
"ZZZZ"
"OP.L","CL.H"
"0013"
"ZZZZ"
"OP.L","CL.L"
"0007"
"ZZZZ"
"OP.L","CL.CL"
"0053"
"ZZZZ"
"OP.CL","H.OP"
"0054"
"ZZZZ"
"OP.CL","H.H"
"0003"
"0006"
"0014"
"ZZZZ"
"OP.CL","H.L"
"ZZZZ"
"OP.CL","H.CL"
"0020"
"ZZZZ"
"OP.CL","L.OP"
"0014"
"0025"
"0067"
"ZZZZ"
"OP.CL","L.H"
"ZZZZ"
"OP.CL","L.L"
"0012"
"0031"
"ZZZZ"
"OP.CL","L.CL"
"ZZZZ"
"OP.CL","CL.OP"
"0014"
"ZZZZ"
"OP.CL","CL.H"
"0014"
"ZZZZ"
"OP.CL","CL.L"
"ZZZZ"
"OP.CL","CL.CL"
"0003"
"0004"
"0006"
"0034"
"0057"
"ZZZZ"
"H.OP","H.H"
"ZZZZ"
"H.OP","H.L"
"ZZZZ"
"H.OP","H.CL"
"0070"
"0074"
"ZZZZ"
"H.OP","L.OP"
"ZZZZ"
"H.OP","L.H"
"ZZZZ"
"H.OP","L.L"
"ZZZZ"
"H.OP","L.CL"
"ZZZZ"
"H.OP","CL.OP"
"ZZZZ"
"H.OP","CL.H"
"ZZZZ"
"H.OP","CL.L"
"ZZZZ"
"H.OP","CL.CL"
"0005"
"0053"
"ZZZZ"
"H.H","H.L"
"ZZZZ"
"H.H","H.CL"
"0022"
"0064"
"ZZZZ"
"H.H","L.OP"
"ZZZZ"
"H.H","L.H"
"ZZZZ"
"H.H","L.L"
"0013"
"ZZZZ"
"H.H","L.CL"
"ZZZZ"
"H.H","CL.OP"
"0005"
"0040"
"ZZZZ"
"H.H","CL.H"
"ZZZZ"
"H.H","CL.L"
"0020"
"0040"
"ZZZZ"
"H.H","CL.CL"
"ZZZZ"
"H.L","H.CL"
"ZZZZ"
"H.L","L.OP"
"ZZZZ"
"H.L","L.H"
"ZZZZ"
"H.L","L.L"
"ZZZZ"
"H.L","L.CL"
"ZZZZ"
"H.L","CL.OP"
"0003"
"ZZZZ"
"H.L","CL.H"
"ZZZZ"
"H.L","CL.L"
"ZZZZ"
"H.L","CL.CL"
"ZZZZ"
"H.CL","L.OP"
"ZZZZ"
"H.CL","L.H"
"ZZZZ"
"H.CL","L.L"
"0046"
"ZZZZ"
"H.CL","L.CL"
"0002"
"00G7"
"ZZZZ"
"H.CL","CL.OP"
"0006"
"ZZZZ"
"H.CL","CL.H"
"0002"
"0066"
"ZZZZ"
"H.CL","CL.L"
"0046"
"ZZZZ"
"H.CL","CL.CL"
"0003"
"0022"
"ZZZZ"
"L.OP","L.H"
"ZZZZ"
"L.OP","L.L"
"ZZZZ"
"L.OP","L.CL"
"0014"
"ZZZZ"
"L.OP","CL.OP"
"0032"
"ZZZZ"
"L.OP","CL.H"
"ZZZZ"
"L.OP","CL.L"
"ZZZZ"
"L.OP","CL.CL"
"ZZZZ"
"L.H","L.L"
"0064"
"ZZZZ"
"L.H","L.CL"
"ZZZZ"
"L.H","CL.OP"
"ZZZZ"
"L.H","CL.H"
"ZZZZ"
"L.H","CL.L"
"ZZZZ"
"L.H","CL.CL"
"ZZZZ"
"L.L","L.CL"
"ZZZZ"
"L.L","CL.OP"
"0031"
"0062"
"ZZZZ"
"L.L","CL.H"
"ZZZZ"
"L.L","CL.L"
"0020"
"0040"
"ZZZZ"
"L.L","CL.CL"
"ZZZZ"
"L.CL","CL.OP"
"0062"
"0075"
"ZZZZ"
"L.CL","CL.H"
"ZZZZ"
"L.CL","CL.L"
"0073"
"ZZZZ"
"L.CL","CL.CL"
"ZZZZ"
"CL.OP","CL.H"
"0066"
"ZZZZ"
"CL.OP","CL.L"
"ZZZZ"
"CL.OP","CL.CL"
"ZZZZ"
"CL.H","CL.L"
"0066"
"ZZZZ"
"CL.H","CL.CL"
"0051"
"ZZZZ"
"CL.L","CL.CL"
"0001"
"0002"
"ZZZZ"