All indicators

Laguerre Filter

John Ehlers' four-stage Laguerre filter of the bar midpoint, a smooth low-lag average coloured green while it rises and red while it falls.

BTCUSD1h
Fixed data to Oct 6, 2026, UTC
Loading the chart

The Laguerre Filter is John Ehlers' way of getting a smooth average with little lag from only four values of memory. The first stage is an exponential average of the source, L0 = alpha * price + (1 - alpha) * L0 of the previous bar. Each of the next three stages is an all-pass filter of the stage before it, L(k) = -gamma * L(k-1) + L(k-1) of the previous bar + gamma * L(k) of the previous bar, with gamma = 1 - alpha, so each stage delays the signal a little more without changing its size.

The filter is the weighted average of the four stages, (L0 + 2*L1 + 2*L2 + L3) / 6. The source defaults to the bar midpoint, (high + low) / 2. Every stage starts from zero, so the line climbs to price over the first stretch of bars before it settles.

How to read Laguerre Filter

Read the line as a trend average: price above a rising green line is an uptrend and price below a falling red line a downtrend. A change of colour marks the bar where the filter turns, which comes earlier than with a simple average of similar smoothness.

Alpha sets the trade-off. A small alpha such as 0.2 weights the past heavily, giving a smooth line that follows the trend; a larger alpha follows price more closely and turns more often. Ignore the first bars, where the line is still rising from zero.

Settings

Source
The price series filtered. The bar midpoint, (high + low) / 2, is the default.
Alpha
Weight of the newest price, from 0 to 1; gamma is 1 minus alpha. Smaller values smooth more and lag more.
Change Color ?
Colour the line green while it rises and red while it falls; off draws it in one colour.

Frequently asked questions

Why does the line start at zero?

Every stage of the filter starts from zero, so on the first bars the output is a fraction of the price and climbs toward it. After a few dozen bars at the default alpha the start no longer matters.

How is it different from an exponential average?

The first stage is an exponential average; the three all-pass stages and the weighted average of the four reduce the lag that a single exponential average of the same smoothness would have.

How does it differ from the library's Ehlers Laguerre Filter (LAGUERRE)?

Both use Ehlers' formula. This one takes alpha rather than gamma, reads the bar midpoint by default, starts every stage from zero and colours the line by slope.

Write your own in OpenScript

Every study here is plain OpenScript. Change a setting, combine two, or turn one into a strategy, then backtest it in /trading and run it in sandbox trading (analyzer mode in OpenAlgo) before going further.