# Garman-Klass–Yang-Zhang Hybrid

A Volatility concept (Volatility estimators) in the LuxAlgo Library, with 1 indicator implementation.

## What is the Garman-Klass–Yang-Zhang Hybrid?

The Garman-Klass–Yang-Zhang hybrid (GKYZ) is the Garman-Klass estimator patched for overnight gaps. Its per-bar variance prepends one term to the classic formula: the squared log return from the prior close to today's open. In full: squared log of open over previous close, plus 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. The added term books the gap risk plain Garman-Klass silently drops, which matters for stocks, session-break futures, and anything that reprices on closed-market news.

The name is a genealogy. Mark Garman and Michael Klass published the original estimator in the Journal of Business in 1980 assuming zero drift and no opening jump. Dennis Yang and Qiang Zhang's 2000 paper in the same journal, Drift-Independent Volatility Estimation Based on High, Low, Open, and Close Prices, tackled both weaknesses at once. The hybrid sits between the two: practitioner references and charting libraries took the 1980 formula and bolted on the overnight term associated with the 2000 work, so it carries both names without being either paper's headline result.

GKYZ keeps the zero-drift assumption, so it is not the full Yang-Zhang estimator, which blends overnight variance, open-to-close variance, and the drift-independent Rogers-Satchell term under a variance-minimizing weight. GKYZ is the pragmatic middle: gap-aware, cheap to compute bar by bar, and a common volatility engine for bands and adaptive filters, but still biased when the market carries a persistent trend.

