R&D Blog
NR7 Pattern | Trading Strategy (Setup & Exit)
I. Trading Strategy
Developer: Toby Crabel (NR7 Pattern). Source: Crabel, T. (1990). Day Trading with Short Term Price Patterns and Opening Range Breakout. Greenville: Traders Press, Inc. Concept: Volatility cycles. Research Goal: Performance verification of the NR7 pattern. Specification: Table 1. Results: Figure 1-2. Trade Setup: The current daily range is narrower than the previous six days’ daily ranges compared individually. Trade Entry: Opening Range Breakout (ORB): A trade is taken at a predetermined amount above/below the open. The predetermined amount is called the stretch. Long Trades: A buy stop is placed at [Open + Stretch]. Short Trades: A sell stop is placed at [Open − Stretch]. The first stop that is traded is the position. The other stop is the protective stop. Trade Exit: Table 1. Portfolio: 42 futures markets from four major market sectors (commodities, currencies, interest rates, and equity indexes). Data: 36 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: N & NR_Length (Definitions: Table 1):
Figure 1 | Portfolio Performance (Inputs: Table 1; Commission & Slippage: $0).
STRATEGY | SPECIFICATION | PARAMETERS |
Auxiliary Variables: | Noise: The difference between the open for each day and the closest extreme to the open on each day (Noise[i] = min(High[i] − Open[i], Open[i] − Low[i])). Average_Noise: The simple moving average of Noise over a period of Stretch_Length. Stretch[i] = Average_Noise[i] * Stretch_Multiple. Index: i ~ Current Bar. | Stretch_Length = 10; Stretch_Multiple = 2; |
Setup: | The current daily range is narrower than the previous six days’ daily ranges compared individually (NR_Length = 6; Default Value). | NR_Length = [1, 20], Step = 1; |
Filter: | N/A | |
Entry: | Opening Range Breakout (ORB): A trade is taken at a predetermined amount above/below the open. The predetermined amount is called the stretch (defined above). Long Trades: A buy stop is placed at [Open + Stretch]. Short Trades: A sell stop is placed at [Open − Stretch]. The first stop that is traded is the position. The other stop is the protective stop. If both stops are triggered during the same day, we account only for one entry and one exit (no reversals) and assume the trade was a loser. | |
Exit: | Time Exit: Nth day at the close. Stretch Exit: Long Trades: A sell stop is placed at [Open − Stretch]. Short Trades: A buy stop is placed at [Open + Stretch]. The values are calculated at the day of entry. 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]. | N = [1, 40], Step = 1; ATR_Length = 20; ATR_Stop = 6; |
Sensitivity Test: | NR_Length = [1, 20], Step = 1 N = [1, 40], Step = 1 | |
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; 36 years (1980/01/01−2016/01/31) |
Table 1 | Specification: Trading Strategy.
III. Sensitivity Test with Commission & Slippage
Tested Variables: N & NR_Length (Definitions: Table 1):
Figure 2 | Portfolio Performance (Inputs: Table 1; Commission & Slippage: $50 Round Turn).
IV. Research
Wyckoff, R. D. (1931). The Richard D. Wyckoff Method of Trading and Investing in Stocks. New York:
To draw an analogy from the science of physics, we might say that when a stock (or the market) is being accumulated, it is storing up a force (of demand) which, when later released, provides the motive power for the ensuing upward movement. And, when the force of this accumulative demand is finally released, it gives the price movement a certain momentum which it tends to hold until it is turned off its course by weakening of the original force or by a new force sufficient to compel a change of trend… Conversely, in a zone of distribution, a force of supply is being stored up which eventually overpowers the weakening force of demand, driving the price downward until the force of supply is exhausted or demand is revitalized and builds up sufficiently to bring about a state of comparative equilibrium (trading range). Thus, a downward movement also acquires a certain momentum which it tends to hold until it is turned off its course by weakening of the original force of supply or by a new force sufficient to compel a change of trend.
V. Rating: NR7 Pattern | Trading Strategy
A/B/C/D
VI. Summary
(i) The NR7 pattern performs better when NR_Length ≥ 6 (Figure 1-2); (ii) The longer holding period defined by the variable “N” is preferred (Figure 2); (iii) Once the cost of trading is applied (Figure 2), the pattern is not currently tradeable without some additional rules.
Related Entries: Opening Range Breakout (Exits) | 2 Bar Narrow Range Pattern (Exits) | Narrow Range N-Day Pattern (Setup)
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/crabel/nr7/