SPY traded a daily range of 13.09 points on April 2, 2026. Six trading days later, the range had shrunk to 3.58 points. If you were watching standard volatility readings, both days would feed into the same slow-moving estimate. Chaikin Volatility catches the shift as it happens. It tells you that the range itself is changing speed, and that information is different from knowing how wide or narrow the range is on any single day.
Most volatility indicators answer one question: how volatile is this instrument right now? Chaikin Volatility answers a different one: is the trading range getting wider or narrower compared to where it was? That distinction matters more than it sounds. A range that is expanding signals urgency. A range that is contracting often signals setup. Knowing which phase you are in changes how you size positions, where you place stops, and whether a breakout deserves your attention.
What Chaikin Volatility Actually Tracks
Marc Chaikin built this indicator around one specific input: the daily high minus the daily low. Not the close. Not the open-to-close body. The full session range, tip to tip.
The indicator smooths that range with an exponential moving average (typically 10 periods), then measures the percentage change in that smoothed value over a lookback window (also typically 10 periods). When the reading is positive and rising, ranges are expanding. When it turns negative, ranges are contracting relative to where they were 10 bars ago.
I track Chaikin Volatility alongside Keltner Channel Width on my daily charts. Keltner width shows me the current envelope. Chaikin Volatility tells me whether that envelope is widening or tightening compared to recent history. The two give different answers on the same day more often than you would expect.
One thing traders get wrong immediately: they treat a high Chaikin Volatility reading as if it means “volatility is high.” It does not. It means the range is expanding faster than it was. You can get a positive reading even when absolute ranges are still relatively small, as long as they are bigger than they were 10 periods ago. The indicator measures acceleration, not level.
The Chaikin Volatility Formula
The calculation has two steps. First, compute a 10-period EMA of the daily range:
EMA_{range} = EMA(High - Low, 10)
Then measure how much that smoothed range has changed over the last 10 periods:
CV = \frac{EMA_{range}(today) - EMA_{range}(10\ periods\ ago)}{EMA_{range}(10\ periods\ ago)} \times 100
That is it. The output is a percentage. Positive values mean the smoothed range today is larger than the smoothed range 10 bars back. Negative values mean it has shrunk.
Walk through SPY data from early April 2026 and the raw ranges make the concept concrete. April 1: range of 5.52 points (high 658.52, low 653.00). April 2: range of 13.09 points (high 658.20, low 645.11). April 10: range of 3.58 points (high 682.03, low 678.45). The EMA smooths these swings, but the direction is clear. Range expanded sharply on April 2, then contracted through the following week. Chaikin Volatility would register that contraction as a move toward negative territory, even as SPY’s price continued rising.
That last point catches people off guard. Price can rally while Chaikin Volatility drops. The two measure different things.
Reading Expansion and Contraction Signals
When Chaikin Volatility crosses above zero, the smoothed range is wider than it was 10 periods ago. Below zero, it is narrower. The zero line is the pivot.
Rising readings from negative to positive territory often coincide with breakout moves. The market goes from quiet to active, and that transition shows up as an acceleration in range. I find these crosses most useful on daily charts of liquid names and ETFs where range compression has a well-defined structure.
Falling readings from positive to negative territory do not automatically mean the move is over. They mean the rate of range expansion is slowing. A stock can still be trending strongly while Chaikin Volatility turns negative, because trending instruments often settle into consistent but narrower daily bars. The initial surge is over, but the direction holds.
The mistake I see most often: treating a negative Chaikin Volatility reading as a contrarian signal. A negative reading during a strong trend is not a reversal signal. It is the trend maturing. A negative reading after a range-bound chop is different. That signals the squeeze is tightening, and a breakout may follow. Context determines meaning.
Where Chaikin Volatility Works
The indicator earns its keep in two situations.
First, confirming breakouts. If price breaks above a resistance level and Chaikin Volatility is positive and rising, you have range expansion backing the move. That is stronger evidence than price alone. Look at AAPL on April 15, 2026: the daily range was 8.75 points (high 266.56, low 257.81), compared to April 13’s range of just 3.52 points. That kind of range expansion on a breakout day is exactly what Chaikin Volatility captures.
Second, detecting squeeze setups. Extended periods of negative or declining Chaikin Volatility readings mean the range keeps tightening. This is similar to what Bollinger Band Width shows when it hits low values, but Chaikin Volatility focuses on the direction of change rather than the absolute width. A market can have moderate bandwidth but rapidly contracting ranges, and Chaikin Volatility flags that compression before band-based measures do.
Commodities and forex pairs with cyclical volatility patterns work well with this indicator. Agricultural futures, for example, tend to go through seasonal range expansion around planting and harvest reports. Chaikin Volatility picks up the early phase of that expansion before a standard historical volatility reading catches up.
Where the Signal Misleads
Chaikin Volatility has specific blind spots you should know about before relying on it.
Gap-driven moves distort the reading. A stock that gaps 5% at the open but trades a narrow intraday range will show a small high-to-low value. Chaikin Volatility reads that as low range. The actual price displacement was large, but the indicator missed it because it only sees the session range, not the gap. This is not a bug. It is a design choice. But if you trade instruments that gap frequently, be aware the indicator understates volatility on those days.
Whipsaw in choppy, range-bound markets is the second problem. When price oscillates inside a band without trending, the daily ranges fluctuate randomly. Chaikin Volatility oscillates around zero with no useful signal. You get crosses above and below the zero line that mean nothing. Filtering by trend state helps. I generally ignore Chaikin Volatility signals when the Choppiness Index reads above 60.
The third failure mode is subtler. In a slow, grinding trend where each day’s range is almost identical, Chaikin Volatility flatlines near zero. The instrument is volatile in absolute terms, the trend is real, but the indicator sees no change in range momentum. It reads “flat.” If you are using Chaikin Volatility to decide whether to enter a trend, you would sit out some of the cleanest moves.
Chaikin Volatility vs Parkinson and Garman-Klass
All three indicators use the high-low range as a primary input. That is where the similarity ends.
Parkinson Volatility takes the log of the high-low ratio, squares it, and averages the result over a window to produce an annualized volatility estimate. The output is a number comparable to standard deviation. It answers: what is the current level of volatility, measured more efficiently than close-to-close methods?
Garman-Klass Volatility goes further and includes the open and close prices alongside the high and low. It produces a tighter annualized estimate with lower estimation error. Same question as Parkinson, better answer.
Chaikin Volatility does something fundamentally different. It does not estimate a volatility level at all. It measures the rate of change in the smoothed range. The output is a percentage change, not an annualized standard deviation.
Here is why the difference matters in practice. Suppose a stock had Parkinson Volatility of 25% last week and still reads 25% this week. Garman-Klass confirms the same level. The volatility estimate is stable. But Chaikin Volatility might be negative during this period if the range two weeks ago was wider and has since narrowed to the current level. Parkinson and Garman-Klass say: volatility is at 25%. Chaikin says: the range is shrinking to get here.
Both perspectives are valid. Neither replaces the other. I use Parkinson or Garman-Klass when I need a volatility number for position sizing or options pricing context. I use Chaikin Volatility when I need to know whether the market is winding up or winding down, regardless of the absolute level.
Settings and Practical Defaults
The standard setting is 10 periods for both the EMA smoothing and the rate-of-change lookback. Most platforms default to this, and it works for daily charts on equities and ETFs.
Shortening the periods (7 or 5) makes the indicator more reactive. You will see more zero-line crosses and more noise. This can work on intraday charts where you need faster feedback, but on daily charts it generates too many false signals.
Lengthening to 14 or 20 periods smooths the output and catches only the larger range shifts. I prefer a 14-period setting on weekly charts. The default 10 is fine for daily work.
One common mistake: changing the EMA period but leaving the rate-of-change lookback at 10, or vice versa. The two parameters should usually match. If you smooth the range over 14 periods but compare against 10 periods ago, the comparison is misaligned. The smoothing window is longer than the change measurement window, which blurs the signal.
If your platform does not offer Chaikin Volatility natively, check whether it provides a generic rate-of-change function. Apply ROC to an EMA of the high-low range and you have the same indicator. The Rate of Change indicator applied to a range EMA is functionally identical.
When Range Momentum Beats Range Level
Chaikin Volatility fills a gap that level-based measures leave open. It does not tell you that volatility is high or low. It tells you that the trading range is speeding up or slowing down. That is a momentum reading applied to range, not a volatility estimate.
Use it to confirm breakouts when range is expanding alongside price. Use it to spot squeezes when range contraction accelerates. Pair it with a level-based measure like Parkinson or Garman-Klass when you need both the speedometer and the odometer. And ignore it when the market is chopping sideways with no structure, because the indicator has nothing useful to say in that environment.
Educational content only. Not investment advice. Trading involves risk. You are responsible for your decisions.
