Double Top: A Reversal Pattern. Checking the History
04 March 2022In the proposed article, we will talk about paired patterns of graphical analysis “Double Top” and “Double Bottom”.
Jack Schwager characterises in his book «Technical Analysis. Full Course» these patterns the following way:
“Double tops and double bottoms are exactly what their names imply. Of course, the two tops (or bottoms) that make up the pattern need not be exactly the same, only in the same general price vicinity. Double tops and bottoms that materialize after large price moves should be viewed as strong indicators of a major trend reversal”.
The formation of «Double top» and «Double bottom» indicates a trend reversal.
Double top reminds the «М» letter on charts as it includes two consequent peaks of almost the same price level with a correction between them.
Double bottom reminds the «W» letter:
Method of event measurement
We will use the ZigZag indicator in our study to measure tops and bottoms on charts with materialization of the considered patterns.
ZigZag is a trend indicator that is why it shows the lines on the chart connecting local minimums and maximums which delineate the trend’s direction. This indicator includes three parameters. It determines the performance of ZigZag and which minimums and maximums it will take into account. Changes in parameters influence the sensibility rate of the indicator to the price movement. If we increase the values for a calculation, the number of local minimums and maximums will decrease respectively the least number of lines will be displayed, and theoretically less patterns will be materialized but larger in size (price movements are also being enlarged).
For the research, we will take ZigZag with parameters of 5.3.3 (small patterns will be materialized), and with parameters of 12.5.3 (major patterns will be materialized). The second group of parameters is set in the ZigZag indicator by default.
“Double top”: a sell signal
ZigZag [0] < ZigZag [1]
ZigZag [0] < ZigZag [2]
ZigZag [2] < ZigZag [1]
ZigZag [3] > ZigZag [2]
Close [i] < ZigZag [2]
W <= WMAX
“Double bottom”: a buy signal
ZigZag [0] > ZigZag [1]
ZigZag [0] > ZigZag [2]
ZigZag [2] > ZigZag [1]
ZigZag [3] < ZigZag [2]
Close [i] > ZigZag [2]
W <= WMAX
Besides, we will carry out the test against patterns in two combinations regulating a notional parameter:
W, Distality of Tops/Bottoms.
Distality W in % must not raise the threshold value of WMax:
W = ( Max( ZZ[1], ZZ[3] ) - Min( ZZ[1], ZZ[3] ) ) /
( Max ( Max ( ZZ[1], ZZ[3] ), ZZ[2] ) – Min ( Min ( ZZ[1], ZZ[3] ), ZZ[2] ) ) * 100
Let us show the “Double top” pattern with the W parameter indicated above:
What does the W notional parameter show?
The less W is, the closer the prices of tops and bottoms, and the more explicit the “Double top” formation.
For the “Double bottom”, the situation is mirrored.
Now, we specify conditions of the opening and closing of a trading position.
Opening a trading position:
After the pattern’s materialization, a position opens at the open of the next bar:
- Double top: a sell;
- Double bottom: a buy.
Closing a position:
The lifetime of the position is set at 5, 10 ,or 15 in all bars.
Let us carry out the test on a large amount of historical data of various financial instruments and on the basis of two timeframes against signals which are generated by the “Double top” and “Double bottom” patterns.
Let us specify the list of financial instruments and their timeframes against which we will carry out the test of trading signals:
- 25 currency pairs (Forex);
- 6 commodity futures (Commodities);
- 2 US stock indices (US indices);
- 30 US stocks (US stocks);
- 58 RF stocks (RF stocks);
- 1 RF stock index (RF index).
Timeframes used:
- H1 (1 hour): the history for the period of 5 years,
- D1 (1 day): the history for the period of 10 years.
The total is 1 981 114 values.
Having specified all the conditions and set necessary parameters, we can start testing!
Analysis of the results
First, we will estimate the results based on the sample size.
Small patterns (ZigZag (5.3.3)):
W <= 5%
For the 1-hour timeframe (H1):
Market segment | Number of candlesticks | Number of events |
Forex | 655777 | 1634 |
Commodities | 115959 | 224 |
US indices | 52783 | 107 |
RF index | 11421 | 26 |
US stocks | 234556 | 591 |
RF stocks | 612555 | 1582 |
Total | 1683051 | 4164 |
For the 1-day timeframe (D1):
Market segment | Number of candlesticks | Number of events |
Forex | 67432 | 199 |
Commodities | 15463 | 41 |
US indices | 5455 | 15 |
RF index | 2519 | 6 |
US stocks | 72925 | 209 |
RF stocks | 134269 | 355 |
Total | 298063 | 825 |
W <= 10%
For the 1-hour timeframe (H1):
Market segment | Number of candlesticks | Number of events |
Forex | 655777 | 3467 |
Commodities | 115959 | 455 |
US indices | 52783 | 219 |
RF index | 11421 | 53 |
US stocks | 234556 | 1243 |
RF stocks | 612555 | 3045 |
Total | 1683051 | 8482 |
For the 1-day timeframe (D1):
Market segment | Number of candlesticks | Number of events |
Forex | 67432 | 403 |
Commodities | 15463 | 98 |
US indices | 5455 | 33 |
RF index | 2519 | 10 |
US stocks | 72925 | 442 |
RF stocks | 134269 | 792 |
Total | 298063 | 1778 |
Major patterns (ZigZag (12.5.3)):
W <= 5%
For the 1-hour timeframe (H1):
Market segment | Number of candlesticks | Number of events |
Forex | 655777 | 826 |
Commodities | 115959 | 115 |
US indices | 52783 | 68 |
RF index | 11421 | 11 |
US stocks | 234556 | 324 |
RF stocks | 612555 | 704 |
Total | 1683051 | 2048 |
For the 1-day timeframe (D1):
Market segment | Number of candlesticks | Number of events |
Forex | 67432 | 94 |
Commodities | 15463 | 22 |
US indices | 5455 | 9 |
RF index | 2519 | 5 |
US stocks | 72925 | 88 |
RF stocks | 134269 | 133 |
Total | 298063 | 351 |
W <=10%
For the 1-hour timeframe (H1):
Market segment | Number of candlesticks | Number of events |
Forex | 655777 | 1691 |
Commodities | 115959 | 260 |
US indices | 52783 | 148 |
RF index | 11421 | 19 |
US stocks | 234556 | 675 |
RF stocks | 612555 | 1419 |
Total | 1683051 | 4212 |
For the 1-day timeframe (D1):
Market segment | Number of candlesticks | Number of events |
Forex | 67432 | 183 |
Commodities | 15463 | 41 |
US indices | 5455 | 19 |
RF index | 2519 | 5 |
US stocks | 72925 | 190 |
RF stocks | 134269 | 315 |
Total | 298063 | 753 |
The total number of candlesticks and events:
Event | Number of candlesticks | Number of events |
Small patterns | ||
W <= 5% | 1981114 | 4989 |
W <= 10% | 1981114 | 10260 |
Major patterns | ||
W <= 5% | 1981114 | 2399 |
W <= 10% | 1981114 | 4965 |
Then, we will measure the share of Tops and Bottoms in % in the total number of initial candlesticks on the basis of timeframes:
Small patterns (ZigZag (5.3.3)):
For the 1-hour timeframe (H1):
Parameters of Tops/Bottoms | Forex | Commodities | US indices | RF index | US stocks | RF stocks |
W <= 5 % | 0.25 | 0.19 | 0.20 | 0.23 | 0.26 | 0.26 |
W <= 10 % | 0.53 | 0.39 | 0.41 | 0.46 | 0.53 | 0.50 |
For the 1-day timeframe (D1):
Parameters of Tops/Bottoms | Forex | Commodities | US indices | RF index | US stocks | RF stocks |
W <= 5 % | 0.30 | 0.27 | 0.27 | 0.24 | 0.29 | 0.26 |
W <= 10 % | 0.60 | 0.63 | 0.60 | 0.40 | 0.61 | 0.59 |
Major patterns (ZigZag (12.5.3)):
For the 1-hour timeframe (H1):
Parameters of Tops/Bottoms | Forex | Commodities | US indices | RF index | US stocks | RF stocks |
W <= 5 % | 0.13 | 0.10 | 0.13 | 0.10 | 0.14 | 0.11 |
W <= 10 % | 0.26 | 0.22 | 0.28 | 0.17 | 0.29 | 0.23 |
For the 1-day timeframe (D1):
Parameters of Tops/Bottoms | Forex | Commodities | US indices | RF index | US stocks | RF stocks |
W <= 5 % | 0.14 | 0.14 | 0.16 | 0.20 | 0.12 | 0.10 |
W <= 10 % | 0.27 | 0.27 | 0.35 | 0.20 | 0.26 | 0.23 |
Let us note that the more explicit the patterns are and the larger the figures, the less their share in the total number of candlesticks and the less likely they can appear on charts.
Now, we will view the results of the performance of trading signals obtained as a result of materialized Tops and Bottoms.
We will assess the results with the two following criteria:
- Momentum (m) reflects the average change in quotes of financial instruments at the moment of closing a position, in %. A positive value of the momentum indicates profitability of the signal performance, a negative value indicates loss-making.
- SPP, the share of profitable positions, %.
We take the following notations:
«H1 / 5», closing a position at the 5th candlestick over the 1-hour timeframe;
«H1 / 10», closing a position at the 10th candlestick over the 1-hour timeframe;
«H1 / 15», closing a position at the 15th candlestick over the 1-hour timeframe;
«D1 / 5», closing a position at the 15th candlestick over the 1-day timeframe;
«D1 / 10», closing a position at the 10th candlestick over the 1-day timeframe;
«D1 / 15», closing a position at the 15th candlestick over the 1-day timeframe;
W, distality of Tops/ Bottoms, %;
Volatility coefficient:
- For the daily timeframe: a ratio between the average volatility of 5 candlesticks after the opening of a position and the average volatility of 20 candlesticks preceding the opening a position.
- For the 1-hour timeframe: a ratio between the average volatility of 5 candlesticks after the opening of a position and the average volatility of the same hours during the following 4 days.
If the value of volatility coefficient is more than 1, it indicates a greater volatility after the signal in comparison with volatility before the signal, if the value is less than 1, it is the opposite.
Small patterns (ZigZag (5.3.3)):
The Number of Tops/Bottoms, the Momentum in %, and the Share of profitable positions, and Volatility coefficient on a term-to-term basis of the hold of positions, timeframes, and market segments with distality of Tops/Bottoms at most 5%
W<=5% | Indicator | Forex | Commodities | US indices | RF index | US stocks | RF stocks | All |
Н1/5 | Number of signals | 1634 | 224 | 107 | 26 | 591 | 1582 | 4164 |
Momentum | 0.011 | -0.042 | 0.007 | 0.159 | 0.073 | -0.028 | 0.006 | |
SPP | 50.7 | 53.0 | 50.5 | 53.9 | 50.3 | 42.9 | 47.0 | |
Volatility coefficient | 1.00 | 0.98 | 1.04 | 0.94 | 1.05 | 1.17 | 1.09 | |
Н1/10 | Number of signals | 1634 | 223 | 107 | 26 | 591 | 1580 | 4161 |
Momentum | 0.000 | 0.033 | 0.008 | 0.313 | 0.007 | 0.012 | 0.012 | |
SPP | 50.3 | 57.2 | 52.3 | 65.4 | 48.3 | 44.6 | 47.6 | |
Volatility coefficient | 1.00 | 0.98 | 1.04 | 0.94 | 1.05 | 1.17 | 1.09 | |
Н1/15 | Number of signals | 1632 | 223 | 107 | 26 | 591 | 1578 | 4157 |
Momentum | -0.001 | 0.089 | 0.031 | 0.365 | -0.059 | -0.047 | -0.029 | |
SPP | 50.0 | 60.8 | 51.4 | 61.5 | 47.1 | 45.5 | 47.8 | |
Volatility coefficient | 1.00 | 0.98 | 1.04 | 0.94 | 1.05 | 1.17 | 1.09 |
W<=5% | Indicator | Forex | Commodities | US indices | RF index | US stocks | RF stocks | All |
D1/5 | Number of signals | 199 | 41 | 15 | 6 | 209 | 355 | 825 |
Momentum | -0.003 | -0.039 | 0.472 | -0.810 | -0.095 | 0.632 | 0.276 | |
SPP | 47.1 | 38.4 | 55.0 | 33.3 | 49.3 | 46.0 | 46.7 | |
Volatility coefficient | 1.03 | 1.06 | 1.30 | 0.74 | 1.08 | 1.24 | 1.14 | |
D1/10 | Number of signals | 199 | 41 | 15 | 6 | 208 | 355 | 824 |
Momentum | 0.024 | 0.604 | 0.265 | 0.528 | -0.184 | 0.877 | 0.415 | |
SPP | 50.4 | 56.0 | 60.0 | 33.3 | 47.9 | 51.7 | 50.7 | |
Volatility coefficient | 1.03 | 1.06 | 1.30 | 0.74 | 1.08 | 1.24 | 1.14 | |
D1/15 | Number of signals | 197 | 41 | 15 | 6 | 208 | 354 | 821 |
Momentum | 0.145 | 0.602 | 0.221 | 0.116 | -1.025 | 0.710 | 0.149 | |
SPP | 52.1 | 51.5 | 50.0 | 50.0 | 44.9 | 49.9 | 49.2 | |
Volatility coefficient | 1.03 | 1.06 | 1.30 | 0.74 | 1.08 | 1.24 | 1.14 |
The Number of Tops/Bottoms, the Momentum in %, and the Share of profitable positions, and Volatility coefficient on a term-to-term basis of the hold of positions, timeframes, and market segments with distality of Tops/Bottoms at most 10%
W<=10% | Indicator | Forex | Commodities | US indices | RF index | US stocks | RF stocks | All |
Н1/5 | Number of signals | 3467 | 455 | 219 | 53 | 1243 | 3045 | 8482 |
Momentum | 0.007 | 0.072 | -0.045 | 0.197 | 0.050 | -0.032 | 0.003 | |
SPP | 49.9 | 53.1 | 45.2 | 60.4 | 50.3 | 44.9 | 47.8 | |
Volatility coefficient | 1.01 | 0.99 | 1.05 | 1.00 | 1.07 | 1.17 | 1.10 | |
Н1/10 | Number of signals | 3467 | 454 | 219 | 53 | 1243 | 3042 | 8478 |
Momentum | -0.006 | 0.126 | -0.049 | 0.462 | -0.020 | 0.022 | 0.013 | |
SPP | 49.7 | 55.5 | 47.5 | 66.0 | 48.6 | 45.1 | 47.6 | |
Volatility coefficient | 1.01 | 0.99 | 1.05 | 1.00 | 1.07 | 1.17 | 1.10 | |
Н1/15 | Number of signals | 3464 | 454 | 219 | 53 | 1242 | 3040 | 8472 |
Momentum | -0.007 | 0.237 | -0.003 | 0.442 | -0.128 | -0,047 | -0.040 | |
SPP | 50.4 | 57.5 | 47.0 | 64.2 | 47.1 | 45.6 | 47.7 | |
Volatility coefficient | 1.01 | 0.99 | 1.05 | 1.00 | 1.07 | 1.17 | 1.10 |
W<=10% | Indicator | Forex | Commodities | US indices | RF index | US stocks | RF stocks | All |
D1/5 | Number of signals | 403 | 98 | 33 | 10 | 442 | 792 | 1778 |
Momentum | 0.050 | -0.133 | 0.656 | -0.137 | -0.061 | 0.354 | 0.167 | |
SPP | 48.3 | 45.0 | 54.9 | 40.0 | 48.6 | 48.1 | 48.2 | |
Volatility coefficient | 1.06 | 1.01 | 1.20 | 0.93 | 1.07 | 1.24 | 1.14 | |
D1/10 | Number of signals | 402 | 98 | 33 | 10 | 441 | 791 | 1775 |
Momentum | 0.089 | 0.406 | 0.795 | 1.916 | -0.304 | 0.191 | 0.083 | |
SPP | 53.8 | 53.8 | 55.8 | 60.0 | 45.7 | 47.6 | 48.9 | |
Volatility coefficient | 1.06 | 1.01 | 1.20 | 0.93 | 1.07 | 1.24 | 1.14 | |
D1/15 | Number of signals | 400 | 98 | 33 | 10 | 441 | 788 | 1770 |
Momentum | 0.185 | 0.528 | 1.009 | 1.201 | -0.580 | 0.072 | -0.018 | |
SPP | 52.6 | 50.6 | 61.1 | 60.0 | 46.8 | 47.5 | 48.8 | |
Volatility coefficient | 1.06 | 1.01 | 1.20 | 0.93 | 1.07 | 1.23 | 1.14 |
Major patterns (ZigZag (12.5.3)):
The Number of Tops/Bottoms, the Momentum in %, and the Share of profitable positions, and Volatility coefficient on a term-to-term basis of the hold of positions, timeframes, and market segments with distality of Tops/Bottoms at most 5%
W<=5% | Indicator | Forex | Commodities | US indices | RF index | US stocks | RF stocks | All |
Н1/5 | Number of signals | 826 | 115 | 68 | 11 | 324 | 704 | 2048 |
Momentum | 0.012 | 0.012 | -0.007 | -0.149 | 0.001 | -0.048 | -0.021 | |
SPP | 48.7 | 62.2 | 53.0 | 36.4 | 48.3 | 45.0 | 47.5 | |
Volatility coefficient | 1.07 | 0.98 | 0.99 | 1.15 | 1.15 | 1.43 | 1.26 | |
Н1/10 | Number of signals | 826 | 115 | 68 | 11 | 324 | 703 | 2047 |
Momentum | 0.013 | -0.090 | 0.044 | -0.152 | -0.017 | 0.100 | 0.041 | |
SPP | 47.9 | 64.2 | 51.3 | 36.4 | 48.9 | 46.7 | 48.3 | |
Volatility coefficient | 1.07 | 0.98 | 0.99 | 1.15 | 1.15 | 1.43 | 1.26 | |
Н1/15 | Number of signals | 825 | 115 | 68 | 11 | 324 | 703 | 2046 |
Momentum | 0.002 | -0.205 | 0.088 | -0.121 | 0.025 | 0.140 | 0.064 | |
SPP | 50.0 | 59.6 | 56.3 | 54.6 | 50.0 | 47.9 | 49.6 | |
Volatility coefficient | 1.07 | 0.98 | 0.99 | 1.15 | 1.15 | 1.43 | 1.26 |
W<=5% | Indicator | Forex | Commodities | US indices | RF index | US stocks | RF stocks | All |
D1/5 | Number of signals | 94 | 22 | 9 | 5 | 88 | 133 | 351 |
Momentum | 0.281 | 0.313 | -0.939 | -0.020 | -0.405 | 0.978 | 0.396 | |
SPP | 58.1 | 55.8 | 33.3 | 60.0 | 40.9 | 52.9 | 50.9 | |
Volatility coefficient | 1.12 | 1.10 | 1.11 | 0.84 | 1.07 | 1.27 | 1.17 | |
D1/10 | Number of signals | 93 | 22 | 9 | 5 | 88 | 133 | 350 |
Momentum | 0.518 | 0.163 | -0.375 | 0.319 | 0.168 | 0.864 | 0.546 | |
SPP | 64.5 | 63.3 | 50.0 | 60.0 | 45.7 | 53.7 | 54.6 | |
Volatility coefficient | 1.12 | 1.10 | 1.11 | 0.84 | 1.07 | 1.27 | 1.17 | |
D1/15 | Number of signals | 93 | 22 | 9 | 5 | 88 | 132 | 349 |
Momentum | 0.532 | -0.774 | -0.482 | 0.145 | -0.412 | 0.604 | 0.233 | |
SPP | 58.9 | 37.8 | 58.3 | 60.0 | 47.7 | 57.5 | 54.3 | |
Volatility coefficient | 1.12 | 1.10 | 1.11 | 0.84 | 1.07 | 1.26 | 1.17 |
The Number of Tops/Bottoms, the Momentum in %, and the Share of profitable positions, and Volatility coefficient on a term-to-term basis of the hold of positions, timeframes, and market segments with distality of Tops/Bottoms at most 10%
W<=10% | Indicator | Forex | Commodities | US indices | RF index | US stocks | RF stocks | All |
Н1/5 | Number of signals | 1691 | 260 | 148 | 19 | 675 | 1419 | 4212 |
Momentum | 0.022 | 0.097 | -0.015 | 0.324 | 0.005 | 0.006 | 0.016 | |
SPP | 51.2 | 55.2 | 46.6 | 52.6 | 50.6 | 44.1 | 47.8 | |
Volatility coefficient | 1.08 | 1.01 | 0.99 | 1.40 | 1.16 | 1.41 | 1.25 | |
Н1/10 | Number of signals | 1691 | 260 | 148 | 19 | 675 | 1418 | 4211 |
Momentum | 0.017 | 0.108 | -0.016 | 0.156 | -0.013 | 0.075 | 0.043 | |
SPP | 51.1 | 58.4 | 47.9 | 42.1 | 46.7 | 44.9 | 47.3 | |
Volatility coefficient | 1.08 | 1.01 | 0.99 | 1.40 | 1.16 | 1.41 | 1.25 | |
Н1/15 | Number of signals | 1689 | 260 | 148 | 19 | 675 | 1418 | 4209 |
Momentum | 0.014 | 0.083 | 0.010 | -0.368 | -0.036 | 0.127 | 0.056 | |
SPP | 51.3 | 55.5 | 48.2 | 52.6 | 47.6 | 44.8 | 47.5 | |
Volatility coefficient | 1.08 | 1.01 | 0.99 | 1.40 | 1.16 | 1.41 | 1.25 |
W<=10% | Indicator | Forex | Commodities | US indices | RF index | US stocks | RF stocks | All |
D1/5 | Number of signals | Commodities | 41 | 19 | 5 | 190 | 315 | 753 |
Momentum | US indices | 0.537 | -0.153 | -0.020 | -0.413 | 0.205 | 0.056 | |
SPP | RF index | 55.8 | 46.7 | 60.0 | 45.2 | 50.0 | 50.4 | |
Volatility coefficient | US stocks | 1.09 | 1.20 | 0.84 | 1.07 | 1.32 | 1.20 | |
D1/10 | Number of signals | RF stocks | 40 | 19 | 5 | 190 | 315 | 751 |
Momentum | 0.357 | 0.368 | 0.452 | 0.319 | -0.144 | 0.363 | 0.239 | |
SPP | 60.6 | 57.5 | 52.2 | 60.0 | 44.8 | 49.5 | 51.1 | |
Volatility coefficient | 1.10 | 1.08 | 1.20 | 0.84 | 1.07 | 1.32 | 1.20 | |
D1/15 | Number of signals | 182 | 40 | 19 | 5 | 190 | 313 | 749 |
Momentum | 0.417 | -0.496 | 0.226 | 0.145 | -0.119 | 0.428 | 0.240 | |
SPP | 57.1 | 44.6 | 58.3 | 60.0 | 51.3 | 52.7 | 53.0 | |
Volatility coefficient | 1.10 | 1.08 | 1.20 | 0.84 | 1.07 | 1.31 | 1.20 |
Let us summarize the obtained results using the following diagrams:
Small patterns (ZigZag (5.3.3)):
Major patterns (ZigZag (12.5.3)):
Momentums
The highest momentum is both for small (0.415%) and for major (0.546%) patterns shown by signals of Tops and Bottoms over the daily timeframe with the distance of Tops/Bottoms no more than 5% and with fixating a position at the 10th candlestick.
Momentums of well-pronounced patterns of “Double top” and “Double bottom” raise minimum significant values by 0.3% with the module for the daily timeframe.
The minimum value of the momentum of 0.15% with the module has not been reached over the hourly timeframe.
SPP
The share of profitable positions of signals of the 1-hour timeframe vary between 47.0% and 49.6%, signals of the daily timeframe vary between 46.7% and 54.6%.
Volatility
The volatility raises by 5% after the signal in comparison with volatility before the signal for all timeframes and parameters of patterns.
The use of patterns of “Double top” and “Double bottom” in the market forecasting over the daily timeframe has been identified.
Detailed results are shown in the Appendix:
Comments
4