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 January 01st, 1998 to January 01st, 2008, we have combined a methodology of pattern studies with an opening range breakout system, known as the Dual Thrust Trading System. Please note that we captured historical data from TradeStation using intraday bars to build our database of date, open, high, low and close. We noticed that depending on the data source the patterns in our library were different. That is why it is very important to stay consistent with data that was used to create the patterns. It is also important to know that we use the close of the last intraday bar of the pit session and not the settlement price. That does make a difference in the pattern database. Included with the software package will be a 5 year database that is formatted as ASCII comma delimited. There are two extra fields that are dummy fields but need to be filled with at least a “0”. We also roll over the individual contracts on the second Thursday of the expiration month. You will need to construct a data path for the software to read the 3 data files that are E-Mini Midcap (EM), E-Mini Russell (MR) and the E-Mini S&P (MS). The data paths under the C: drive would be C:\DATA\EM, C:\DATA\MR and C:\DATA\MS. The software is split into two different systems. One for buy patterns and the other for sell patterns.

 

We began our pattern studies in the early 1990’s. 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 today’s 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, K2 for a current long or NDAY, K1 for a current short position. If no exit occurs after 3 days since the entry position was initiated, then we exit the trade on the close 3 days after entry.

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"



tradefutures homepage