What is the Hull Moving Average? Definition, Formula, and Example
The Hull Moving Average is a low-lag moving average developed by Alan Hull in 2005 that combines three weighted moving averages — one at half the period, one at the full period, and a final smoothing at the square root of the period — to track price with materially less lag than EMA or SMA.
Plain-English Definition
The Hull Moving Average (HMA) is a moving average designed by Australian analyst Alan Hull in 2005 to solve the core problem of every smoothed price line: lag. Simple and exponential moving averages smooth at the cost of delayed turning points. HMA uses a clever combination of weighted moving averages at three different periods to produce a line that hugs price almost in real time while remaining visually smooth. On a chart, HMA looks like an EMA that's been pulled forward in time.
How It's Calculated
HMA is a three-step recipe built on the Weighted Moving Average (WMA), where each bar's weight equals its recency rank:
HMA(n) = WMA( 2 × WMA(n/2) − WMA(n), √n )
The construction:
1. Compute WMA over n/2 bars (the fast component).
2. Multiply by 2 and subtract WMA over n bars (this is a "double WMA minus single WMA" detrender — the same trick used in DEMA, producing a near-zero-lag estimate at the cost of overshoot).
3. Smooth the resulting series with a final WMA of length √n.
All non-integer periods are rounded to the nearest whole bar. For HMA(16): WMA(8) and WMA(16) feed step 2; step 3 smooths with WMA(4). For HMA(9): WMA(4), WMA(9), final WMA(3).
The √n smoothing window is the elegant piece — it scales the smoothing inversely with how aggressive the detrend was, keeping the curve visually clean.
Worked Example
QQQ closes for the last 9 bars (oldest first): 440, 442, 441, 443, 446, 448, 447, 450, 453.
- WMA(4) over last 4 closes (447, 450, 453, plus one more): weights 1, 2, 3, 4 → (1×447 + 2×448 + 3×450 + 4×453) / 10 = 450.5
- WMA(9) over all 9 closes: weights 1 through 9 → ≈ 447.4
- Detrend: 2 × 450.5 − 447.4 = 453.6
- Final WMA(3) of detrend series → tracks ~453, while a 9-period SMA prints ~445.6 and a 9-period EMA prints ~447.2.
The HMA sits ~6 points closer to current price than the SMA. In a fast trend, that means signals two to three bars earlier.
When Traders Use It
- Direction filter. Slope of HMA — green when rising, red when falling — is a primary trend filter for swing and intraday systems.
- Replacing slow EMAs. Traders running 50-EMA pullback systems often substitute HMA(50) for earlier entries.
- Crossover systems. HMA(9)/HMA(20) crossovers fire 2–5 bars faster than equivalent EMA crossovers, though with more whipsaws in chop.
- Multi-timeframe stacking. 20-period HMA on the 5-minute confirmed by rising HMA on the hourly is a common day-trading setup on SPY and ES.
Limitations and Common Misconceptions
- Lag is reduced, not eliminated. HMA still trails real-time price. Claims of "zero-lag" are marketing.
- Whipsaws in chop. The same speed that helps trends hurts in ranges. HMA crossovers in sideways action are unreliable.
- Color-change ≠ entry signal. The HMA flipping from red to green is a *condition*, not a trade. Combine with a price trigger such as a break of the prior bar's high.
- Not standard in all platforms. HMA is built into TradingView, ThinkOrSwim, and most modern platforms, but some legacy tools require a custom script.