Volatility & bands

Garman-Klass Volatility

An OHLC volatility estimator that combines the high-low range with the open-to-close move for greater efficiency.

Works in most conditionsEngine-computed on a fixed sample series
14512096Rising = expanding, falling = fading
Garman-Klass Volatility 8.43How to read Garman-Klass Volatility on the chart — the callouts mark what to look for.

The formula

For each bar, combine the squared log high-low range (how far price travelled) with the squared log open-to-close move, weighted by the constant 2 ln2 − 1 ≈ 0.386. Average that variance over your lookback, take the square root, then multiply by √252 to annualise it into a percentage.

σ² = 0.5 × (ln(High ÷ Low))² − (2 ln2 − 1) × (ln(Close ÷ Open))²
Worked example
TermValue
ln(High ÷ Low) = ln(102 ÷ 98)0.0400
0.5 × (0.0400) squared0.000800
ln(Close ÷ Open) = ln(101 ÷ 100)0.00995
0.386 × (0.00995) squared0.000038

Bar variance = 0.000800 − 0.000038 = 0.000762 → daily vol ≈ 2.8%

What it is

Garman-Klass volatility is a way of estimating how much an asset is moving that squeezes far more information out of each daily bar than the usual method. Most simple volatility measures look only at closing prices from day to day, throwing away everything that happened inside the session. Garman-Klass instead uses all four numbers a bar gives you — the open, the high, the low, and the close — to build a much more precise estimate of the same underlying volatility. The intuition is that the high-to-low range tells you how far price roamed during the day, and the open-to-close move tells you how much of that roaming translated into net direction; combining both captures the day's true activity better than the close alone. It answers the question of how volatile the market has been, expressed as a percentage that can be annualised, using the least data and giving the steadiest reading of the common OHLC estimators.

How it is calculated

For each bar the estimator computes two pieces from logarithms of the prices. The first is half of the squared log high-low range — that is, 0.5 × (ln(High / Low))² — which captures the intraday travel. The second subtracts a term based on the squared log close-to-open move, specifically (2 × ln 2 − 1) × (ln(Close / Open))², where the constant 2 × ln 2 − 1 ≈ 0.386 weights that piece so the whole expression is an unbiased estimate of variance. Each bar's contribution is the first piece minus the second, and you average these contributions across your lookback window to get a daily variance. Taking the square root gives daily volatility, and multiplying by the square root of the number of trading periods in a year — usually √252 for daily data — annualises it into the percentage figure traders quote. The design deliberately blends range and body information so that the estimate has much lower statistical noise than a close-to-close calculation of the same length.

Reading it, step by step

A higher Garman-Klass reading means the market has been more volatile over the window, and a lower one means calmer; the direction of the line matters as much as its level. Rising values signal that intraday ranges and net moves are expanding, often around breakouts, news, or stress, while falling values signal contraction and a coiling market. Compared with a plain close-to-close estimate, the Garman-Klass line is smoother and steadier because it uses four times the information per bar, so a jump in it is more likely to reflect a real change in volatility than a single noisy close. Traders read it in relative terms — is current volatility high or low versus its own recent history? — rather than judging an absolute number. A very low, quiet reading is often the most actionable, because compressed volatility tends to be followed by expansion.

Best timeframes

  • ScalpingNot suitedneeds clean OHLC bars
  • Day trading1h bars
  • SwingDailystandard input
  • PositionDaily – Weeklyregime gauge

It assumes no overnight jumps and no drift, so it is cleanest on continuous, liquid instruments and defeated by gap-prone markets.

Garman-Klass vs other volatility estimators

Garman-KlassParkinsonClose-to-close
Uses OHLCAll fourHigh-Low onlyClose only
Statistical efficiencyHighestHighLow
Captures overnight gapsNoNoYes
Needs a reliable openYesNoNo

Common price-action setups

How the signal typically plays out on the chart.

Volatility squeeze

Garman-Klass drops to multi-week lows, marking a quiet, coiling market; prepare for expansion and trade the eventual range break in its direction.

Wait for break
Expansion ahead
Expansion breakout

The estimate jumps as price breaks resistance on a genuine range expansion; go with the break and give the trade room with wider stops.

Buy the break
Volatility expansion
Expansion breakdown

Rising volatility accompanies a break below support; short the breakdown, sizing smaller because the swings are now larger.

Sell the break
Volatile decline

Best timeframes and settings

