Jurik Directional Movement Index (DMX)

The Jurik Directional Movement Index (DMX) is a low-lag, bipolar trend oscillator that combines J. Welles Wilder’s classical directional movement framework with Jurik Moving Average (JMA) smoothing. While standard Average Directional Index (ADX) discards directional polarity to measure raw trend strength, DMX retains the sign of range expansion, producing a smooth, zero-centered oscillator nominally bounded between -100 and +100. By eliminating the destructive lag and jagged noise inherent in Wilder's original calculations, DMX provides earlier inflection points, cleaner zero-line transitions, and distinct exhaustion signals.
HISTORICAL CONTEXT
In 1978, J. Welles Wilder published the Directional Movement system (+DI, -DI, DX, and ADX) in New Concepts in Technical Trading Systems. Although revolutionary, classical ADX takes the absolute value of the difference between +DI and -DI, stripping out directional sign. As a result, ADX measures only whether a trend is strong, but cannot tell whether buyers or sellers are in control. Furthermore, Wilder’s cumulative smoothing (RMA) introduces significant phase delay, often signaling a trend long after the optimal trade entry has passed.
Mark Jurik of Jurik Research resolved these issues by introducing "Bipolar DMI" and filtering it with the proprietary Jurik Moving Average (JMA). Removing the absolute value from the directional ratio preserves market polarity: positive during upward expansions and negative during downward expansions. Smoothing this signed series with JMA eliminates false whipsaws common to raw +DI/-DI crossovers without the sluggish phase lag of standard moving averages.
HOW IT WORKS
Stage 1: Directional Movement and True Range
The script measures directional expansion by comparing the current bar's range against the previous bar (+DM and -DM), normalized against the True Range (TR). Wilder’s smoothing accumulates these components across the specified Period to compute the positive and negative directional indicators (+DI and -DI).
Stage 2: Bipolar DMI Formulation
Unlike classical DX, which computes the absolute difference between directional indicators, DMX calculates a signed bipolar ratio:
Bipolar = (+DI - -DI) / (+DI + -DI)
This maps directional balance into a continuous, normalized range from -1 to +1. A value of +1 represents pure upward expansion, -1 represents pure downward expansion, and 0 marks complete directional equilibrium.
Stage 3: JMA Adaptive Smoothing
The raw bipolar series passes into an integrated Jurik Moving Average (JMA) using the same Period parameter. JMA’s internal volatility-distribution tracking suppresses high-frequency noise and rogue price spikes while reacting instantaneously to genuine inflection points. In Pine Script, the output is scaled to -100 to +100 for intuitive threshold charting alongside conventional momentum levels.
INPUTS & PARAMETERS
Period: The lookback length used for both the directional movement indicators (+DI/-DI) and the adaptive JMA smoother. Default: 14.
HOW TO USE
Zero-Line Crossings & Trend Bias
DMX oscillates symmetrically around a zero baseline, indicating which market participant is in control:
Bullish Bias: DMX > 0 indicates buyers dominate directional expansion.
Bearish Bias: DMX < 0 indicates sellers dominate directional expansion.
Trend Inversion Signal: A cross above zero signals an emerging bullish regime; a cross below zero marks an emerging bearish breakdown.
Slope Reversals and Early Exhaustion
Because JMA filters out minor noise without introducing lag, slope reversals in DMX carry strong predictive utility:
Bullish Exhaustion: DMX curling downward from positive extreme zones (e.g., above +60) warns of fading momentum bars before price tops out.
Bearish Exhaustion: DMX hooking upward from negative extreme zones (e.g., below -60) signals that selling pressure is dissipating.
Directional Saturation Zones
Readings approaching ±60 to ±80 highlight powerful, efficient directional runs. Persistent readings near these extremes confirm a dominant trend, while divergences between price (e.g., higher highs) and DMX peaks (lower highs) alert to hidden momentum decay.
LIMITATIONS
Dynamic Overshoot: Because JMA adapts dynamically to volatility with minimal phase delay, violent price shocks can cause the smoothed oscillator to briefly overshoot beyond the nominal -100 to +100 boundaries.
Warmup Time: The calculation requires initialization of both Wilder’s RMA accumulator and JMA’s internal 128-sample volatility distribution. Output during the early warmup window is uninitialized and should be disregarded.
Congestion Chop: During tight, low-volatility trading ranges where +DI and -DI converge toward near-equal values, DMX will hover tightly around zero. Use a secondary volatility or trend filter to avoid false signals in flat markets.
Proprietary Reconstruction: Mark Jurik’s commercial DMX binaries are proprietary. This implementation reconstructs the published architecture using open mathematical formulations and defensible JMA logic, which may show subtle numerical differences from closed-source commercial releases.
REFERENCES
Wilder, J. W. New Concepts in Technical Trading Systems. Trend Research, 1978.
Jurik Research. Product Guide: Software Tools for Market Technicians. Jurik Research, 1999.
Jurik, M. "The Jurik Moving Average (JMA)." Jurik Research Technical Documentation, 2000.
HISTORICAL CONTEXT
In 1978, J. Welles Wilder published the Directional Movement system (+DI, -DI, DX, and ADX) in New Concepts in Technical Trading Systems. Although revolutionary, classical ADX takes the absolute value of the difference between +DI and -DI, stripping out directional sign. As a result, ADX measures only whether a trend is strong, but cannot tell whether buyers or sellers are in control. Furthermore, Wilder’s cumulative smoothing (RMA) introduces significant phase delay, often signaling a trend long after the optimal trade entry has passed.
Mark Jurik of Jurik Research resolved these issues by introducing "Bipolar DMI" and filtering it with the proprietary Jurik Moving Average (JMA). Removing the absolute value from the directional ratio preserves market polarity: positive during upward expansions and negative during downward expansions. Smoothing this signed series with JMA eliminates false whipsaws common to raw +DI/-DI crossovers without the sluggish phase lag of standard moving averages.
HOW IT WORKS
Stage 1: Directional Movement and True Range
The script measures directional expansion by comparing the current bar's range against the previous bar (+DM and -DM), normalized against the True Range (TR). Wilder’s smoothing accumulates these components across the specified Period to compute the positive and negative directional indicators (+DI and -DI).
Stage 2: Bipolar DMI Formulation
Unlike classical DX, which computes the absolute difference between directional indicators, DMX calculates a signed bipolar ratio:
Bipolar = (+DI - -DI) / (+DI + -DI)
This maps directional balance into a continuous, normalized range from -1 to +1. A value of +1 represents pure upward expansion, -1 represents pure downward expansion, and 0 marks complete directional equilibrium.
Stage 3: JMA Adaptive Smoothing
The raw bipolar series passes into an integrated Jurik Moving Average (JMA) using the same Period parameter. JMA’s internal volatility-distribution tracking suppresses high-frequency noise and rogue price spikes while reacting instantaneously to genuine inflection points. In Pine Script, the output is scaled to -100 to +100 for intuitive threshold charting alongside conventional momentum levels.
INPUTS & PARAMETERS
Period: The lookback length used for both the directional movement indicators (+DI/-DI) and the adaptive JMA smoother. Default: 14.
HOW TO USE
Zero-Line Crossings & Trend Bias
DMX oscillates symmetrically around a zero baseline, indicating which market participant is in control:
Bullish Bias: DMX > 0 indicates buyers dominate directional expansion.
Bearish Bias: DMX < 0 indicates sellers dominate directional expansion.
Trend Inversion Signal: A cross above zero signals an emerging bullish regime; a cross below zero marks an emerging bearish breakdown.
Slope Reversals and Early Exhaustion
Because JMA filters out minor noise without introducing lag, slope reversals in DMX carry strong predictive utility:
Bullish Exhaustion: DMX curling downward from positive extreme zones (e.g., above +60) warns of fading momentum bars before price tops out.
Bearish Exhaustion: DMX hooking upward from negative extreme zones (e.g., below -60) signals that selling pressure is dissipating.
Directional Saturation Zones
Readings approaching ±60 to ±80 highlight powerful, efficient directional runs. Persistent readings near these extremes confirm a dominant trend, while divergences between price (e.g., higher highs) and DMX peaks (lower highs) alert to hidden momentum decay.
LIMITATIONS
Dynamic Overshoot: Because JMA adapts dynamically to volatility with minimal phase delay, violent price shocks can cause the smoothed oscillator to briefly overshoot beyond the nominal -100 to +100 boundaries.
Warmup Time: The calculation requires initialization of both Wilder’s RMA accumulator and JMA’s internal 128-sample volatility distribution. Output during the early warmup window is uninitialized and should be disregarded.
Congestion Chop: During tight, low-volatility trading ranges where +DI and -DI converge toward near-equal values, DMX will hover tightly around zero. Use a secondary volatility or trend filter to avoid false signals in flat markets.
Proprietary Reconstruction: Mark Jurik’s commercial DMX binaries are proprietary. This implementation reconstructs the published architecture using open mathematical formulations and defensible JMA logic, which may show subtle numerical differences from closed-source commercial releases.
REFERENCES
Wilder, J. W. New Concepts in Technical Trading Systems. Trend Research, 1978.
Jurik Research. Product Guide: Software Tools for Market Technicians. Jurik Research, 1999.
Jurik, M. "The Jurik Moving Average (JMA)." Jurik Research Technical Documentation, 2000.
Rigorous technical indicators for Pine Script 6 with O(1) streaming, defensible math, and proper initialization. Fully documented, implemented in C#, transcribed to Pine Script, and wrapped for Python.
Clause de non-responsabilité
Les informations et publications ne sont pas destinées à être, et ne constituent pas, des conseils ou recommandations financiers, d'investissement, de trading ou autres fournis ou approuvés par TradingView. Pour en savoir plus, consultez les Conditions d'utilisation.
Rigorous technical indicators for Pine Script 6 with O(1) streaming, defensible math, and proper initialization. Fully documented, implemented in C#, transcribed to Pine Script, and wrapped for Python.
Clause de non-responsabilité
Les informations et publications ne sont pas destinées à être, et ne constituent pas, des conseils ou recommandations financiers, d'investissement, de trading ou autres fournis ou approuvés par TradingView. Pour en savoir plus, consultez les Conditions d'utilisation.