The Hull Moving Average: how it removes lag without losing smoothness
Every moving average trades responsiveness for smoothness. Shorten the period and the line follows price closely but wanders; lengthen it and the line settles down but arrives late. Alan Hull went after that trade-off directly in 2005, while working on an unrelated indicator, and published the result into the public domain. It has been in charting packages ever since.
Three averages, one trick
The HMA is built entirely from weighted moving averages, in three steps:
1. A WMA over half the period.
2. A WMA over the full period.
3. Take twice the first minus the second, then smooth that series with a WMA over the square root of the period.
The subtraction in step three is where the lag goes. The half-period WMA sits closer to current price than the full-period one, and the gap between them is a direct measure of how far behind the average is running. Doubling the fast average and removing the slow one projects the result forward by roughly that gap — a linear extrapolation of the trend rather than a report on where it has been.
Extrapolation is noisy, which is what the final smoothing pass is for. The clever part is its length: the square root grows slowly, so a 100-period HMA finishes with a 10-bar WMA. That is enough to clean up the extrapolation without putting the lag back in.
What that buys you
The effect is easy to quantify. Feed a steadily rising price series into both averages and measure how far behind each one settles, in bars:
| Period | HMA lag | LWMA lag |
|---|---|---|
| 9 | 0.00 bars | 2.67 bars |
| 21 | 0.33 bars | 6.67 bars |
| 55 | 1.33 bars | 18.00 bars |
A 55-period HMA keeps up with a trend better than a 9-period weighted average, while smoothing across six times as much history.
The catch
Work out the combined weights and some of them turn out to be negative — bars older than roughly half the period pull the average in the opposite direction. That is exactly what makes the extrapolation possible, and it is also why the HMA overshoots after a sharp move: it projects the jump forward before price has decided whether to continue. Every low-lag average pays this bill in one form or another. There is no version of this that removes lag for free.
How to read it
Hull's own advice is to trade the slope and the turning points rather than crossovers, and his reasoning is worth understanding. A crossover system works by measuring the lag difference between a fast average and a slow one — that difference is the signal. The HMA has deliberately removed most of it, so a pair of HMAs sits closer together and crosses more readily.
In practice that means HMA crossovers fire earlier than the equivalent EMA or LWMA pair. In a trending market that is an advantage. In a range it produces more signals, not better ones. If you use the HMA in a crossover setup, treat it as a faster instrument rather than a drop-in replacement, and widen the gap between the two periods to compensate.
One implementation detail
Half the period and the square root of the period are rarely whole numbers. Hull's original specification truncates both downward, and that is the convention MetaTrader implementations follow. Some platforms round to the nearest integer instead, which produces slightly different values on odd periods — worth knowing if you ever compare an HMA across two charting packages and find they disagree.
The Hull Moving Average is now available as a smoothing method in Moving Average Cross Signal, alongside the other averaging algorithms already supported by the indicator.




