# Volatility Estimators

Also known as: Parkinson volatility, Garman-Klass, Rogers-Satchell, close-to-close estimator.
A Volatility concept (Volatility estimators) in the LuxAlgo Library, with 1 indicator implementation.

## What are volatility estimators?

Volatility estimators are the family of formulas that turn a window of price history into a number for realized (historical) volatility. The oldest member is the [close-to-close estimator](https://www.luxalgo.com/library/concept/close-to-close-historical-volatility/): the standard deviation of log returns computed from closing prices only. The range-based members, including [Parkinson volatility](https://www.luxalgo.com/library/concept/parkinson-estimator/), the [Garman-Klass estimator](https://www.luxalgo.com/library/concept/garman-klass-estimator/), and the [Rogers-Satchell estimator](https://www.luxalgo.com/library/concept/rogers-satchell-estimator/), also use the open, high, and low of each bar, extracting information the close-only method throws away.

The family exists because the close-to-close estimator is statistically inefficient: with one data point per bar it needs long windows to stabilize, which makes it slow to react. A bar's high-low range says a great deal about how violently price moved inside the bar, so range-based estimators reach a given accuracy with far fewer bars. The trade-off is assumptions. Parkinson assumes no drift and no opening gaps; Garman-Klass adds the open and close but still assumes no gaps; Rogers-Satchell tolerates drift but not gaps; the [Yang-Zhang estimator](https://www.luxalgo.com/library/concept/yang-zhang-estimator/) combines overnight and intraday components to handle both.

Traders care because the estimator choice changes the number, sometimes materially, and every downstream use inherits that choice: position sizing, stop distances, regime filters, and comparisons against implied volatility. For gap-prone markets such as equities, close-only or Yang-Zhang estimates tend to be more honest; for near-continuous markets, range-based estimators offer smoother, faster readings.

## How it's calculated

All members work on log prices over a window of n bars and are annualized the same way. Standard forms:

```
r_i = ln(close_i / close_(i-1))
CloseToClose: sigma^2 = (1 / (n - 1)) * sum_i (r_i - r_mean)^2
Parkinson: sigma^2 = (1 / (4 * n * ln(2))) * sum_i (ln(high_i / low_i))^2
GarmanKlass: sigma^2 = (1 / n) * sum_i (0.5 * (ln(high_i / low_i))^2 - (2 * ln(2) - 1) * (ln(close_i / open_i))^2)
RogersSatchell: sigma^2 = (1 / n) * sum_i (ln(high_i / close_i) * ln(high_i / open_i) + ln(low_i / close_i) * ln(low_i / open_i))
annualized volatility = sqrt(sigma^2) * sqrt(periods_per_year)

  n: lookback window in bars (20 to 30 daily bars is common)
  open_i, high_i, low_i, close_i: prices of bar i
  r_mean: mean of the log returns r_i over the window
  periods_per_year: 252 for daily bars on most equity calendars
```

Parkinson and Garman-Klass assume zero drift and no opening gaps, so they tend to understate volatility for gapping instruments.

Rogers-Satchell is drift-independent; Yang-Zhang extends it with an overnight variance term.

## How traders use it

- For volatility-aware sizing and stops: a stable estimate feeds position sizing and stop distances more smoothly than raw bar ranges, complementing [ATR](https://www.luxalgo.com/library/concept/atr/)-based approaches.
- For regime work: comparing a short-window estimate to a long-window one flags expansion and compression phases earlier when range-based estimators are used.
- For options context: realized estimates are compared against implied volatility to judge whether options look rich or cheap, often via volatility cones.
- With awareness of bias: estimators that ignore gaps systematically understate volatility for stocks over earnings and weekends, so estimator choice should match the instrument's session structure.
- For cross-checking: practitioners often compute two or three estimators; large disagreement between them is itself information about gaps or drift in the window.

## Volatility estimators vs adjacent measures

- **ATR** (https://www.luxalgo.com/library/concept/atr/): ATR is a smoothed average of true ranges in price units, built for stops and sizing. Volatility estimators produce an annualized standard deviation of returns, comparable across instruments and against option markets.
- **Realized Volatility** (https://www.luxalgo.com/library/concept/realized-volatility/): Realized volatility usually refers to the quantity being estimated, often computed from intraday returns. The estimators here approximate the same quantity from daily OHLC data.
- **Implied Volatility** (https://www.luxalgo.com/library/concept/implied-volatility/): Implied volatility is the market's forward-looking price of volatility from options. Estimators are backward-looking measurements; the spread between the two drives volatility trading.

## FAQ

### Which estimator should I use by default?

For gap-prone instruments like single stocks, close-to-close or Yang-Zhang is safer. For near-24-hour markets, Garman-Klass or Rogers-Satchell gives a smoother estimate from less data.

### Why do range-based estimators read lower than close-to-close on stocks?

They ignore overnight gaps, which carry a real share of a stock's variance. Missing that component biases the estimate downward.

### How long a window is appropriate?

Common choices are 20 to 30 daily bars for tactical work and 60 to 90 for slower context. Shorter windows react faster but are noisier, and range-based estimators tolerate shorter windows better.

### Do these estimators predict future volatility?

They measure the past. Volatility tends to persist, so recent readings are informative, but they are inputs to a forecast, not forecasts themselves.

## Implementations in the Library

- Volatility Estimators (LuxAlgo, the standard build of the classic formula): https://www.luxalgo.com/library/indicator/volatility-estimators/

## Related concepts

- 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/
- Garman-Klass–Yang-Zhang Hybrid: https://www.luxalgo.com/library/concept/garman-klass-yang-zhang-hybrid/
- 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/volatility-estimators/ (LuxAlgo Library, the encyclopedia of trading & technical analysis). Free to use with attribution: https://www.luxalgo.com/library/license/