On this page
ALMA — Averages & volatility, on the price chart.
What ALMA measures
For a window of N bars the indicator builds a weight for each position t with w = exp(-(t - m)^2 / (2 s^2)), where m = offset x (N - 1) places the peak of the bell inside the window and s = N / sigma sets its width. The plotted value is the sum of weighted closes divided by the sum of weights, so it is a normalised average and stays inside the range of the closes it covers. Until N bars exist the output is empty rather than a partial average, so the line starts only once the window is full.
The formula, as implemented
This is not how the indicator is usually defined elsewhere — it is what the shipped code computes, documented next to the implementation:
ALMA — Arnaud Legoux MA (Legoux & Kouzis-Loukas, 2009) : m = offset·(N−1) ; s = N/σ w_t = exp( −(t − m)² / (2·s²) ) t = 0 (le plus ancien) … N−1 ALMA[i] = Σ w_t·close[i−N+1+t] / Σ w_t Fenêtre gaussienne décalée vers le récent : offset→1 = réactif, offset→0 = lisse ; σ pilote la largeur de la cloche. Défauts N=20, offset=0.85, σ=6 (les défauts de Legoux). Warm-up (< N barres) → null.
How to read it
- Slope comes before level: a line turning up means the weighted centre of the recent closes is rising, and nothing more than that.
- A close crossing the line is a change of position relative to a smoothed reference, not a confirmation on its own; check what the orderflow did at that price before acting on it.
- While price oscillates around a flat ALMA, the window has no dominant direction, and crossings in that state are frequent and carry little information.
- Distance between price and the line grows when a move accelerates; a wide gap says the current close is far from its own recent average, not that a reversal is due.
- Two ALMA lines with different periods give you a reference for direction; a single line gives you nothing to compare it against.
Parameters and defaults
The defaults are period 20, offset 0.85 and sigma 6, the values Legoux published. Offset moves the peak of the bell between the oldest bar of the window (0) and the newest (1), so raising it toward 1 makes the line react sooner and wobble more. Sigma acts through s = N / sigma, so a larger sigma narrows the bell and lets fewer bars contribute meaningfully, which reduces smoothing rather than increasing it. The period accepts 1 to 500.
| Parameter | Type | Default | Range |
|---|---|---|---|
| Period | number | 20 | 1 – 500 |
| Offset | number | 0.85 | 0 – 1 |
| Sigma | number | 6 | 1 – 50 |
What it does not show
ALMA is computed from closes only. It knows nothing about what happened inside each bar, so absorption at a level, a stack of imbalances or a one-sided aggressor sequence leaves no trace in the line. Any weighted average of past closes lags a turn, and the Gaussian weighting reduces that lag without removing it. On thin or gapped data the closes themselves are unreliable, and the average inherits that weakness without signalling it.
Related indicators
- SMA — Averages & volatility
- EMA — Averages & volatility
- WMA — Averages & volatility
- Hull MA — Averages & volatility
- ATR (Wilder) — Averages & volatility
- Bollinger — Averages & volatility
This page in other languages
Frequently asked questions
- What does the offset parameter do in ALMA?
- Offset decides where the peak of the Gaussian weighting sits inside the lookback window. At 0 the oldest bar carries the most weight, at 1 the newest one does, and the default of 0.85 puts the peak close to the recent end. The higher the offset, the faster the line reacts and the more it moves with short-term noise.
- Does a larger sigma make ALMA smoother?
- It does the opposite here. Sigma enters the formula as s = N / sigma, so raising sigma narrows the bell and concentrates the weight on fewer bars around the peak. A smaller sigma widens the bell, spreads the weight across the window and produces the smoother line.
- Why does the ALMA line start later than the chart?
- The calculation needs a full window of N closes before it produces a value, so with the default period of 20 nothing is plotted for the first 19 bars. The indicator returns an empty value during that warm-up instead of averaging fewer bars, which would show a number computed on a different window than the rest of the line.