# Butterworth Filter

Butterworth Filter is an indicator on [Vela](https://vela.luxalgo.com/chart), our next-generation charting platform, written in Pine Script®.

Butterworth Filter smooths any source with the recursive two-pole or three-pole Butterworth design at a 20-bar cutoff by default, fed through the published short FIR input average. The line colors by slope, an optional ATR-scaled tolerance band buffers the design's small step overshoot, and alerts cover slope turns and price crosses in both directions.

- Indicator in the LuxAlgo Library, by LuxAlgo, published Apr 8, 2026.
- Access: free.
- Concepts: [Butterworth Filter](https://www.luxalgo.com/library/concept/butterworth-filter/) (primary)
- Open on Vela: https://vela.luxalgo.com/chart?pineScriptCodeId=ml7tu5eo3vgprvzgu64uwp19
- Page: https://www.luxalgo.com/library/indicator/butterworth-filter/

**Butterworth Filter** implements the [Butterworth filter](https://www.luxalgo.com/library/concept/butterworth-filter/) in its recursive trading form, the library's first dedicated build of the design. Coefficients derive from the cutoff period for both pole counts, an optional short FIR average (1-2-1 or 1-3-3-1 weights) feeds the recursion as published, and gain is normalized to unity at zero frequency. The payoff is a maximally flat passband: swings slower than the cutoff pass at close to true amplitude while faster fluctuations are strongly attenuated. The filter line colors by slope out of the box, and an ATR-scaled tolerance band can be drawn around it for touch-based rules.

## How to Trade the Butterworth Filter?

- **Slope color**: rising reads bullish, falling bearish. Slope rules transfer directly from moving averages, with alerts on every turn.
- **Price crossing the filter**: crossover and crossunder alerts support entry and exit logic against the smoothed line.
- **Tolerance band touches**: the design's small step overshoot can carry the line a touch beyond the level price settles at after a shock bar, so exact-touch rules are better tested against the band.

## Butterworth Filter Settings

- **Source** (default close): series fed to the filter.
- **Cutoff Period** (default 20): a cutoff, not a lookback: wavelengths shorter than roughly this many bars are strongly attenuated, and lag grows as it rises.
- **Poles** (default Two-pole): Three-pole rolls off harder for noisy intraday data but answers genuine turns more slowly.
- **Input FIR Average** (default enabled): pre-average the source before the recursion rather than feeding it raw.
- **Show Tolerance Band** (default disabled) with **Band Width (ATR Multiple)** (default 0.5) and **ATR Length** (default 14).
- **Coloration** (default Slope) and **Line Width** (default 2) control presentation.

## Frequently Asked Questions

### How does this relate to the SuperSmoother?

The [Ehlers SuperSmoother](https://www.luxalgo.com/library/indicator/ehlers-supersmoother/) descends from the same two-pole recursive lineage, reworked to suppress aliasing noise even harder. This build keeps the classic Butterworth prototype in both orders, making it the cleaner reference point.

### What does the Input FIR Average actually do?

It pre-averages the last few source values with 1-2-1 or 1-3-3-1 weights before the recursion, as the published form specifies. Disabling it feeds the raw source, trading a touch of smoothness for immediacy.

### Which cutoff period should I choose?

Set it near the wavelength of the noise to remove: swings slower than the cutoff survive nearly intact. Shorter cutoffs track price closely but let more chop through; longer ones smooth deeply and lag more.

## Related indicators

- [Chebyshev Filters](https://www.luxalgo.com/library/indicator/chebyshev-filters/) (Trend): markdown at https://www.luxalgo.com/library/indicator/chebyshev-filters.md
- [Laguerre Filter](https://www.luxalgo.com/library/indicator/laguerre-filter/) (Trend): markdown at https://www.luxalgo.com/library/indicator/laguerre-filter.md
- [Elliptic Filter](https://www.luxalgo.com/library/indicator/elliptic-filter/) (Trend): markdown at https://www.luxalgo.com/library/indicator/elliptic-filter.md
- [Gaussian Filter](https://www.luxalgo.com/library/indicator/gaussian-filter/) (Trend): markdown at https://www.luxalgo.com/library/indicator/gaussian-filter.md
- [Swiss Army Knife Filter](https://www.luxalgo.com/library/indicator/swiss-army-knife-filter/) (Trend): markdown at https://www.luxalgo.com/library/indicator/swiss-army-knife-filter.md
- [Ehlers SuperSmoother](https://www.luxalgo.com/library/indicator/ehlers-supersmoother/) (Trend): markdown at https://www.luxalgo.com/library/indicator/ehlers-supersmoother.md
- [Ehlers Instantaneous Trendline](https://www.luxalgo.com/library/indicator/ehlers-instantaneous-trendline/) (Trend): markdown at https://www.luxalgo.com/library/indicator/ehlers-instantaneous-trendline.md
- [Whittaker Envelope](https://www.luxalgo.com/library/indicator/whittaker-envelope/) (Whittaker–Henderson Smoother): markdown at https://www.luxalgo.com/library/indicator/whittaker-envelope.md

---

Source: https://www.luxalgo.com/library/indicator/butterworth-filter/ (LuxAlgo Library). Free to use with attribution: https://www.luxalgo.com/library/license/