Garman-Klass is built for daily bars, since it assumes each bar has a clean open, high, low, and close, and daily data is where those four points are most reliable. Common windows run from 10 to 30 bars, with 20 a frequent default that balances a responsive read against a stable one; shorter windows react faster to a volatility shift but bounce around more, while longer windows give a calmer regime read that lags real changes. It can be applied to intraday bars, but very short or thinly traded periods often have unreliable opens and sparse ticks, which erodes the efficiency edge that is the whole point of using it. Because it already extracts so much from each bar, you generally need a shorter window than a close-to-close estimate would require for the same smoothness. The core trade-off remains the lookback length: fewer bars for agility, more bars for stability.

When and where to use it

Use Garman-Klass when you want the most statistically efficient read on volatility available from ordinary OHLC bars, for example to feed volatility-scaled position sizing or to gauge whether a market is quiet enough to be coiling. It fits liquid instruments with dependable session opens and closes — index futures, large-cap equities, major FX — where all four price points are meaningful. It is a strong choice for comparing volatility regimes over time and for spotting compression that may precede a move. Avoid it, or downweight it, on markets prone to overnight gaps and jumps, because the estimator assumes price does not leap between the close and the next open; a gap-heavy stock will have its true risk understated. It is also a poor fit for very thin sessions where the open is unreliable, which is precisely when its efficiency advantage collapses.

Strategies that use it

Volatility-scaled sizing: compute annualised Garman-Klass volatility and set position size inversely to it, taking larger positions when the reading is low and trimming exposure when it climbs, so that each trade risks a roughly constant amount regardless of conditions. Compression-breakout strategy: watch for the estimate to fall to an unusually low level relative to its recent range, mark that as a coiled market, and prepare to trade the direction of the eventual breakout with a stop sized off the expanding range. Regime-filter strategy: only run a trend-following system when Garman-Klass volatility is rising or elevated and switch to a mean-reversion or stand-aside posture when it is low and falling, since trends and ranges tend to inhabit different volatility environments. In each case the estimator informs risk and regime rather than pointing a direction, so it is paired with a directional trigger.

Combining it with other indicators

Garman-Klass sits naturally beside Average True Range, which also captures range but folds in the prior close to account for gaps — comparing the two flags markets where overnight jumps are inflating real risk beyond what Garman-Klass shows. Bollinger Bands, whose width is a volatility read of its own, corroborate expansion and contraction signals. Because the estimator is silent on direction, pair it with a trend tool such as a moving average or ADX to know which way to lean once volatility says the environment is favourable. For options traders, overlaying implied volatility against the Garman-Klass realised figure shows whether options are pricing in more or less movement than the market has actually delivered, a classic rich-versus-cheap comparison. Parkinson volatility, its range-only predecessor, makes a useful cross-check since a large gap between the two hints at strong intraday directional moves.

Where it fails

The estimator's key assumption is no overnight jumps and no drift, so any market that regularly gaps between the close and the next open will have its volatility understated — a serious blind spot for individual stocks around earnings and for anything trading in sessions. Its efficiency edge also shrinks when the data has unreliable opens, such as thinly traded instruments or illiquid early prints, where the open-to-close term becomes noise rather than signal. Being purely backward-looking, it says nothing about a coming shock and can read reassuringly low right before an explosion in real volatility. Traders sometimes misread its steadiness as accuracy and forget it is still an estimate built on statistical assumptions. The defences are to prefer ATR when gaps matter, to apply it only to liquid instruments with trustworthy OHLC data, and to treat a very low reading as a warning of possible expansion rather than a guarantee of calm.

A worked example

Take a single daily bar with Open 100, High 103, Low 99, and Close 101. The log range is ln(103 / 99) ≈ 0.0396, and half its square is 0.5 × 0.0396² ≈ 0.000785. The log close-to-open move is ln(101 / 100) ≈ 0.00995, its square is about 0.0000990, and multiplying by the constant 0.386 gives roughly 0.0000382. This bar's variance contribution is 0.000785 − 0.0000382 ≈ 0.000747. Treating that as the daily variance, daily volatility is √0.000747 ≈ 0.0273, or about 2.73 percent. Annualising by multiplying by √252 ≈ 15.87 gives roughly 0.434, or about 43 percent — a fairly volatile day. Averaged over a 20-bar window the day-to-day noise smooths out, and a trader would compare that 43 percent to the instrument's recent norm to decide whether volatility is stretched, compressed, or ordinary, then size positions or set expectations accordingly.

Common mistakes

  • Using it on gap-prone stocks or thin sessions, where the no-overnight-gap assumption breaks.
  • Comparing a raw daily variance to an annualised figure — forgetting to scale by √252.
  • Trusting the open on illiquid instruments where the first print is unreliable.
  • Reading it as a direction signal; it measures magnitude of movement, not up or down.
  • Mixing lookback windows and then comparing the readings as if they were equivalent.