Garman-Klass Estimator
The Garman-Klass estimator computes historical volatility from each bar's open, high, low, and close rather than from closes alone. Garman-Klass Estimator, also known as rolling Garman-Klass, is a Volatility concept. The Library holds 1 implementation, ready to run on Vela.
Top Garman-Klass Estimator indicator
The top custom implementation, built on the original standard Garman-Klass Estimator formula.
1 total
Open the Garman-Klass Estimator implementation below on Vela, then have Quant, our coding agent, turn it into a strategy you can backtest.
What is the Garman-Klass Estimator?
The Garman-Klass estimator computes historical volatility from each bar's open, high, low, and close rather than from closes alone. The per-bar variance estimate is half the squared log of high over low, minus (two times the natural log of two, minus one) times the squared log of close over open; averaging over a window and annualizing gives the volatility figure. Because the intrabar range samples the whole price path, the paper's theoretical efficiency gain over close-to-close realized volatility is roughly seven times under idealized assumptions.
The estimator comes from Mark Garman and Michael Klass, then at the University of California, Berkeley, whose paper On the Estimation of Security Price Volatilities from Historical Data appeared in the Journal of Business in 1980. It arrived alongside Michael Parkinson's high-low estimator the same year and improves on it by adding open-to-close information to the high-low term. Later authors patched its blind spots, but Garman-Klass remains the reference OHLC estimator the refinements are measured against.
Its assumptions are the catch: zero drift, continuous trading, and no opening gap. Anything that happens between one close and the next open is invisible to the formula, so gap-prone assets have their volatility understated. Strong trends violate the zero-drift assumption (the Rogers-Satchell estimator was built to fix exactly that), and discretely sampled highs and lows sit slightly inside the true extremes, which adds a small downward bias in thin or slowly traded markets.
The estimator matters because it changes what a volatility number is built from. ATR reacts to the same turbulence but is a smoothed range in price units, not a statistical variance estimate, and it cannot be annualized cleanly. Garman-Klass returns an annualized volatility comparable to options-style figures, which is why it appears as the width engine in band overlays and adaptive indicators, filling the role a standard deviation of closes plays inside Bollinger Bands with a steadier, range-aware reading.
How to identify the Garman-Klass estimator on a chart
The estimator is a computed series rather than a price pattern, so identification means recognizing its output and confirming which formula a tool actually implements.
- 1Add a Garman-Klass indicator, such as loxx's Garman & Klass Estimator Historical Volatility Bands; the output is either an annualized volatility line in a lower pane or bands drawn around price.
- 2Open the settings and note the lookback window and annualization factor; readings are typically annualized, so a daily estimate near 15 means roughly 15% annualized volatility.
- 3Plot a same-length close-to-close volatility beside it: the Garman-Klass line should track the same swells with visibly less bar-to-bar jitter, which is its efficiency signature.
- 4Watch a large overnight gap followed by a quiet session: the classic formula barely moves, confirming you are looking at gap-blind Garman-Klass rather than a gap-aware variant.
- 5Check that troughs in the series line up with visually compressed candles, the same stretches that BandWidth pinches or a TTM Squeeze flags.
How it's calculated
A range-based variance estimator that uses the whole OHLC bar, extracting more information per bar than close-to-close returns.
Derived by Garman and Klass (1980) assuming zero drift, continuous trading and no opening gaps; under those assumptions it is about 7.4 times as efficient as the close-to-close estimator.
Because overnight gaps are ignored it understates volatility for assets that jump between sessions; the Garman-Klass-Yang-Zhang variant adds a ln(O_t / C_{t-1}) gap term.
How traders use it
- As a lower-noise volatility input: bands, stop distances, and sizing rules settle onto a stable reading with fewer bars, which matters when the lookback must stay short.
- As a diagnostic pair with close-to-close volatility: Garman-Klass running well below it means movement is arriving as overnight gaps the formula cannot see; running above it means turbulent sessions whose closes mask the churn.
- As one vote in an estimator composite, averaged with drift-robust and gap-aware alternatives so each covers the others' blind spots.
- As a band width engine: de-annualized to per-bar scale and projected around a moving average, it builds envelopes that widen with statistical volatility, an alternative to ATR bands built on smoothed range.
- As squeeze and regime context: ranking the series with a volatility percentile flags compressions that often precede expansion, a statistics-first complement to a Bollinger Squeeze read.
Garman-Klass vs other volatility measures
ATR: ATR averages true range in price units and includes gaps through the true-range definition, making it the natural stop-distance tool. Garman-Klass estimates annualized log-return variance, is gap-blind, and suits statistical uses such as volatility targeting or band width.
Realized Volatility: Standard realized volatility squares close-to-close returns, so it sees gaps but wastes the intrabar path and needs long windows to stabilize. Garman-Klass extracts more from each bar via the open-high-low-close geometry, at the cost of missing overnight moves.
BandWidth: BandWidth reads volatility indirectly as the spread of Bollinger Bands, a rescaled standard deviation of closes. Garman-Klass is a direct OHLC variance estimator independent of any overlay, and the two can disagree when gaps or intrabar churn dominate.
Garman-Klass Estimator FAQ
Turn Garman-Klass Estimator into a trading strategy.
Open the implementation from this page in Vela. Quant, our coding agent, builds the strategy with you and backtests it on real data.
Browse this familyVolatility61 concepts mapped · 61 in the Library
- %B
- Acceleration Bands
- ATR
- ATR Bands
- ATR Expansion/contraction
- ATR-based Stop Distance
- Average Daily Range
- Band Walk
- BandWidth
- Bollinger Band Tag Reversion
- Bollinger Bands
- Bollinger Squeeze
- Chaikin Volatility
- Choppiness Index
- Close-to-close Historical Volatility
- Damiani Volatmeter
- Donchian Channels
- Donchian Width
- Double Bollinger Zones
- Envelope
- Event-driven Volatility
- EWMA Volatility
- Expected Move
- Fibonacci Bollinger Bands
- Gap-volatility Relation
- GARCH-family Clustering
- Garman-Klass Estimator
- Garman-Klass–Yang-Zhang Hybrid
- Jump Detection
- Kase Studies
- Keltner Channels
- Mass Index
- NR4/NR7 Narrow-range Bars
- Parkinson Estimator
- Projection Bands
- Range Expansion/contraction
- Realized Volatility
- Relative Volatility Index
- Rogers-Satchell Estimator
- Squeeze Release Direction
- Standard-deviation Channel Width
- STARC Bands
- SVE Bands
- The Range Indicator
- TTM Squeeze
- Ulcer Index
- Volatility Breakout
- Volatility Cones
- Volatility Contraction Pattern
- Volatility Estimators
- Volatility of Volatility
- Volatility Percentile/rank
- Volatility Ratio
- Volatility Regime Classification
- Volatility Signature Plot
- Volatility Switch
- Volatility Term Structure
- Waddah Attar Explosion
- Weekend/overnight Volatility Profile
- Williams VIX Fix
- Yang-Zhang Estimator
