OPEN-SOURCE SCRIPT
Updated

Jurik Moving Average (JMA)

459
Overview

Jurik Moving Average (JMA) is an adaptive moving average developed by Mark Jurik, widely regarded as one of the most powerful moving averages available to traders. This implementation provides a direct Pine Script translation of the reverse-engineered JMA algorithm

What Makes JMA Special
Unlike traditional moving averages, JMA adapts to market volatility in real-time. This "triple adaptive" approach allows JMA to:
  • Reduce lag significantly while maintaining exceptional smoothness
  • React quickly during trending markets
  • Filter out noise during consolidation phases
  • Provide clearer trend signals with fewer whipsaws


The Triple Adaptive Edge

JMA employs a three-stage smoothing process:
  • Preliminary smoothing via an adaptive EMA
  • Secondary smoothing using a Kalman filter with phase adjustment
  • Final smoothing through a unique Jurik adaptive filter


This approach combines with a dynamic volatility-based factor (alpha) that adapts to market conditions, making JMA superior to traditional moving averages in most situations.

Key Parameters

Period: Controls the lookback period (default: 14)
Phase: Adjusts the heaviness of the indicator (-100 to 100, default: 0)
  • Positive values reduce lag but may cause overshoot
  • Negative values increase smoothness but reduce responsiveness

Power: Smoothing factor (0.1-0.9, default 0.45)

Higher values create smoother curves
Lower values create more responsive but choppy curves
Release Notes
Jurik Moving Average (JMA) is an adaptive moving average developed by Mark Jurik, widely regarded as one of the most powerful moving averages available to traders. This implementation provides a direct Pine Script translation of the reverse-engineered JMA algorithm; the true original algorithm was never published.

What Makes JMA Special
Unlike traditional moving averages, JMA adapts to market volatility in real-time. This "triple adaptive" approach allows JMA to:
  • Reduce lag significantly while maintaining exceptional smoothness
  • React quickly during trending markets
  • Filter out noise during consolidation phases
  • Provide clearer trend signals with fewer whipsaws


JMA employs a three-stage smoothing process:
  • Preliminary smoothing via an adaptive EMA
  • Secondary smoothing using a Kalman filter with phase adjustment
  • Final smoothing through a unique Jurik adaptive filter


This approach combines with a dynamic volatility-based factor (alpha) that adapts to market conditions, making JMA superior to traditional moving averages in most situations.

Key Parameters

Period: Controls the lookback period (default: 14)
Phase: Adjusts the heaviness of the indicator (-100 to 100, default: 0)
  • Positive values reduce lag but may cause overshoot
  • Negative values increase smoothness but reduce responsiveness

Power: Smoothing factor (0.1-0.9, default 0.45 - usually hard-coded and not exposed)
  • Higher values create smoother curves
  • Lower values create more responsive but choppy curves
Release Notes
Jurik Moving Average (JMA) is an adaptive moving average developed by Mark Jurik, widely regarded as one of the most powerful moving averages available to traders. This implementation provides a direct Pine Script translation of the reverse-engineered JMA algorithm. Original proprietary algorithm was never published.

Unlike traditional moving averages, JMA adapts to market volatility in real-time. This "triple adaptive" approach allows JMA to:
  • Reduce lag significantly while maintaining exceptional smoothness
  • React quickly during trending markets
  • Filter out noise during consolidation phases
  • Provide clearer trend signals with fewer whipsaws


JMA employs a three-stage smoothing process:
  • Preliminary smoothing via an adaptive EMA
  • Secondary smoothing using a Kalman filter with phase adjustment
  • Final smoothing through a unique Jurik adaptive filter


This approach combines with a dynamic volatility-based factor (alpha) that adapts to market conditions, making JMA superior to traditional moving averages in most situations.

Key Parameters

Period: Controls the lookback period (default: 14)
Phase: Adjusts the heaviness of the indicator (-100 to 100, default: 0)
Positive values reduce lag but may cause overshoot
Negative values increase smoothness but reduce responsiveness
Power: Smoothing factor (0.1-0.9, default 0.45)
Higher values create smoother curves
Lower values create more responsive but choppy curves
Release Notes
Added Jurik Volatility Bands
Fixed edge conditions
Fixed calculation of vSum and aVolty

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.