According to Dynamic Hedging: Managing Vanilla and Exotic Options (Taleb, 1997), the Parkison volatility estimator has several meaningful properties. It is defined
$$P=\sqrt{\frac{1}{n}\sum_{i=1}^{n}\frac{1}{4\log\left(2\right)}\left(\log\left(\frac{S_{H,i}}{S_{L,i}}\right)\right)^{2}}$$
where $S_{H}$ and $S_{L}$ are the «close-to-close registered high and the registered low respectively in any particular time frame». From Taleb:
An important use of the Parkinson number is the assessment of the distribution of prices during the day as well as a better understanding of market dynamics. Comparing the Parkinson number and the periodically sampled volatility helps traders understand the mean reversion in the market as well as the distribution of stop-losses. Some clear rules can be derived from that information. Comparing the Parkinson number $P$ with the definition of periodically sampled historical volatility gives this result:
$$P=1.67\sigma'$$
Then Taleb adds:
Such measurement cannot be used to compare close-to-close volatility with intraday high/low. It can compare 24-hour high/low to data sampled every day at the same time. For markets, like most equities, which trade during the day only, it is better to use open-to-close volatility.
Whats $\sigma'$? It's defined as the noncentered volatility estimator:
$$\sigma'=\sqrt{\frac{1}{n}\sum_{t=1}^{n}x_{t}^{2}}$$
So Taleb suggests to set $x_{t}=\log\left(C_{t}\right)-\log\left(O_{t}\right)$ from a typical OHLC time series and then plot the ratio $z_{t}=P_{t}/\sigma'_{t}$: when $z_{t}>1.67$ we're in a mean reverting market, trending elsewhere. A figure shows that the Parkinson number ratio to the volatility is «strikingly convincing» because there seems to be a clear bias in favor of a wider high/low range than assumed by random walk when applying the ratio to U.S. Treasury bond futures from Aug-1992 to May-1995:
The problem arises when trying to reproduce such results. I downloaded many time series from Bloomberg, but everytime it seems that $P_{t}<1.67\sigma'_{t}$. Moreover, I picked even the same time series over the same period and my calculatiosn are really different:
$1.67$ seems a cap rather than a floor. So I'm going to share my R
snippet to see what's wrong with my code. ohlc
is the OHLC time series and I've loaded quantmod
and magrittr
packages. Then:
parkinson.vol <- TTR::volatility(OHLC = ohlc,
n = 20,
calc = 'parkinson')
taleb.vol <- OpCl(ohlc) ^ 2 %>%
runMean(n = 20) %>%
sqrt() * sqrt(260)
parkinson.ratio <- parkinson.vol / taleb.vol
Furthermore, Taleb says that:
Additional testing by the author shows the bias to be permanent in close to the 20 markets surveyed.
Are you able to reproduce Taleb's results?
R
package. My volatility estimator seems quite straightforward. Do you get different results with any time series? We can make some trials... $\endgroup$