# What is the equation for Garman-Klass volatility?

I want to calculate realized/historical volatility for the underlying products of various options using the Garman-Klass estimator, but I can't see to find an equation, although I know it involves OHLC data. In the comments there is a link to the equation, but I still am looking for a little explanation. Why does this work? What is the variable "F"?

• Google is your best friend, todaysgroep.nl/media/236846/measuring_historic_volatility.pdf May 15, 2014 at 15:39
• I found this, but was hoping for a better explanation. For example, what is the variable "F"? Frequency? Is this suppose to be the sqrt(252) to annualize the volatility?
– Stu
May 15, 2014 at 15:40
• My Google-fu didn't turn up anything great so I will produce something below. Credits to @joshuaulrich for the TTR R-package I used as source. May 15, 2014 at 16:20

In the R TTR package the Garman-Klass volatility is given by

# Historical Open-High-Low-Close Volatility: Garman Klass
# https://web.archive.org/web/20100326172550/http://www.sitmo.com/eq/402
if( calc=="garman.klass" ) {
s <- sqrt( N/n * runSum( .5 * log(OHLC[,2]/OHLC[,3])^2 -
(2*log(2)-1) * log(OHLC[,4]/OHLC[,1])^2 , n ) )
}


which corresponds to*

$$\sigma = \sqrt{ \frac{Z}{n} \sum \left[ \textstyle\frac{1}{2}\displaystyle \left( \log \frac{H_i}{L_i} \right)^2 - (2\log 2-1) \left( \log \frac{C_i}{O_i} \right)^2 \right] }.$$

I think this code is fairly self-explanatory but what's what?

Z = Number of closing prices in a year, n = number of historical prices used for the volatility estimate.

* $$\LaTeX$$ taken from the vignette.

• I like when my documentation helps non-users of my code. :) May 16, 2014 at 19:49
• It really is excellent, better than the papers Google gives. Thanks for that! May 16, 2014 at 19:57