Skip to content
All library documents

Estimating Annualized Volatility from Weekly Stock Prices

Article Quant Q&A · Author: Bob

Summary

The document estimates stock volatility from a series of weekly closing prices. It first converts consecutive prices into logarithmic returns, calculates their sample standard deviation, and annualizes that estimate using the interval length in years. It also gives an approximate standard error for a volatility estimate based on the number of returns.

The worked calculation contains arithmetic and formula errors. A response corrects one return-sum calculation and reports a return standard deviation of 0.028836, but the example’s stated annualization and standard-error results are not reliable: it confuses the sample standard deviation of returns with its annualized counterpart, includes an inconsistent variance calculation, and miscalculates the final standard error. The general approach is useful, but the numerical results should be independently recalculated. The estimate also assumes the observed returns are suitable for a simple volatility calculation; the short sample and approximate standard-error formula limit precision.

Key ideas

  • Estimate volatility by taking the sample standard deviation of consecutive log returns.
  • Annualize a return standard deviation by dividing by the square root of the time interval in years.
  • The number of price observations is one greater than the number of returns.
  • Check intermediate arithmetic and distinguish weekly volatility from annualized volatility.
  • The stated standard-error calculation in the worked example is incorrect.

Tags

Full text
# Calculating the volatility for Black Scholes


# Calculating the volatility for Black Scholes












The following problem is from the book by Hull. I did it but I am not sure it is right. I am hoping that somebody here can tell me if I did it right and if not where I went wrong.

Thanks Bob

Problem:

Suppose that observations on a stock price(in dollars) at the end of each of $15$ consecutive weeks are as follows:

$ 30.2, \,\,\, 32, \,\,\, 31.1, \,\,\, 30.1, \,\,\, 30.2, \,\,\, 30.3,$ $30.6, \,\,\, 33.0, \,\,\, 32.9, \,\,\, 33.0, \,\,\, 33.5,$ $ \,\,\, 33.5, \,\,\, 33.7, \,\,\, 33.5, \,\,\, 33.2$

Estimate the stock price volatility. What is the standard error of your estimate?

Answer:

$n + 1$ is the number of observations. $S_i$ is the value of the stock at the end of the ith interval, $\tau$ is the length of the intervals in years and $\hat{ {\sigma} }$ is a good estimate of the standard deviation of $u_i$. The standard error of this estimate is about $\frac{ \hat{ \sigma} }{ \sqrt{2n} }$. The relevant formulas are: \begin{eqnarray*} u_i &=& \ln{( \frac{u_i}{u_{i-1}} )} \\ s &=& \sqrt{ \frac{1}{n-1} \sum_{i=1}^{i=n} {(u_i - \bar u)^2} } \\ \hat { \sigma } &=& \frac{s}{\sqrt{\tau} } \\ \end{eqnarray*} Note: $\bar u$ is the mean of the $u_i$ variables. \newline In this case, we have: \begin{eqnarray*} n &=& 14 \\ u_1 &=& \ln {(\frac{32} {30.2} )} = 0.057894 \\ u_2 &=& \ln {(\frac{31.1} {32} )} = -0.02852 \\ u_3 &=& \ln {(\frac{30.1} {31.1} )} = -0.0326826 \\ u_4 &=& \ln {(\frac{30.2} {30.1} )} = 0.003316 \\ u_5 &=& \ln {(\frac{30.3} {30.2} )} = 0.003305 \\ u_6 &=& \ln {(\frac{30.6} {30.3} )} = 0.009852 \\ u_7 &=& \ln {(\frac{33 } {30.6} )} = 0.075507 \\ u_8 &=& \ln {(\frac{32.9} {33} )} = -0.003034 \\ u_9 &=& \ln {(\frac{33 } {32.9} )} = 0.003034 \\ u_{10} &=& \ln {(\frac{33.5 } {33} )} = 0.0150379 \\ u_{11} &=& \ln {(\frac{ 33.5 } {33.5} )} = 0 \\ u_{12} &=& \ln {(\frac{33.7 } {33.5} )} = 0.005952 \\ u_{13} &=& \ln {(\frac{33.5} {33.7} )} = - 0.0059524 \\ u_{14} &=& \ln {(\frac{33.2 } {33.5} )} = - 0.008995 \\ \end{eqnarray*}

\begin{eqnarray*} \sum_{i=1}^{i=5} {u_i} &=& 0.003312 \\ \sum_{i=6}^{i=10} {u_i} &=& 0.1064649 \\ \sum_{i=11}^{i=14} {u_i} &=& -0.0089954 \\ \sum_{i=0}^{i=14} {u_i} &=& 0.003312 + 0.1064649 -0.0089954 = 0.100781 \\ \bar u &=& \frac{1}{n} \sum_{i=1}^{i=n} { u_i } = \frac{1}{14} { \sum_{i=1}^{i=14} { u_i } } = \frac{0.100781}{14} \\ \bar u &=& 0.007198 \\ s &=& \sqrt{ \frac{1}{14-1} \sum_{i=1}^{i=14} {(u_i - 0.007198)^2} } \\ (u_1 - 0.007198)^2 &=& 0.002570 \\ (u_2 - 0.007198)^2 &=& 0.001275 \\ (u_3 - 0.007198)^2 &=& 0.001590 \\ (u_4 - 0.007198)^2 &=& 0.0000151 \\ (u_5 - 0.007198)^2 &=& 0.0000152 \\ (u_6 - 0.007198)^2 &=& 0.0000070 \\ (u_7 - 0.007198)^2 &=& 0.0046661 \\ (u_8 - 0.007198)^2 &=& 0.0001047 \\ (u_9 - 0.007198)^2 &=& 0.0000173 \\ (u_{10} - 0.007198)^2 &=& 0.0000615 \\ (u_{11} - 0.007198)^2 &=& 0.0000518 \\ (u_{12} - 0.007198)^2 &=& 0.0000016 \\ (u_{13} - 0.007198)^2 &=& 0.0001729 \\ (u_{14} - 0.007198)^2 &=& 0.0002622 \\ \end{eqnarray*} \begin{eqnarray*} \sum_{i=1}^{i=5} {(u_i - 0.007198)^2} &=& 0.0054653 \\ \sum_{i=6}^{i=10} {(u_i - 0.007198)^2} &=& 0.0048566 \\ \sum_{i=11}^{i=14} {(u_i - 0.007198)^2} &=& 0.0004885 \\ \sum_{i=1}^{i=14} {(u_i - 0.007198)^2} &=& 0.0054653 + 0.0048566 + 0.0004885 = 0.0108104 \\ s &=& \sqrt{ \frac{1}{14-1} (0.0108104) } = \sqrt{ 0.0108104 } \\ s &=& 0.1039731 \\ \end{eqnarray*} I am figuring that there are $52.1$ weeks in a year. \begin{eqnarray*} \tau &=& \frac{14}{52.1} = 0.268714 \\ \hat { \sigma } &=& \frac{s}{\sqrt{\tau} } = \frac{ 0.1039731 } { \sqrt{ 0.268714 } } = 0.200 \\ \end{eqnarray*} My estimate of the volatility is $0.200$ and the standard error of this estimate is $\frac{.200}{\sqrt{2(14)}} = 0.377$.

## Answer by Olaf (score 0, accepted)

https://quant.stackexchange.com/a/21834

Thr second sum should be:

$$\sum_{i=6}^{10}u_i = 0.10039773$$

This gives a mean of $0.0067648$ and a standard deviation of $\sigma=.028836$.

To avoid these errors you should use something to automate your calculations. Something like a spreadsheet.

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.