I've been experimenting with end-of-day volatility-based stock trading strategies and I'm looking to see if it's possible to use similar strategies over shorter time frames. Given that market conditions are much different at say 9:30am than at 2:00pm, it's a lot more straightforward to look at historical volatility on a daily basis, but I'm wondering if it's possible to look at historical distributions of intraday volatility to estimate an annualized (or daily) volatility value based on the specific time of day.

For example, using the VIX as a familiar metric, let's say it has a current value of 20. That equates to a daily volatility (assuming 252 trading days in a year) of 1.26%

20% / 252^0.5 = 1.26%


Let's say that we want to look at volatility on a 10-minute basis. There are 6.5 hours in a trading day or 39 10-minute periods. A VIX of 20 would equate to a 10-minute implied volatility of 0.202%.

20% / (252 * 39)^0.5 = 0.202%


However, again the opening 10 minutes will be much different than a 10-minute period during the early afternoon. An annualized daily volatility of 20% might equate to annualized intraday volatility of 40%+ for the opening 10 minutes and 10% for the early afternoon. So for a given 10-minute period with 20% annualized volatility, one would need to know the time of day to know whether that represented high volatility or low volatility.

Maybe a simple method would be to calculate averages for each 10-minute period during a date range and find a multiplier for each intraday period relative to daily volatility during the date range, whereby daily volatility could then be estimated by multiplying intraday volatility by the square root of the multiplier. Something like this below where hv_multiplier attempts to capture the (inverse of the) fraction of daily volatility attributable to a given period and would vary based on the time of day.

daily_hv_estimate = intraday_hv * sqrt(hv_multiplier)


However, that's really just a guess, and I'm not sure if it works mathematically. My statistics knowledge is pretty basic - is there a formal way to extrapolate a standard deviation of a heterogenous population given the SD of a more homogeneous subpopulation if the relationship of the subpopulation to the overall population is known?

The annual variance is the sum of the daily variance: $$\sigma_y^2 t_y = \sum_{i=1}^{252}{\sigma_d(i)^2 t_d}$$ where $$t_d=\frac{1}{252}$$ and $$t_y=1$$ hence the $$\sqrt{252}$$ term you get if you assume that the volatility is expected to be the same every day. The daily variance is related to average 10min bar variances $$\sigma_m$$: $$\sigma_d^2 t_d = \sum_{i=1}^{39}{\sigma_m^2(i) t_m}$$
If the $$\sigma_m(i)$$ are assumed to vary with time, you can define the relative variance weight $$w_i$$ of a given 10min bar $$i$$: $$\sigma_m^2(i) = \sigma_m^2 w_i$$ The variance weight $$w_i$$ can then be estimated as the average proportion of this 10min bar contribution to the day's variance.
• Thank you for your answer. I had a little technology issue and am just now looking at this again. One thing I'm not sure I'm grasping - the first formula is summing the variance for each day, correct? I've always thought of SD and variance as being attributable to a population rather than to individual elements within a population. What exactly is the formula to calculate $\sigma_d(i)^2$? Nov 17, 2020 at 21:15
• Maybe the notation just threw me off. The term $\sigma_d(i)^2$ is the square of the difference from the mean of all days in the year for day $i$? When including $t_d$, that would make it fit with the general variance definition. Nov 17, 2020 at 22:06
• That's the usual stochastic calculus notations. $\sigma_t$ denotes a time dependent volatility, the variance of a process $dX_t = \sigma_t dW_t$ is given by $Var(X_t-X_0) = \int_0^t \sigma_s^2 ds$. You average square vol over time to get the variance. Feb 1 at 15:49