Measurement of Stock Price Volatility
The return from a stock is the change in price from time t
0 to time t
1, where t
0 and t
1 represents two points in time; t
0 being the current time and t
1 being a future point in time. The price risk involved in the stock is variability of return from t
0 to t
1. Therefore, to measure risk, we must first measure return and its deviation. But we do not know future return (as t
1 is in future) and hence we also do not know the risk involved. For investment purposes we should know the risk involved in any investment, as knowledge about the risk helps us to make investment decisions. We can compute the risk in the following ways.
- From historical prices: We do not know the future with certainity but we can fall back on past (historical prices) and use it as a proxy to the future.
- Implied volatility: If options are available on the stock then we can calculate the implied volatility from the option prices.
- Create a Risk Model: If no historical prices or options are available then understand all the variables that effect the price of the security and create a model (basically an equation) that can estimate the risk involved in the security.
We will discuss the Implied Volatility and Risk Model in a separate article. In this article, we will focus on the historical prices method.
Using historical prices to estimate the risk
In this method, we collect historical prices and compute the risk that was present in the past and use the same computed risk for future with a certain degree of confidence but never with 100% confidence, as the future may not replicate the past. For example, if the historical risk is 20% (as per our computation) then we assume that in future also the risk would be about 20%. We are not 100% sure whether this is true, but we will use the risk number with some confidence which is always less than 100%, say 50%, 90% or 95%, etc.
The series of historical prices could be collected at regular intervals such as weekly, daily, monthly, etc., and this type of series is called
time series, and the analysis that we make on such series is called as
time series analysis. As pointed out earlier, to compute past risk we must first compute the past returns. That also means, we must convert the time series of prices into time series of price returns. There are three ways in which we can make this conversion, the following are those.
- Absolute price changes
- Relative price changes
- Logarithmic changes (continous compounded)
Absolute changes is the difference between current price and the previous price. Notation-wise we can call this as P
i minus P
i-1, where P
i is the price at i
th time and P
i-1 is the price on the previous observed time interval. Relative change is the ratio of P
i to P
i-1. Logarithmic change is the natural logarithm of the relative price changes. Symbolically, they can be writted as follows:
\[
Absolute \; price \; change = {P_i - P_{i-1}}
\]
\[
Relative \; price \; change = {P_i \over P_{i-1}}
\]
\[
Logarithmic \; price \; change = \ln {P_i \over P_{i-1}}
\]
Let's consider the stock price movements of Bank of America's stock for the period between 14th Sep 2020 and 28th Sep 2020 (11 days).
Sl No |
Date |
Stock Price ($) |
1 |
14th Sep 2020 |
25.75 |
2 |
15th Sep 2020 |
25.28 |
3 |
16th Sep 2020 |
25.60 |
4 |
17th Sep 2020 |
25.35 |
5 |
18th Sep 2020 |
25.21 |
6 |
21st Sep 2020 |
24.47 |
7 |
22nd Sep 2020 |
23.94 |
8 |
23rd Sep 2020 |
23.26 |
9 |
24th Sep 2020 |
23.34 |
10 |
25th Sep 2020 |
23.49 |
11 |
28th Sep 2020 |
24.09 |
We can use the above stock prices to compute the returns as follows.
Sl No |
Stock prices |
Absolute change (Pi - Pi-1) |
Relative changes (Pi / Pi-1) |
Logarithmic changes (ln (Pi / Pi-1)) |
1 |
25.75 |
n.a |
n.a |
n.a |
2 |
25.28 |
-0.47 |
0.981748 |
-0.0184 |
3 |
25.6 |
0.32 |
1.012658 |
0.0126 |
4 |
25.35 |
-0.25 |
0.990234 |
-0.0098 |
5 |
25.21 |
-0.14 |
0.994477 |
-0.0055 |
6 |
24.47 |
-0.74 |
0.970647 |
-0.0298 |
7 |
23.94 |
-0.53 |
0.978341 |
-0.0219 |
8 |
23.26 |
-0.68 |
0.971596 |
-0.0288 |
9 |
23.34 |
0.08 |
1.003439 |
0.0034 |
10 |
23.49 |
0.15 |
1.006427 |
0.0064 |
11 |
24.09 |
0.6 |
1.025543 |
0.0252 |
In finance (and particularly for risk computation), we use the logarithmic price changes; we do not use the absolute price returns and relative price returns. The reason for not using absolute and relative price change measures is as follows:
Absolute price changes are not comparable. For example a price change of $5 on a stock whose price is $50 and a price change of $5 on a stock whose price is $1,000 are not the same, and hence are not comparable.
Relative price change is better than absolute price change measurement because it enables comparison at different levels of stock prices. However, it lacks something called as "time consistency", which states that the changes over many periods should be additive. For example, if the price change is 1% on day 1 and 1% on day 2, then the total change over the two days is not equal to 1% + 1% = 2%. Instead, it is 1% multiplied by 1% (1.01 x 1.01 = 1.0201 or 2.01%).
An detailed explanation and importance of time consistency requirement is beyond the scope of this article. I shall cover it in another article on time series.
Log relative changes is an improvement on the relative price changes. It meets the time consistency requirement as the log price relatives are additive in nature over multiple periods. The logarithms that we are discussing here are the natural logarithm (ln) and not the common logarithm with base 10 (Log
10). The log relative changes method has one more advantage: financial assets have lognormal distribution, which corresponds to the economic fact that no asset price can fall by 100% or more but can rise by 100% or more.
Note: Logarithm of a negative number is undefined. If we take logarithms of relative price changes and plot them, they exhibit behaviour of a Normal Distribution.
Normal Distribution can be easily manipulated for statistical analysis. Thus, the log price relatives are a standard measure of return in the financial risk management industry.
From the table above (using log price relative changes), we can compute the mean and standard deviation of the stock for the sample period. The calculation is as follows.
The mean of the stock price returns is the sum of the returns divided by the number of observations. The Calculation is:
The arithmetic mean of the stock price returns is:
\[
Mean = {\sum X \over N } = {-0.0666 \over 10} = -0.0067
\]
Sl No |
Log price changes (X) |
Mean |
Deviation from Mean |
Deviation squared |
1 |
-0.0184 |
-0.0067 |
-0.01172 |
0.000137 |
2 |
0.0126 |
-0.0067 |
0.01928 |
0.000372 |
3 |
-0.0098 |
-0.0067 |
-0.00311 |
0.000010 |
4 |
-0.0055 |
-0.0067 |
0.00116 |
0.000001 |
5 |
-0.0298 |
-0.0067 |
-0.02309 |
0.000533 |
6 |
-0.0219 |
-0.0067 |
-0.01520 |
0.000231 |
7 |
-0.0288 |
-0.0067 |
-0.02212 |
0.000489 |
8 |
0.0034 |
-0.0067 |
0.01013 |
0.000103 |
9 |
0.0064 |
-0.0067 |
0.01311 |
0.000172 |
10 |
0.0252 |
-0.0067 |
0.03192 |
0.001019 |
The standard deviation of the stock price returns is:
\[
Standard \; Deviation = \sqrt {\sum x^2 \over N } \; = \sqrt {0.003067 \over 10} \; = \sqrt {0.000306691} \; = 0.017513 \; or \; 1.75\text %
\]
From the above calculations, we have found the following:
- The average returns (mean of the log price relatives) = -0.0067
- Standard deviation = 0.017513 or 1.75% (daily standard deviation or standard deviation for 1 day)
These two represent historical average and risk (standard deviation). Although they are valuable in understanding the average returns of the past and the risk, but our focus is to understand the future expected returns and the future risk. Moreover, in practice, the computation of standard deviation in finance (particular risk management industry) is different from the computation of standard deviation in statistics. The above computation is as per normal statistical method. In finance, the following two modification are made.
- The mean daily returns is assumed to be 0 (zero); and
- In some cases, the standard deviation is computed on the future expected returns instead of the historical returns.
There is nothing wrong in using the standard deviation calculated from historical prices. It's just that some in finance prefers to compute it from future price and risk. The following shows the computation of standard deviation assuming mean is 0, expected future price and risk.
Calculation of standard deviation assuming mean is 0 (zero)
Sl No |
Log price changes |
Log price changes squared |
1 |
-0.0184 |
0.0003393 |
2 |
0.0126 |
0.0001582 |
3 |
-0.0098 |
0.0000963 |
4 |
-0.0055 |
0.0000307 |
5 |
-0.0298 |
0.0008876 |
6 |
-0.0219 |
0.0004795 |
7 |
-0.0288 |
0.0008303 |
8 |
0.0034 |
0.0000118 |
9 |
0.0064 |
0.0000410 |
10 |
0.0252 |
0.0006362 |
Total |
0.0035110 |
\[
Standard \; Deviation = \sqrt {\sum x^2 \over N } \; = \sqrt {0.0035110 \over 10} \; = \sqrt {0.0003511} \; = 0.018738 \; or \; 1.87 \text %
\]
As we can see, there is difference between the standard deviation obtained by taking deviations from mean (1.75%) and standard deviation obtained by assuming daily mean to be zero (1.87%). In many cases, this difference is insignificant.
Expected Future Price
We can use the average returns (as computed above) to find the future returns. It can be done as follows:
For example:
The last observed current price is: 24.09 (as on 28th Sep 2020).
Let's say we want to find out the expected price on 29th Sep 2020, we can use the log price relative and mean to compute the expected future price by using the following equation.
\[
Expected \; future \; price = Current \; price \; \text x \; exp^{(log \; price \; relative)}
\]
Essentially, we need to convert log relative changes back to relative changes. To do this we are using the expoential function, which is the antilog. The calculation is as follows:
\[
Expected \; future \; price = 24.09 \; \text x \; exp^{(-0.0067)} = 24.09 \; \text x \; 0.993322 = 23.92
\]
If we want to find out the expected future price after 5 days, let's say on 4th Oct 2020, the calculation would be:
\[
Expected \; future \; price = 24.09 \; \text x \; exp^{(-0.0067 \; \text x \; 5)} = 24.09 \; \text x \; 0.967054 = 23.30
\]
The term Standard Deviation is common used in Statistics. In the risk management industry, we use the term "Volatility".
In the above example, we have computed the volatility of Bank of America's stock as 1.87% using historical prices and 0.66% using expected future prices. This is the risk (or volatility) for 1 day, as we have taken 10 observations and found its average for one day. We can calculate the annualised volatility or volatilty for any period, as follows.
\[
Annualised \; Historical \; Volatility = \sqrt {{252 \over n} \sum_{i=1}^n \biggl (ln { {P_i} \over P_{i-1} } \biggr )^2 }
\]
or
\[
or, Annualised \; Historical \; Volatility = Daily \; volatilty \; \text x \; \sqrt {Number \; of \; trading \; days}
\]
For example, volatility for 10 days =
\[
1.87 \text % \; \text x \; \sqrt {10} = 1.87 \; \text x \; 3.1622 = 5.91 \text %
\]
Similarly, volatility for one year =
\[
1.87 \text % \; \text x \; \sqrt {253} = 1.87 \; \text x \; 15.9059 = 29.74 \text %
\]
If you compare the above obtained volatility numbers with actual historical volatility numbers as reported in various websites, the numbers won't match. The reason for this is as follows: as indicated earlier, the practice is to take either 30, 90 or 365 days observations for the calculation of standard deviation. I have taken observations for 10 days only. Also, some take into consideration future market prices instead of cash market prices, this would also result in a deviation. Despite these obvious differences, the calculations are close to many volatility reports.
There are two methods or techniques of calculating standard deviation - 1) standard deviation of the entire population; and 2) standard deviation of a sample of population. When the standard deviation of the entire population is calculated, we will divide the squared deviations by the total observations (N). However, when we calculate the standard deviation for a sample of population, we will divide the squared deviations by N-1. When we divide by N-1, the denominator is less and hence the output figure is more. Therefore, the standard deviation of a sample will always be greater than the standard deviation for the entire population.
In Excel, "STDEV.P" function will calculate the standard deviation for the entire population, while "STDEV.S" will calculate the standard deviation for a sample of the population.
Implied Volatility and Risk Model will be discussed in separate articles.
END OF MY NOTES