R&D Blog
Modified Hikkake Pattern | Trading Strategy (Filter & Exit)
I. Trading Strategy
Developer: Dan Chesler, CTM, CTA. Concept: Trading strategy based on false breakouts. Research Goal: Performance verification. Specification: Table 1. Results: Figure 1-2. Trade Setup: Long Trades: The modified bullish hikkake pattern (a.k.a. the bullish “inside day false breakout”) consists of two price bars. The first bar is an inside bar. The second bar has a lower close than the first bar. Short Trades: The modified bearish hikkake pattern (a.k.a. the bearish “inside day false breakout”) consists of two price bars. The first bar is an inside bar. The second bar has a higher close than the first bar. Trade Entry: Long Trades: A buy stop is placed one tick above the highest high of the first/second bar in the modified bullish hikkake pattern. Short Trades: A sell stop is placed one tick below the lowest low of the first/second bar in the modified bearish hikkake pattern. The signals must be generated within three bars of the modified hikkake pattern. Trade Exit: Table 1. Portfolio: 42 futures markets from four major market sectors (commodities, currencies, interest rates, and equity indexes). Data: 39 years since 1980. Testing Platform: MATLAB®.
II. Sensitivity Test
All 3-D charts are followed by 2-D contour charts for Profit Factor, Sharpe Ratio, Ulcer Performance Index, CAGR, Maximum Drawdown, Percent Profitable Trades, and Avg. Win / Avg. Loss Ratio. The final picture shows sensitivity of Equity Curve.
Tested Variables: Trend_Index & Time_Index (Definitions: Table 1):
Figure 1 | Portfolio Performance (Inputs: Table 1; Commission & Slippage: $0).
STRATEGY | SPECIFICATION | PARAMETERS |
Auxiliary Variables: | N/A | |
Setup: | Long Trades: The modified bullish hikkake pattern (a.k.a. the bullish “inside day false breakout”) consists of two price bars. The first bar is an inside bar (i.e. High[i − 1] < High[i − 2] and Low[i − 1] > Low[i − 2]; Index: i ~ Current Bar). The second bar has a lower close than the first bar (i.e. Close[i] < Close[i − 1]; Index: i ~ Current Bar). Short Trades: The modified bearish hikkake pattern (a.k.a. the bearish “inside day false breakout”) consists of two price bars. The first bar is an inside bar (i.e. High[i − 1] < High[i − 2] and Low[i − 1] > Low[i − 2]; Index: i ~ Current Bar). The second bar has a higher close than the first bar (i.e. Close[i] > Close[i − 1]; Index: i ~ Current Bar). | |
Filter: | Long Trades: Close[i] ≥ Close[i − Trend_Index]. Short Trades: Close[i] ≤ Close[i − Trend_Index]. Index: i ~ Current Bar. Note: If Trend_Index = 0 then the trend filter is turned off. | Trend_Index = [0, 200], Step = 5; |
Entry: | Long Trades: A buy stop is placed one tick above the highest high of the first/second bar in the modified bullish hikkake pattern. The signal must be generated within three bars of the modified hikkake pattern. Short Trades: A sell stop is placed one tick below the lowest low of the first/second bar in the modified bearish hikkake pattern. The signal must be generated within three bars of the modified hikkake pattern. | |
Exit: | Time Exit: nth day at the close, n = Time_Index. Pattern Exit: Long Trades: A sell stop is placed one tick below the lowest low of the pattern (the period between the first bar of the modified hikkake pattern and the entry bar). Short Trades: A buy stop is placed one tick above the highest high of the pattern (the period between the first bar of the modified hikkake pattern and the entry bar). Stop Loss Exit: ATR(ATR_Length) is the Average True Range over a period of ATR_Length. ATR_Stop is a multiple of ATR(ATR_Length). Long Trades: A sell stop is placed at [Entry − ATR(ATR_Length) * ATR_Stop]. Short Trades: A buy stop is placed at [Entry + ATR(ATR_Length) * ATR_Stop]. | Time_Index = [1, 196], Step = 5; ATR_Length = 20; ATR_Stop = 6; |
Sensitivity Test: | Trend_Index = [0, 200], Step = 5 Time_Index = [1, 196], Step = 5 | |
Position Sizing: | Initial_Capital = $1,000,000 Fixed_Fractional = 1% Portfolio = 42 US Futures ATR_Stop = 6 (ATR ~ Average True Range) ATR_Length = 20 | |
Data: | 42 futures markets; 39 years (1980/01/01−2019/03/31) |
Table 1 | Specification: Trading Strategy.
III. Sensitivity Test with Commission & Slippage
Tested Variables: Trend_Index & Time_Index (Definitions: Table 1):
Figure 2 | Portfolio Performance (Inputs: Table 1; Commission & Slippage: $50 Round Turn).
IV. Benchmarking
We benchmark Modified Hikkake Patterns (Table 2) against regular Hikkake Patterns (Table 3):
Case #1: Trend_Index = 0 (i.e. trend filter is turned off); Time_Index = 5.
Case #2: Trend_Index = 0 (i.e. trend filter is turned off); Time_Index = 10.
Case #3: Trend_Index = 0 (i.e. trend filter is turned off); Time_Index = 15.
Case #4: Trend_Index = 0 (i.e. trend filter is turned off); Time_Index = 20.
Modified Hikkake | Case #1 | Case #2 | Case #3 | Case #4 |
Net Profit ($) | (158,944) | 358,164 | 787,518 | 1,655,479 |
Sharpe Ratio | (0.07) | 0.15 | 0.24 | 0.34 |
Ulcer Performance Index (UPI) | (0.02) | 0.07 | 0.19 | 0.32 |
Profit Factor | 0.99 | 1.02 | 1.03 | 1.05 |
CAGR (%) | (0.44) | 0.78 | 1.49 | 2.52 |
Max. Drawdown (%) | (31.71) | (26.12) | (18.48) | (18.52) |
Percent Profitable Trades (%) | 45.24 | 39.56 | 35.89 | 33.78 |
Avg. Win / Avg. Loss Ratio | 1.19 | 1.56 | 1.85 | 2.07 |
Table 2 | Inputs: Table 1; Fixed Fractional Sizing: 1%; Commission & Slippage: $50 Round Turn.
Regular Hikkake | Case #1 | Case #2 | Case #3 | Case #4 |
Net Profit ($) | (513,696) | (230,492) | (177,535) | (56,728) |
Sharpe Ratio | (0.46) | (0.10) | (0.05) | 0.01 |
Ulcer Performance Index (UPI) | (0.05) | (0.02) | (0.02) | (0.01) |
Profit Factor | 0.93 | 0.98 | 0.99 | 1.00 |
CAGR (%) | (1.82) | (0.67) | (0.50) | (0.15) |
Max. Drawdown (%) | (56.41) | (46.91) | (42.93) | (39.87) |
Percent Profitable Trades (%) | 44.77 | 39.43 | 35.17 | 33.04 |
Avg. Win / Avg. Loss Ratio | 1.14 | 1.50 | 1.82 | 2.02 |
Table 3 | Inputs: Table 1; Fixed Fractional Sizing: 1%; Commission & Slippage: $50 Round Turn.
V. Rating: Modified Hikkake Pattern | Trading Strategy
A/B/C/D
VI. Summary
(i) The longer holding period defined by the variable “Time_Index” is preferred (i.e. Time_Index > 10 bars; Figure 2); (ii) Modified Hikkake Patterns perform slightly better than regular Hikkake Patterns (Table 2 vs. Table 3); (iii) The pattern modifications proposed in the article “Trading False Moves with the Hikkake Pattern” do not add value; (iv) Hikkake Patterns can be further developed to become part of a multi-pattern trading strategy.
Related Entries: Hikkake Pattern (Filter & Exit)
Related Topics: (Public) Trading Strategies
CFTC RULE 4.41: HYPOTHETICAL OR SIMULATED PERFORMANCE RESULTS HAVE CERTAIN LIMITATIONS. UNLIKE AN ACTUAL PERFORMANCE RECORD, SIMULATED RESULTS DO NOT REPRESENT ACTUAL TRADING. ALSO, SINCE THE TRADES HAVE NOT BEEN EXECUTED, THE RESULTS MAY HAVE UNDER-OR-OVER COMPENSATED FOR THE IMPACT, IF ANY, OF CERTAIN MARKET FACTORS, SUCH AS LACK OF LIQUIDITY. SIMULATED TRADING PROGRAMS IN GENERAL ARE ALSO SUBJECT TO THE FACT THAT THEY ARE DESIGNED WITH THE BENEFIT OF HINDSIGHT. NO REPRESENTATION IS BEING MADE THAT ANY ACCOUNT WILL OR IS LIKELY TO ACHIEVE PROFIT OR LOSSES SIMILAR TO THOSE SHOWN.
RISK DISCLOSURE: U.S. GOVERNMENT REQUIRED DISCLAIMER | CFTC RULE 4.41
Codes: matlab/chesler/hikkake-2