Comparing Intraday Volatility Across Days with Log Returns
Summary
To rank days by volatility during a fixed intraday window, use the sequence of closing prices sampled at each minute. Convert those prices to logarithms, calculate consecutive differences, and take the standard deviation of the resulting minute log returns for each day. The resulting measure is in per-minute units and can be used to order the days.
The note clarifies why taking the standard deviation of logged price levels or of close-minus-open values is not the proposed calculation: volatility is estimated from changes in log prices. Its evidence is a direct recipe for forming 60 returns from 61 minute-end closes in the example window. A key limitation is that minute-level observations can include market microstructure noise, such as bid-ask bounce, which may inflate measured volatility relative to lower-frequency estimates. The note does not establish whether that distortion matters for a particular use case.
Key ideas
- Calculate volatility from consecutive log-price changes, rather than from log price levels.
- Use the same fixed intraday window and sampling interval for each day being compared.
- The standard deviation of minute log returns gives a per-minute volatility measure.
- Very frequent observations can reflect bid-ask bounce and other market microstructure noise.
Tags
Full text
# Comparing volatility of a specific period between days
# Comparing volatility of a specific period between days
I have 1 minute trade data for a particular stock and was wondering how I can compare the volatility of a particular period (08:00 - 09:00 for example) between days. I have data for 100 days and want to sort the days by most to least volatile.
My initial idea was to take the logarithm of each data point (close - open) and then just take the standard deviation of each day and sort by the outcome. This was after reading the following: "volatility is the standard deviation of the instrument's logarithmic returns". Seems a bit sketchy or maybe I am on the right track?
Thanks!
## Answer by Alex C (score 1, accepted)
https://quant.stackexchange.com/a/39115
This question is perhaps a bit too simple for this forum. You are just asking how to compute volatility.
For every day do the following. Take the closing prices at 1 minute intervals for the time period 08:00 to 09:00 . That is a vector of 61 numbers: $$\{c_1,c_2,\cdots, c_{61}\}$$
Take the logarithms of these numbers: $$\{\ln c_1,\ln c_2,\cdots, \ln c_{61}\}$$
Now take the first differences of these values (that is 60 numbers): $$\{ \ln c_2-\ln c_1, \ln c_3-\ln c_2,\cdots, \ln c_{61}-\ln c_{60}\}$$
Finally take the standard deviation of these numbers. That is the volatility, expressed in "per minute" units.
(However, you should be aware that by taking readings so close together (every minute) you are measuring not only the volatility of the underlying stock but also "microstructure noise" that arises from the trading process, for example the effect of the bid ask bounce. This means that this reading of volatility will be somewhat inflated compared to lower frequency readings. Whether this matter or not for your application I do not know.).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.