Hull moving average
A moving average built to be smooth and still follow price closely, by combining two weighted averages.
What it shows
Alan Hull designed this average to cut lag while staying smooth. It uses a short WMA and a long WMA, doubles the short one, subtracts the long one, and then smooths the result with a third WMA over the square root of N.
The result tracks price closely and turns early. It can overshoot at sharp turns.
How we find it
The same code that draws it on your chart follows these steps, with the same result every time.
- Compute WMA(N ÷ 2) and WMA(N).
- Compute 2 × WMA(N ÷ 2) − WMA(N).
- Take a WMA of that result over the square root of N bars.
- Plot it.
Starting values: N 21. These are proposed and will be tuned on real price data before launch.
How to read it
- The line is smoother than an EMA yet closer to price.
- It turns before an SMA of the same length.
- Overshoots at sharp turns are normal.
Status labels you may see
| Label | What it means |
|---|---|
| Rising | The line is higher than 2 bars ago. |
| Falling | The line is lower than 2 bars ago. |
| Flat | The line changed by under 0.1%. |
What cancels it
Nothing cancels it.
What traders check next
- Whether it overshoots price at turns.
- The slope of the line.
- How it compares with the EMA of the same length.
Limits
- Overshoots when price turns sharply.
- More complex to calculate.
- Less common.
Try it in forecastviz
- Open any ticker and choose Moving averages → Hull moving average in the left menu.
- Switch between 3M, 6M, 1Y to see how the picture changes.
- Compare with Weighted moving average and Exponential moving average on the same chart.
Questions
Why the square root?
It smooths the combined series without adding much lag.
Is it better than EMA?
It has less lag and more overshoot.
Related trends
Further reading
- Murphy, Technical Analysis of the Financial Markets
- Kaufman, Trading Systems and Methods
- Achelis, Technical Analysis from A to Z
Educational only. Not financial advice, and not a price forecast. Charts are drawn by code from past price data, which may be delayed.