Concept
ALMA
ALMA, also known as Arnaud Legoux moving average, is a Trend concept. A reference entry: the Library explains it rather than implements it.
Arnaud Legoux
What is ALMA?
ALMA (the Arnaud Legoux Moving Average) is a windowed weighted average introduced by Arnaud Legoux and Dimitrios Kouzis-Loukas in 2009. Its weights follow a Gaussian bell curve laid across the lookback window, with the bell's peak shifted toward the most recent bars. That shape is the whole idea: where a WMA or EMA weights bars in one monotonic decay, ALMA concentrates weight around a chosen point in the window and tapers off on both sides, filtering high-frequency noise while keeping lag modest.
Two parameters shape the bell. Offset (0 to 1, commonly 0.85) slides the peak: toward 1 the average leans on the newest bars and turns faster, toward 0.5 it is smoother but laggier. Sigma (commonly 6) controls the bell's width relative to the window: larger sigma narrows the bell around the peak, smaller sigma spreads weight more evenly across the window. Because ALMA is a finite-window filter with no recursion, it belongs to the windowed FIR family of smoothers: its output depends only on the last N bars, with no infinite tail of old data as in an EMA.
Legoux and Kouzis-Loukas published the average as a practical answer to the oldest complaint about smoothing: filters smooth enough to ignore noise are usually too slow to catch turns. Sliding a Gaussian window off-center was their compromise, and it aged well; ALMA ships as a built-in on major charting platforms and appears as a smoothing option inside other indicators. Against extrapolative low-lag designs such as the Hull MA, which combines weighted averages in a way that can overshoot at turns, ALMA's off-center bell is typically the gentler route to lag reduction. Note what it does not do: the window length is fixed rather than condition-driven, so unlike an adaptive-lookback MA it does not speed up or slow down with volatility; responsiveness is set by where the bell sits, not by market state.
How to calculate ALMA
ALMA takes three inputs: window length N, offset (default 0.85), and sigma (default 6).
- 1Locate the peak: m = offset × (N - 1), where the bar index i runs from 0 (oldest bar in the window) to N - 1 (newest).
- 2Set the bell's width: s = N / sigma.
- 3Weight each bar: w(i) = exp(-(i - m)² / (2 × s²)), so bars near the peak dominate and bars far from it contribute little.
- 4Output the normalized weighted sum: multiply each of the N prices by its weight, sum the products, and divide by the sum of the weights.
- 5Sanity-check the shape: offset 0.5 centers the bell for maximum smoothing, while values approaching 1 push the peak onto the newest bars so the output hugs recent price.
How it's calculated
A Gaussian-weighted moving average with the weight peak shifted toward recent bars to reduce lag while staying smooth.
Defaults follow Arnaud Legoux's original release: n = 9, offset = 0.85, sigma = 6.
Offset near 1 tracks price closely with little lag; lower offset smooths more.
Some implementations round m down to an integer before computing the weights.
How traders use it
- As a general-purpose overlay smoother sitting between the classic extremes: smoother than an EMA of comparable lag, more responsive than an SMA of comparable smoothness, and tunable in both directions.
- In crossover and price-cross logic, where the offset and sigma dials let the same setup be re-tuned per market instead of switching moving-average types.
- As the centerline of envelopes and bands, where its stability keeps the band structure from twitching on every bar.
- As a smoother for non-price series (oscillator outputs, volume, spreads), where Gaussian-shaped weighting is a standard noise-reduction choice borrowed from signal processing.
- As a steadier slope gate: the Gaussian window suppresses bar-to-bar jitter, so ALMA's slope flips sign less often than a comparably fast EMA's, a reasonable engine for an MA slope filter or a simple trend regime label.
ALMA vs similar averages
EMA: An EMA is recursive, so every past bar contributes a decaying amount forever and one length setting fixes its response. ALMA uses a finite window with Gaussian weights, and offset and sigma tune the smoothness-lag balance independently of length.
SMA: An SMA weights every bar equally, which maximizes smoothing for the window but reacts late and drops old bars abruptly. ALMA reshapes the same window into a bell, trading a little smoothness for earlier response; push sigma low enough and its weights flatten back toward an SMA's.
Ehlers SuperSmoother: Both borrow from signal processing, but the SuperSmoother is a recursive filter designed in the frequency domain to attenuate short wavelengths, while ALMA is a plain weighted sum over a window. One is specified in cycle terms, the other by where you park the weight bell.
Concept family
Trend
100 concepts mapped · 100 in the Library
ALMA FAQ
Turn ALMA into a trading strategy.
Describe your ALMA idea to Quant. It builds the strategy with you and backtests it on real data.