Annualizing Volatility from Simple Returns Depends on the Model
Summary
The document explains why annualizing volatility from simple returns depends on the model and the quantity being estimated. For a lognormal price model, convert each simple return to a log return by taking the logarithm of one plus the return, then estimate volatility and annualize as usual. This uses the relationship between simple and log returns and avoids needing the original prices.
For a normal model of absolute price changes, calculate the standard deviation of price differences and scale it by the square root of the number of trading days. If returns are expressed relative to price, the answer describes scaling their standard deviation by a representative price level as well. A second answer proposes the familiar square-root-of-time scaling directly for daily simple returns. These recommendations are not interchangeable: the appropriate calculation depends on the model assumptions, return definition, and calibration goal.
Key ideas
- For a lognormal price model, convert simple returns to log returns before estimating volatility.
- For a normal model of absolute price changes, estimate dispersion from price differences and annualize it.
- Relative returns under a normal price model require accounting for the asset price level.
- Square-root-of-time scaling depends on the return definition and modeling assumptions.
Tags
Full text
# Annualized Volatility with simple returns
# Annualized Volatility with simple returns
I am aware of the way to annualize a volatility using log returns (stdev(daily log returns) * sqrt(252)).
But how can I do the same if I have a time series of simple returns (price_t - price _t-1) / price_t ?
## Answer by Jan Stuller (score 1)
https://quant.stackexchange.com/a/54960
Depends on what you're trying to do.
Log-normal model
Usually, you'd compute the Vol of Log-returns if you're trying to calibrate a Log-normal model, such as the Geometric-Brownian-Motion model for the stock price under the real-world probability measure:
$$ dS_t = \mu S_t dt + \sigma S_t dW_t $$
If you need to calibrate a model such as the above and if you were given computed regular returns instead of log-returns, you can just turn the regular returns into log-returns as follows:
$$LogReturn :=ln\left(\frac{p_{t_i}}{p_{t_{i-1}}}\right):=x$$
$$RegularReturn=\frac{p_{t_i} - p_{t_{i-1}}}{p_{t_i-1}}:=y$$
=>
$$y=\frac{p_{t_i}}{p_{t_{i-1}}}-1=e^x-1$$
$$y+1=e^x$$
$$ln\left(y+1\right)=x$$
So basically, add 1 to all your regular returns and take log of the result, and you convert your regular returns to log returns (without having to recover the original data). Then proceed as you would with log returns.
Normal model
If your model is normal, as follows:
$$ dS_t = \mu dt + \sigma dW_t $$
Then:
$$ S_t - S_0 \sim N(\mu t, \sigma \sqrt{t}) => \frac{S_t - S_0}{S_0} \sim N(\frac{\mu t}{S_0}, \sigma \frac{\sqrt{t}}{S_0}) $$
Therefore if you need to calibrate such model, you can just compute your returns as $p_{t_i} - p_{t_{i-1}}$ then compute the standard deviation of these differences and then annualize it by multiplying through by $\sqrt{252}$.
If you compute your returns as $\frac{p_{t_i} - p_{t_{i-1}}}{p_{t_i-1}}$ and then compute the standard deviation of these, you need to annualize your computed standard deviation by multiplying through by $S_0\sqrt{252}$, whereby for $S_0$ you could take the average price over your time series.
In summary: it depends on what you're trying to achieve with computing the volatility of your returns.
## Answer by Matteo (score 0)
https://quant.stackexchange.com/a/54959
In the same way. Just multiply the daily standard deviation for the square root of the trading days (i.e. 252).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.