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"?

  • $\begingroup$ Google is your best friend, todaysgroep.nl/media/236846/measuring_historic_volatility.pdf $\endgroup$
    – Matt Wolf
    Commented May 15, 2014 at 15:39
  • 1
    $\begingroup$ 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? $\endgroup$
    – Stu
    Commented May 15, 2014 at 15:40
  • 3
    $\begingroup$ 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. $\endgroup$
    – Bob Jansen
    Commented May 15, 2014 at 16:20

1 Answer 1


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.

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.