The appeal is that total variance splits into visible parts. Close-to-close [realized volatility](https://www.luxalgo.com/library/concept/realized-volatility/) sees the gap but wastes the intrabar path; plain Garman-Klass sees the path but not the gap; GKYZ counts both, so its reading tracks risk on instruments where a meaningful share of movement happens while the market is closed. Unlike [ATR](https://www.luxalgo.com/library/concept/atr/), which folds gaps into a smoothed price-unit range, GKYZ returns an annualized statistical volatility that can be compared across instruments and against options-market figures.

## How to identify GKYZ on a chart

GKYZ is a computed volatility series, so identification means recognizing its plot and verifying the formula behind the label, which is frequently misapplied in scripts.

1. Add a GKYZ indicator, such as loxx's Garman-Klass-Yang-Zhang Historical Volatility Bands; expect an annualized volatility line in a subpane or bands around price.
2. Verify the formula in the source or documentation: the tell is a squared close-to-open (overnight) term in addition to the high-low and open-close terms.
3. Run the gap test: after a large opening gap with a quiet session, GKYZ jumps while plain Garman-Klass stays flat; if the plotted line ignores the gap, the label is wrong.
4. On round-the-clock markets, expect GKYZ and Garman-Klass to overlap almost exactly, since opens sit at prior closes and the overnight term contributes nearly nothing.
5. Compare envelope behavior against [ATR bands](https://www.luxalgo.com/library/concept/atr-bands/): GKYZ-based bands scale with annualized statistical volatility rather than smoothed true range, so they respond differently to isolated gap events.

## How traders use it

- As the default OHLC volatility input for gap-prone instruments: equities and session-based futures where overnight moves carry a large share of total variance.
- As a width term for volatility bands and adaptive smoothing: the estimate responds to both intrabar turbulence and gap shocks, so envelopes widen after either kind of event.
- As a gap-share meter against plain Garman-Klass: the spread between the two isolates how much current volatility arrives overnight rather than within sessions.
- As an envelope width engine: de-annualized GKYZ times a multiplier around a moving average builds gap-aware bands, an alternative construction to [Keltner Channels](https://www.luxalgo.com/library/concept/keltner-channels/) or [Bollinger Bands](https://www.luxalgo.com/library/concept/bollinger-bands/) when overnight risk must show up in the width.
- As compression screening: a [volatility percentile](https://www.luxalgo.com/library/concept/volatility-percentile-rank/) rank of the series locates quiet stretches that often precede [range expansion](https://www.luxalgo.com/library/concept/range-expansion-contraction/), where quiet must include calm overnights, not just small candles.
- As a sizing input: volatility-targeted position sizes computed from GKYZ shrink exposure when overnight variance picks up, a statistical counterpart to sizing from a smoothed price range such as ATR.

## GKYZ vs adjacent volatility tools

- **ATR** (https://www.luxalgo.com/library/concept/atr/): Both are gap-aware, but differently: ATR folds the gap into true range and smooths it in price units, while GKYZ books the squared overnight log return into an annualized variance estimate. ATR suits stops; GKYZ suits statistical comparisons and band math.
- **Realized Volatility** (https://www.luxalgo.com/library/concept/realized-volatility/): Close-to-close realized volatility spans the gap implicitly because each return crosses the overnight, but it ignores everything between open and close. GKYZ separates the overnight and intrabar contributions and reaches a stable reading with fewer bars.
- **TTM Squeeze** (https://www.luxalgo.com/library/concept/ttm-squeeze/): TTM Squeeze infers volatility compression from Bollinger Bands sitting inside Keltner Channels, a chart-space heuristic. A GKYZ percentile delivers similar regime information in a single statistical series, including overnight variance the band overlays only see indirectly.

## FAQ

### When should I use GKYZ instead of Garman-Klass?

Whenever the instrument can gap between bars: stocks that close overnight, futures with session breaks, anything that reprices on news while closed. GKYZ counts the jump; Garman-Klass does not. On markets that trade around the clock, opens sit at prior closes, the overnight term contributes almost nothing, and the two estimators give near-identical readings.

### Is GKYZ the same as the Yang-Zhang estimator?

No, despite the name. Yang-Zhang is a weighted combination of overnight variance, open-to-close variance, and the Rogers-Satchell term, and it remains unbiased under nonzero drift. GKYZ is simply Garman-Klass plus an overnight term: gap-aware but not drift-robust. The two get conflated in indicator scripts, so check the formula before comparing readings across tools.

### How do you annualize a GKYZ reading?

Average the per-bar variance across the window, multiply by bars per year, and take the square root. Daily equity data conventionally uses 252; some futures and forex tools use 260 or 365, and intraday charts must count bars per year. Annualization constants are a leading cause of cross-platform disagreements.

### What window length should GKYZ use?

Common choices run from 10 to 30 bars for tactical work and longer for regime studies. The overnight term adds information per bar, so short windows stabilize faster than close-to-close volatility does. Whatever the choice, keep it fixed when comparing instruments, since window length changes level and responsiveness together.

### Does GKYZ apply to forex and crypto?

Crypto trades continuously, so the overnight term is near zero and GKYZ collapses toward plain Garman-Klass, with no harm done. Spot forex runs through the week but closes over the weekend, so GKYZ books Monday-open gaps a pure intrabar estimator would drop. On session-based futures the term matters every day.

### Why do two platforms show different GKYZ values?

Check four things: whether the formula truly includes the overnight term (some scripts labeled GKYZ implement plain Garman-Klass or full Yang-Zhang), the window length, the annualization constant, and whether the plotted series is volatility or variance. Matching those settings almost always reconciles the readings.

## Implementations in the Library

- Garman-Klassâ€“Yang-Zhang Hybrid (LuxAlgo): https://www.luxalgo.com/library/indicator/garman-klass-yang-zhang-hybrid/

## Related concepts

- Volatility Estimators: https://www.luxalgo.com/library/concept/volatility-estimators/
- Close-to-close Historical Volatility: https://www.luxalgo.com/library/concept/close-to-close-historical-volatility/
- EWMA Volatility: https://www.luxalgo.com/library/concept/ewma-volatility/
- Parkinson Estimator: https://www.luxalgo.com/library/concept/parkinson-estimator/
- Garman-Klass Estimator: https://www.luxalgo.com/library/concept/garman-klass-estimator/
- Rogers-Satchell Estimator: https://www.luxalgo.com/library/concept/rogers-satchell-estimator/
- Yang-Zhang Estimator: https://www.luxalgo.com/library/concept/yang-zhang-estimator/
- Jump Detection: https://www.luxalgo.com/library/concept/jump-detection/
- Volatility Signature Plot: https://www.luxalgo.com/library/concept/volatility-signature-plot/
- Volatility of Volatility: https://www.luxalgo.com/library/concept/volatility-of-volatility/

---

Source: https://www.luxalgo.com/library/concept/garman-klass-yang-zhang-hybrid/ (LuxAlgo Library, the encyclopedia of trading & technical analysis). Free to use with attribution: https://www.luxalgo.com/library/license/