Hull MA Indicator: Formula, Settings and How to Read It
Hull Moving Average (Alan Hull, 2005) is a weighted average built to cut the lag of a conventional moving average by over-extrapolating a short average against a long one, then smoothing what that leaves behind. It is plotted over price and can also be applied to bar delta or bar volume.
Senzoukria · Indicators · Updated September 2026
Hull MA ships with the Senzoukria desktop app, in the Averages & volatility group of the indicator catalogue. It is drawn on the price chart.
What Hull MA measures
The calculation takes twice the weighted moving average over half the period, subtracts the weighted moving average over the full period, and passes that difference through a final weighted moving average of length equal to the square root of the period. Sub-periods are rounded to the nearest integer with a floor of 1, the usual convention. The middle term is what removes lag, since it extrapolates the recent slope, and the final stage filters the noise that extrapolation amplifies. No value is emitted until every stage of the chain is defined.
The formula, as implemented
This is not a description of how the indicator is usually defined elsewhere — it is what the shipped code computes, documented next to the implementation:
Hull MA (Alan Hull, 2005) : HMA_N = WMA_{round(√N)}( 2·WMA_{round(N/2)}(x) − WMA_N(x) ) round() sur les sous-périodes (convention usuelle), plancher 1. Le terme 2·WMA_half − WMA_N sur-extrapole pour compenser le lag, le WMA_√N final lisse le résidu. Warm-up : null tant que la chaîne complète n'est pas définie. Défaut N=16 (√16 = 4 exact — le défaut historique de Hull).
How to read it
- The line turns noticeably earlier than a simple or exponential average of the same period, which is the reason the construction exists.
- That early turn comes from an extrapolation, so the line can move ahead of the closes and then correct back; a one-bar direction change deserves confirmation.
- Slope carries more here than crossings, because the extrapolated term makes the line itself the statement about trend.
- On ranging data the final smoothing stage is short and the line can flip direction repeatedly. The period is your only control over that.
- A wide divergence between Hull and a slower average of the same period shows how much recent slope the extrapolation is currently pricing in.
Parameters and defaults
The period defaults to 16, Hull's own historical default, chosen because its square root is exactly 4 and the final stage needs no rounding. Any value from 1 to 500 is accepted. Raising the period lengthens all three internal averages proportionally and pushes the first plotted value further right. The source selector offers close, delta and volume, and changing it changes what the line measures, not only how fast it moves.
| Parameter | Type | Default | Range |
|---|---|---|---|
| Period | number | 16 | 1 – 500 |
| Source | choice | Close | Close, Delta, Volume |
What it does not show
Reduced lag is not zero lag, and the extrapolation that buys it also produces overshoot at reversals: after a sharp move the line can point past where price actually stopped. The plot is an overlay on the price axis, so the delta and volume sources put values on a scale unrelated to price. Whichever source is chosen, bid and ask activity inside the bar, absorption and imbalance are invisible to the average. The warm-up is also longer than for a single weighted average of the same period, because three stages have to become defined in sequence.
Using it in Senzoukria
Add it from the Indicators panel of any footprint chart or candle chart. It runs on futures data from Rithmic or Databento and on crypto pairs from Binance and Bybit, on the same engine — the calculation does not change with the venue, only the data feeding it does. Market data subscriptions are billed by the provider, separately from the app.
Related indicators
- SMA — Averages & volatility
- EMA — Averages & volatility
- WMA — Averages & volatility
- ATR (Wilder) — Averages & volatility
- Bollinger — Averages & volatility
- Keltner — Averages & volatility
See the full indicator library, or start with the order flow guide if you are new to reading aggression, delta and absorption.
Frequently asked questions
- Why does the Hull Moving Average use the square root of the period?
- The square root sets the length of the final smoothing stage. It is short relative to the period, which keeps most of the responsiveness gained by the extrapolation while filtering the noise the extrapolation amplifies. The default period of 16 gives exactly 4, with no rounding.
- Does the Hull Moving Average lag?
- Less than a simple or exponential average of the same period, but it is not lag-free. The construction compensates for lag by extrapolating recent slope, which trades part of the delay for overshoot when the market turns quickly.
- What period is the Hull Moving Average designed for?
- Alan Hull published it with a period of 16, which is the default here. Any value from 1 to 500 is accepted, and periods whose square root is not an integer are rounded internally for the final stage.