Intraday volatility measures

In the last few decades there has been tremendous progress in the realm of volatility estimation. A major step is the additional use of intraday price path. It has been shown that estimates which consider intraday information are more accurate. Which is to say they converge faster to the real unobserved value of the true volatility.

It makes perfect sense. The usual proxy you’ve heard about, \varepsilon^2 only uses 2 information points, close-to-close, the following measures use much more information. They are termed range based, as they examine the range at some interval (one minute in my example) and sum them up to get the desired daily estimate. So, more information since they consider the full path in each day.

SPY - Daily Return Path - most recent year
SPY – Daily Return Path – most recent year

miro line
miro line – less volatile

I present three estimators. They have solid theory to back them up, however, as with any step forward, we face new tough decisions. I refer specifically to the number of intervals, (here one minute intervals so 390). From my experience it is quite important and it has to do with market micro-structure and the bid-ask spreads, in the references you can find a related paper. Let’s move on to the R code:

Here are three options, in all formulas h_i, l_i, cl_i, o_i are high, low, close and open prices for interval i respectively.

Parkinson (1980):

(1)   \begin{equation*} \sigma = \sqrt{\frac{1}{4Nln2}\sum_{i = 1}^N(ln\frac{h_i}{l_i})^2} \end{equation*}

Garman Klass (1980):

(2)   \begin{equation*} \sigma = \sqrt{\frac{1}{N}\sum_{i = 1}^N\frac{1}{2}(ln\frac{h_i}{l_i})^2 - \frac{1}{N}\sum_{i = 1}^N(2ln2-1)(ln\frac{c_i}{c_{i-1}})^2}  \end{equation*}

Rogers and satchell (1991):

(3)   \begin{equation*}  \sigma = \sqrt{\frac{1}{N}\sum_{i = 1}^N(ln\frac{h_i}{l_i})(ln\frac{h_i}{o_i}) + (ln\frac{l_i}{c_{i}}) (ln\frac{l_i}{o_{i}})}  \end{equation*}

The result for the most recent year is:

Volatility estimates

As you can see the correlation between the estimates is very high, which is in some sense comforting since it assures code validity, yet it also means that it does not really matter with which one you choose to go.

Thanks for reading.

Notes and references:

1. Credit for Jeffrey A. Ryan for the hard work of interfacing R with IB. (IBrokers package)

2. The Paper: Range-based Covariance Estimation mentioned in the post. Another sources are:


3. To get the data I use from IB, I am not familiar with a source for intraday quotes. Will be great if someone comments on one.

One comment on “Intraday volatility measures”

Leave a Reply

Your email address will not be published. Required fields are marked *