1988issue C111-5
Average Directional Index construction with frozen true range and directional rules
Average Directional Index is assembled from true range and two exclusive directional increments. The construction freezes those three bar rules in named seed cells and projects the same definition across an ordered sample.
- A bar's true range is the largest of its high-to-low span and the two absolute gaps from the prior close to the current high and the current low.
- Plus directional movement and minus directional movement are mutually exclusive: only the dominant extension is kept, and the opposite increment is stored as a missing value.
- Named seed formulas define the construction once. Copies are filled down their columns and converted to values so only the original formula cells stay live.
- Lengthening the last row of the named input and result ranges extends the sample while the same true-range and directional-increment rules stay in force.
A model defined once
Average Directional Index is a trend-strength model assembled from true range and the two exclusive directional-movement increments over a chosen sampling interval and lookback. Construction on each bar starts with three quantities: true range, plus directional movement, and minus directional movement.
Editorial reading: those three quantities are frozen bar rules. Once they are written as named seed formulas, the same definition is projected across the ordered sample instead of being rewritten on every observation. The archive records the historical workflow. The frozen-rule reading is editorial and is not attributed to the archive.
True range
True range is the largest of a bar's high-to-low width and the two absolute gaps between that bar's extremes and the prior close. In construction, compare the bar's high-to-low span, the absolute gap from the prior close to the current high, and the absolute gap from the prior close to the current low. Keep the largest of those three measures as that bar's true range.
Exclusive directional increments
Plus directional movement is the upward extension kept only when the current high makes the dominant advance versus the prior bar. The plus directional increment equals the current high minus the prior high on a clear up bar, or on an outside bar whose upside extension exceeds its downside extension. Otherwise that increment is stored as a missing value.
Minus directional movement is the downward extension kept only when the current low makes the dominant decline versus the prior bar. The minus directional increment equals the prior low minus the current low on a clear down bar, or on an outside bar whose downside extension exceeds its upside extension. Otherwise that increment is stored as a missing value.
An outside bar both exceeds the prior high and breaks the prior low, so only the larger extension is retained. Nested conditionals implement that outside-bar tie-break: only the dominant extension is kept, and the opposite directional increment is left without a directional value.
Named ranges and static formula fill
Named ranges identify the price block, the three seed formulas, and the result columns so each Average Directional Index component can be filled from a single unchanging definition.
When the construction formulas do not change from bar to bar, the working method is static formula fill. Copy each named seed formula down its column and convert the copies to values, leaving only the original formula cells live.
Indexed write loops and position counters are reserved for procedures in which the text of each calculated line actually changes while the loop runs. They are not the working method when the construction rules stay the same from bar to bar.
Missing-value markers
A missing-value marker is a non-numeric placeholder that keeps a non-qualifying bar off a chart instead of plotting as zero. Seed rows and non-qualifying directional cells should hold missing-value markers. Blank-text placeholders can plot as zero and shrink the chart scale.
Chicago wheat March 1978: frozen true range and exclusive directional increments

Source cells mark the unused directional side as NA rather than zero. Those blanks are omitted so each directional series holds only the bars where that increment is live. True range uses Wilder's three-way max of the bar range and the two close-to-extreme gaps. Plus and minus increments are mutually exclusive.
Extending the sample
Lengthening the last row of the named input and result ranges extends the sample while leaving the same true-range and directional-increment rules in force. The seed definitions do not need to be rewritten when the ordered sample grows.
All readings on this track · 56 readings
- 1986Cycle-aligned directional trend indicator
- 1987What crossover and directional entry rules actually compare
- 1988A directional-line cross needs a trend filter, an extreme-point rule, and a dollar stop
- 1988Constructing true range by offset addressing
- 1988Constructing directional movement from bar range
- 1988Average directional index construction: recursive smoothing and lookback offset
- 1988Staged Average Directional Index construction with Relative Strength Index confirmation and stop alerts
- 1988Average Directional Index construction with frozen true range and directional rules
- 1991Constructing the average directional index from range expansion and true range
- 1991Constructing five-session forecasts from stochastic, ADX, and MACD inputs
- 1993Constructing the average directional index from directional movement and true range
- 1993Confirming n-bar breakouts with ADX and DX filters
- 1994Constructing a Bollinger band-width trend filter
- 1994A pre-trade checklist that can refuse a long three ways
- 1997An ADX threshold and a moving average as a trend filter
- 1998Regime filters for mutated indicators
- 1999Building the average directional index from range extension and true range
- 2000Evaluating ADX, RSI, and moving averages in a multi-stock warehouse
- 2000Stochastic pop as a filtered continuation setup
- 2000Onset and exit from one average directional index
- 2002Joint ADX and MACD readout for trend strength and direction
- 2003Adaptive Donchian breakout with implied volatility and volume
- 2004The average directional index as a regime gate for the relative strength index and the stochastic oscillator
- 2004Constructing true-range-specified volume as a directional filter
- 2005Constructing a multi-filter penny stock breakout procedure
- 2005Construct one playbook that flips with session regime
- 2005Combining Bollinger Bands, the average directional index, and Fibonacci retracement on currency pairs
- 2006Assembling an adaptive price zone from double-smoothed averages
- 2006An ADX strength gate for MACD and the stochastic oscillator
- 2007Directional movement as a filter plus trigger
- 2007Constructing a veto-first trend permission stack
- 2007ADX gates for trend end, range, and reversal
- 2008Constructing a nine-cell directional-ratio grid
- 2008Average directional index and directional trend indicator lookbacks as trend-filter parameters
- 2008A holding-matched market lens from averages and directional-line crosses
- 2008A nine-cell directional scoreboard for multi-horizon entries
- 2010Building a Vortex Indicator from high-low distances
- 2010Constructing ADX, RSI, and MACD price filters
- 2011Constructing a volume zone oscillator with a moving-average and Average Directional Index regime filter
- 2011A volume zone oscillator conditioned by an Average Directional Index filter
- 2011Candlestick names need volume-price, ADX, and moving-average checks
- 2012Clustered average-directional-index traces as a trend-start filter
- 2012Average Directional Index cluster filters for trend-start signals
- 2012Confirming a trend start or turn with a triple ADX cluster
- 2013Constructing a late-entry stack from a signed DMI oscillator
- 2013A directional oscillator and its stochastic as a stacked timing filter
- 2013ADX cluster lookbacks are a locked specification, not a chart label
- 2013Combining moving averages, stochastics, and ADX in a daily scan
- 2015Assembling the Average Directional Index from directional movement
- 2016How an Average Directional Index filter and a breakout entry form one procedure
- 2016Score RSI and stochastic crossings only when ADX confirms the trend
- 2018Constructing an ADX filter for intraday breakouts
- 2018An ADX volatility gate for prior-day breakouts
- 2019Exponential deviation bands with a moving average, RSI and ADX
- 2020A normalized-slope trend filter from linear regression
- 2020Gating volatility-momentum divergences with a Trend filter