2
$\begingroup$

When converting daily volatilities to annual volatilities one need to multiply with $\sqrt{252}$.

But I found this piece of code this piece of code who calculate log-returns in the following way: In MATLAB:

y=price2ret(CrixData(:,2))*sqrt(250);

The documentation for price2ret function is given here, and what this function does is calculating returns of historical data. Why does one also need to multiply with $\sqrt{252}$ in this case?

$\endgroup$
0

3 Answers 3

3
$\begingroup$

On average, there should be about 253 trading days per year, though some people will use 252. If we assume $\sigma^2 = N_{\text{trading days}} \sigma_{\text{daily}}^2$, then obviously we will have $\sigma = \sqrt{N_{\text{trading days}}} \sigma_{\text{daily}}$.

Now, why 253? You could look up the data from NYSE or NASDAQ and compute the average number of trading days per year. Or, you can look up this page from Wikipedia that explains it.

To be frank, the difference in most computations of using 252 or 253 is going to be almost nothing. For volatility, you're looking at something that should be in the 20% range or so over a year, so you get 7.94e-4 or 7.91e-4... I mean, you're down to a difference at the 6th decimal. Everything else in your computation will swamp that easily. A for 250 days, it's the first time I see this.

$\endgroup$
2
  • $\begingroup$ I would add that RiskMetrics in there model with 1 year lookback period and .97 decay factor use 262 days. It's the same for monthly data, some models take 20 days, some other take 22 or 25 days. This method is called rescaling using square root of time. It is an approximation known to overestimate volatility, however it is tolerated by regulators (at least in europe, see CESR guidelines on calculations of global exposure) under the assumption that returns are normally distributed. Note they also let you re-scale the confidence interval e.g. 95% VaR = 99% VaR / 2.326 * 1.645 $\endgroup$
    – tweedi
    Apr 16, 2020 at 17:30
  • $\begingroup$ We applied the logic to variance formula and then derived standard deviation formula. I am confused at why don't we just apply the logic directly to standard deviation? In that case, it would be std_yearly = 252*std_daily. Why don't we do this? $\endgroup$ Dec 10, 2022 at 12:12
2
$\begingroup$

if daily returns are $r_1,r_2,...,r_{252}$ then the annual return,$R$, is given by $1+R=(1+r_1)(1+r_2)...(1+r_{252})$. By "logging" and using the approximation $ln(1+x)\approx x$ we get $R=\sum_{i=1}^{252}r_i$ Then the annual variance is $$\sigma^2=\sum_{i=1}^{252}\sigma_i^2+\sum_{i\neq j}\sigma_{ij}$$ where $\sigma_i$ are daily variances and $\sigma_{ij}$ are covariances.

Assuming lack of correlation and constant variance $\sigma_i=\sigma_d,\forall i$ we get $$\sigma^2=252*\sigma_d^2 \iff \sigma=\sqrt{252}\sigma_d$$

Assuming constant daily returns you should multiply by 252 to get the annual return, not the square root of that.

It's 252 because of trading days. Basically a year without weekends.

$\endgroup$
0
$\begingroup$

Perhaps someone assumed that there are 250 trading days per year for this time series instead of 252.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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