Zero-Lag Response
Unlike conventional smoothers that lag behind price movements, the Ultimate Smoother maintains phase alignment in the passband. When price changes direction, the filter responds on the same bar—not several bars later.
The Ultimate Smoother does what conventional filters cannot: it smooths price data with effectively zero lag in the passband. Pioneered by John F. Ehlers and extended by our research team, it replaces averaging with a different idea from digital signal processing : cancelling the noise instead of diluting it.
Traditional filters face an inescapable trade-off: more smoothing means more lag. Moving averages, even sophisticated ones, must choose between responsiveness and noise reduction. The Ultimate Smoother sidesteps this trade-off with a construction that maintains phase alignment at all frequencies in the passband.
Zero-Lag Response
Unlike conventional smoothers that lag behind price movements, the Ultimate Smoother maintains phase alignment in the passband. When price changes direction, the filter responds on the same bar—not several bars later.
Noise Reduction
Despite its zero-lag characteristic, the filter effectively attenuates high-frequency noise. This isn’t achieved through averaging but through sophisticated frequency cancellation.
Adaptive Smoothness
The 3-pole version offers controllable smoothness without sacrificing responsiveness. Paradoxically, longer periods create less smooth but more responsive output.
The Ultimate Smoother achieves these properties through a counterintuitive approach: instead of directly designing a low-pass filter, it subtracts a high-pass filter from an all-pass filter (the original input).
The filter operates on a simple but profound principle:
Low-Pass Output = All-Pass Input - High-Pass ComponentAt very low frequencies (long-term trends), the high-pass filter contributes almost nothing, so the output closely matches the input in both amplitude and phase. At higher frequencies (noise), the high-pass filter’s response increasingly matches the input, resulting in cancellation through subtraction.
For the 2-pole Ultimate Smoother:
ω = √2 × π / perioda₁ = e^(-ω)
Coefficients:c₀ = (1 + 2a₁cos(ω) - a₁²) / 4c₁ = 2a₁cos(ω)c₂ = -a₁²
Output = (1-c₀)×source + (2c₀-c₁)×source[1] - (c₀+c₂)×source[2] + c₁×output[1] + c₂×output[2]The Ultimate Smoother exhibits unique frequency characteristics:
The 3-pole Ultimate Smoother maintains all the benefits of the original while adding:
Add the Indicator
Search for “GYTS Ultimate Smoother” in TradingView’s indicator library. The open source version provides both 2-pole and 3-pole options.
Select Your Version
Adjust the Period
Start with a period of 20. Remember that behaviour differs between versions:
Fine-Tune Visualisation
Use our signature colour palettes or monochromatic mode. Adjust transparency and line width for optimal chart clarity.
Use 2-Pole when...
Use 3-Pole when...
The Ultimate Smoother serves as a foundational component throughout our indicator suite:
Use as a zero-lag price proxy for:
Pre-process price data before:
Combine with other filters for:
Popular combinations discovered through research:
By making both the indicator and its library implementation open source, we invite you to:
Source Code: