Estimating Intraday Volatility with Time-of-Day Variance Weights
Summary
The document explains how to translate intraday volatility into a daily or annualized estimate when volatility changes across the trading session. It points out that dividing annual volatility evenly across all intraday bars assumes identical variance in each period, which is unrealistic when the open and quieter midday intervals behave differently.
The main method treats daily variance as the sum of interval variances, then assigns each time window a relative variance weight. Historical data can estimate each interval's share of daily variance; those weights support time-specific volatility estimates and aggregation. A second answer proposes regression on time windows to estimate seasonal shares. The discussion gives formulas and an illustrative VIX calculation, but no fitted weights or empirical validation. Estimates therefore depend on the sampling period, window definitions, and whether the observed intraday variance pattern remains representative.
Key ideas
- Annual variance is aggregated by summing variance contributions across days or intraday intervals.
- Equal division across intraday bars assumes uniform volatility throughout the session.
- Time-of-day variance weights can represent each interval's share of daily variance.
- Historical proportions or regression across time windows can estimate intraday seasonality.
Tags
Full text
# Annualizing intraday volatility
# Annualizing intraday volatility
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?
## Answer by Sebapi (score 2)
https://quant.stackexchange.com/a/59381
You are almost there!
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.
## Answer by ZRH (score 1)
https://quant.stackexchange.com/a/59373
You could try to do regression analysis, where you sub-divide the day into time windows and then try to fit a seasonality by saying that x% of daily variance will accrue in the first hour of trading etc.Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.