5.1 OHLC measures

  • There are several OHLC measures of volatility, each with different characteristics

  • Instead of relying solely on closing prices, Parkinson was first who proposed using the highest and lowest prices for volatility calculation

\[\begin{equation} \sigma^2_P = \dfrac{\ln \bigg(\dfrac{H}{L}\bigg)^2}{4 \ln(2)} \end{equation}\]

  • The advantages of Parkinson estimator lie in the availability of data, the simplicity of the calculation, and a more efficient volatility estimate compared to the historical volatility (it is \(2.5\) to \(5\) times more efficient)

  • However, estimator \(\sigma^2_{P}\) also has some drawbacks, i.e. it assumes continuous trading, meaning that there are no overnight returns, and consequently, the opening price is equal to the previous day’s closing price

  • Building on Parkinson’s work, Garman and Klass expanded the data range by using, in addition to the highest and lowest prices, the opening and closing prices, thus incorporating all four available infromation

\[\begin{equation} \sigma^2_{GK} = \dfrac{1}{2}\ln \bigg(\dfrac{H}{L}\bigg)^2 - \dfrac{2 \ln(2) - 1}{2} \ln \bigg(\dfrac{C}{O}\bigg)^2 \end{equation}\]

  • It has been shown that the Garman–Klass estimator is most suitable for stocks prices that follow Brownian motion with zero drift and no jumps

  • Rogers and Satchell have modified the Garman–Klass estimator, i.e. they also use the OHLC range, but their estimator is not sensitive to zero drift, which means that the estimator can accurately estimate volatility even in the presence of a trend in the stock prices

\[\begin{equation} \sigma^2_{RS} = \ln\bigg(\dfrac{H}{O}\bigg) \times \ln\bigg(\dfrac{H}{C}\bigg) + \ln\bigg(\dfrac{L}{O}\bigg) \times \ln\bigg(\dfrac{L}{C}\bigg) \end{equation}\]

  • The duo after whom the estimator was named, Yang and Zhang, constructed a superior estimator that is insensitive both to zero drift and to overnight jumps

\[\begin{equation} \sigma^2_{YZ} = \sigma^2_O + k \sigma^2_C + (1 - k) \sigma^2_RS \end{equation}\]

where:
- \(\sigma^2_O = ( \ln(O/previous\ close) )^2\) — the open-to-close variance
- \(\sigma^2_C = ( \ln(C/O) )^2\) — the close-to-open variance
- \(k = 0.34 / (1.34 + (n+1)/(n-1))\) — a weighting factor
- \(n\) — number of observations

TABLE 5.1: Comparison of OHLC estimators
Estimator Zero drift Overnight jump Efficiency
Close–to–close 1.0
Parkinson 5.2
Garman–Klass 7.4
Roger–Satchell 8.0
Yang–Zhang 14.0
  • All mentioned OHLC estimators can be easily computed in R using volatility() command from the package TTR (Technical Trading Rules)
Example 14. text here
Solution Copy the code lines below to the clipboard, paste them into an R Script file, and run them.