Concept

Ehlers SuperSmoother

Ehlers SuperSmoother, also known as 2-pole/3-pole smoothers, is a Trend concept. The Library holds 1 implementation, a working definition you can pull into Quant.

Top Ehlers SuperSmoother indicator

The top custom implementation, built on the original standard Ehlers SuperSmoother formula.

1 total

Want to trade Ehlers SuperSmoother? The implementation below is one prompt away from a backtested strategy in Quant.

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:

  1. 1Pick a cutoff period P in bars; cycles shorter than P are what the filter is designed to reject.
  2. 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.
  3. 3Filter recursively: output = c1 × (price + previous price)/2 + c2 × previous output + c3 × output two bars back, seeding the first values with price.
  4. 4Read it like a smooth moving average; it is causal, so plotted values do not change after they print.
  5. 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.

Concept family

Trend

100 concepts mapped · 100 in the Library

Ehlers SuperSmoother FAQ

Turn Ehlers SuperSmoother into a trading strategy.

Take the implementation from this page into Quant, then build on it, backtest it on real data, and keep refining it in conversation.