Given an option and its implied volatility, and also the mean value of the implied volatility over the last 30 days, if we find that the current IV is significantly (> 1 std dev.) away from the mean, then:

How to approximate the time for the IV to mean revert?


A very popular choice for mean reversion is the Ornstein–Uhlenbeck process (here in discretized form): $$L_{t+1}-L_t=\alpha(L^*-L_t)+\sigma\epsilon_t$$

Here you see that the level change is governed by some parameter $\alpha$, the mean reversion rate (or speed), and the distance between the long run mean $L^*$ and the actual level $L_t$ plus some noise.

A very crude, yet intuitive way is to estimate the parameters of this process via a linear regression. Have a look at the following paper: http://www.fea.com/resources/a_meanrevert.pdf

There you see a toy example on page 71: The idea is that you do a regression where the level change of the time series is the dependent and the actual level of the time series is the independent variable.

I coded the following example in R which contains this toy example as a comment and the actual calculation for the VIX from January 2014 till today:

getSymbols("^VIX", from='2014-01-01')
level_t <- VIX$VIX.Adjusted
#level_t <- c(15,18,15.5,12,14.5,13,15,17,15.5,14)
change <- na.omit(diff(level_t))
level_t_1 <- level_t[-length(level_t)]
para <- lm(change ~ level_t_1)
(long_run_mean <- -para$coefficients[[1]]/para$coefficients[[2]])
(mean_reversion_speed <- -para$coefficients[[2]]*100)
(halflife <- -log(2)/para$coefficients[[2]])

Running the code gives:

> (long_run_mean <- -para$coefficients[[1]]/para$coefficients[[2]])
[1] 14.61876
> (mean_reversion_speed <- -para$coefficients[[2]]*100)
[1] 9.083576
> (halflife <- -log(2)/para$coefficients[[2]])
[1] 7.630774

The interpretation is that the long run mean of the VIX (estimated from the respective timeframe) is $14.6$, it mean reverts by about $9\%$ per VIX percentage point and needs about $7.5$ days to mean revert by $50\%$.

  • $\begingroup$ out of curiousity, - for VIX, you can, probably, get a much better estimate of the long term mean by looking at futures term structure, right? $\endgroup$ – LazyCat Feb 25 '15 at 19:09
  • $\begingroup$ @LazyCat: Probably but I honestly don't know. $\endgroup$ – vonjd Feb 25 '15 at 19:14
  • $\begingroup$ this paper math.nyu.edu/faculty/avellane/AvellanedaLeeStatArb20090616.pdf (by Avellaneda and Lee) explains in detail the modelling aspects $\endgroup$ – lehalle Sep 25 '16 at 8:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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