Ehlers SuperSmoother
The SuperSmoother is a two-pole low-pass filter John Ehlers adapted from Butterworth filter design for market data. Ehlers SuperSmoother, also known as 2-pole/3-pole smoothers, is a Trend concept. The Library holds 1 implementation, ready to run on Vela.
Top Ehlers SuperSmoother indicator
The top custom implementation, built on the original standard Ehlers SuperSmoother formula.
1 total
From studying Ehlers SuperSmoother to trading it: open the implementation below on Vela, then build a strategy on it with Quant and backtest it.
What is the Ehlers SuperSmoother?
The SuperSmoother is a two-pole low-pass filter John Ehlers adapted from Butterworth filter design for market data. Like any smoother it keeps the slow components of price and rejects the fast ones, but it is specified in frequency terms: you choose a cutoff period (10 bars is a common default in Ehlers' work), and fluctuations with shorter wavelengths are strongly attenuated rather than merely dampened. Each output blends the average of the current and prior price with feedback from the previous two outputs, using three coefficients derived from exponential and cosine functions of the cutoff period.
Ehlers' case for it over a conventional EMA or SMA is attenuation per unit of lag: one recursive pole rolls off noise gently, two poles cut it much more sharply for similar delay, and averaging the two most recent prices at the input suppresses the shortest, alias-prone wavelengths sampled data can carry. A three-pole variant smooths harder for a little more lag. It appears standalone as a low-lag trend line and, at least as often, as the smoothing stage inside other studies.
The Butterworth heritage is the design's substance. Butterworth filters are prized in engineering for a maximally flat passband, the components you keep pass through with minimal distortion, and the square-root-of-two constants in the SuperSmoother's coefficients are that design's damping factor showing through. The two-bar input average addresses a separate, quieter problem Ehlers emphasizes: sampled bar data carries spurious energy near its sampling limit, the aliasing residue of everything that happened inside each bar, and averaging adjacent inputs notches out exactly that shortest wavelength before the recursive stages ever see it.
Within the Ehlers ecosystem the SuperSmoother is the default smoothing block: it is the low-pass half of the roofing filter, the conditioning stage before cycle measurement, and the noise-trimmer inside derived studies from deviation-scaled averages to smoothed oscillators, a role visible across the Library's ports. Deployment guidance follows from the frequency framing: set the cutoff to the shortest swing you actually trade, since everything faster is being declared noise, and prefer it over stacking conventional averages wherever an extra smoothing pass would otherwise stack extra lag, including inside a higher-timeframe trend filter where staleness is already the cost being managed.
How to calculate the Ehlers SuperSmoother
The published two-pole recipe, stated in words:
- 1Pick a cutoff period P in bars; cycles shorter than P are what the filter is designed to reject.
- 2Compute the coefficients from P: a decay term a1 = e^(-√2·π/P), a second term b1 = 2 × a1 × cos(√2·π/P), then c2 = b1, c3 = -a1², and c1 = 1 - c2 - c3 so the coefficients sum to one.
- 3Filter recursively: output = c1 × (price + previous price)/2 + c2 × previous output + c3 × output two bars back, seeding the first values with price.
- 4Read it like a smooth moving average; it is causal, so plotted values do not change after they print.
- 5For the three-pole variant, add a third feedback stage with coefficients derived the same way: sharper rejection above the cutoff, at the cost of a little more lag.
How traders use it
- As a drop-in replacement for the smoothing inside oscillators: running an RSI or stochastic input (or output) through a SuperSmoother trims jitter with less added lag than lengthening a simple average.
- As the low-pass half of Ehlers' roofing filter, where a high-pass stage removes long-period drift and the SuperSmoother removes short-period noise, leaving a band of tradable cycle content.
- As a low-lag trend line in its own right: slope and price crossings read exactly like a moving average, which is how it shows up in smoothed-trend overlays.
- As preprocessing before measurement: smoothing a series before dominant cycle measurement or other estimators reduces the aliasing noise Ehlers argues contaminates raw bar data.
- As the smoothing block inside composites: deviation-scaled averages, smoothed momentum studies and filtered oscillators embed it wherever a conventional average would add more lag per unit of noise removed.
SuperSmoother vs other smoothing filters
EMA: A single-pole recursion with a gentle roll-off, so short-wavelength noise leaks through. The SuperSmoother's two poles cut that noise far more sharply for comparable lag.
Gaussian Filter: Another Ehlers-documented multi-pole low-pass, built by cascading poles toward a bell-shaped response. Comparable intent; the pole placement differs, and the Gaussian is usually offered at selectable pole counts.
Laguerre Filter: Achieves heavy smoothing from very few terms by warping time with a damping factor instead of adding poles. A different architecture aimed at the same lag-versus-smoothness problem.
Ehlers SuperSmoother FAQ
Turn Ehlers SuperSmoother into a trading strategy.
Open the implementation from this page in Vela. Quant, our coding agent, builds the strategy with you and backtests it on real data.
Browse this familyTrend104 concepts mapped · 104 in the Library
- Adaptive-lookback MA
- ADX / DMI System
- Alligator
- ALMA
- Anchored MA
- Andrews' Pitchfork
- Aroon
- ATR Trailing Regime
- Bessel Filter
- Breakout
- Butterworth Filter
- Chande Kroll Stop
- Chandelier Stop
- Chebyshev Filters
- Climactic Moves
- Continuation
- Coral Trend
- Correlation Trend Indicator
- Death Cross
- DEMA
- Displaced MA
- Donchian Trend Rules
- Dynamic S/R Via MA
- Ehlers Instantaneous Trendline
- Ehlers SuperSmoother
- Elastic Volume-weighted MA
- Elliptic Filter
- EMA
- Fan Principle
- FRAMA
- Gann Box
- Gann Fan & Angles
- Gann HiLo Activator
- Gann Method
- Gann Square of 9
- Gaussian Filter
- Geometric MA
- Golden Cross
- Guppy GMMA
- Halftrend
- Harmonic MA
- Higher-timeframe Trend Filter
- HMA
- Ichimoku Signals
- Ichimoku System
- Ichimoku Theories
- JMA
- KAMA
- Kaufman Efficiency Ratio
- Laguerre Filter
- Linear-regression Channel
- LSMA
- MA Envelope
- MA of MA
- MA Ribbon
- MA Slope Filter
- MAMA/FAMA
- McGinley Dynamic
- MLMA
- Moving Average Crossovers
- NRTR
- Order-statistic Filters
- Parabolic SAR
- Parallel Channel
- Polynomial Regression Band
- Pullback
- R-squared Trend Fit
- Rainbow MA Stack
- Random Walk Index
- Range Filter
- Retest
- Reversal
- RMA
- Savitzky-Golay Filter
- Sine-weighted MA
- SMA
- Speed Resistance Lines
- Standard-error Channel
- Supertrend
- Swiss Army Knife Filter
- SWMA
- T3
- TEMA
- TRAMA
- Trend Acceleration/inflection
- Trend Exhaustion
- Trend Intensity Index
- Trend Magic
- Trend Regime Label
- Trend-quality Composites
- Trendline
- Triangular MA
- UHL Adaptive MA
- Ultimate Smoother
- Vertical Horizontal Filter
- VIDYA
- Volume-adjusted MA
- Vortex
- VWMA
- Weinstein Stage Analysis
- Whittaker–Henderson Smoother
- Windowed FIR Smoothing
- WMA
- ZLEMA
