Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

Calculating the VIX in Excel

Tom Arnold
The Robins School of Business
Department of Finance
University of Richmond
Richmond, VA 23173
O: 804-287-6399
F: 804-289-8878
tarnold@richmond.edu

John H. Earl, Jr.


The Robins School of Business
Department of Finance
University of Richmond
Richmond, VA 23173
O: 804-289-8589
F: 804-289-8878
jearl@richmond.edu

December 14, 2007

Preliminary, do not cite without permission

Key words: VIX, options, Excel


JEL: G13

Electronic copy available at: http://ssrn.com/abstract=1103971


Calculating the VIX in Excel

Abstract:

The VIX has become a popular volatility index that is based on a weighted
average of S&P 500 options that straddle a 30-day maturity. This manner of calculating
the VIX emerged in September of 2003 and is documented with an example by the
CBOE. In this paper, the calculation of the VIX is reproduced in an Excel template to
automate and to some degree simplify the calculation. Further, one can also apply other
option series to calculate a VIX-type analysis for the underlying security which is of great
benefit because the calculation is independent of option pricing model biases.

Electronic copy available at: http://ssrn.com/abstract=1103971


INTRODUCTION:

In September of 2003, the CBOE introduced a new manner of calculating the VIX

volatility index that was independent of the biases of any particular option pricing model

– the motivating factor for changing the VIX (see CBOE documentation, 2003). In this

paper, an Excel template is developed that mimics the example of the VIX calculation

documented by the CBOE in 2003. The template is more flexible in the information it

requires the user to supply and in some cases, simplifies the calculation demonstrated in

the CBOE document. However, the greater benefit of the template, is that a VIX-type

calculation can be produced for any option series creating a forward looking gauge of the

underlying security that is independent of option pricing model biases. This benefit can

be of use to investors and researchers alike as a means of capturing risk assessment based

on a view of the future rather than estimated from past data.

The Excel template is developed in the next section. In the following section, a

VIX-type of analysis is performed using an equity option series to demonstrate how the

calculation can be applied more broadly. Section three concludes the paper.

SECTION 1: An Excel Template for the VIX Index

The VIX index is calculated using two maturity series from S&P 500 options that

straddle a 30-day maturity with the shorter-term options having a maturity in excess of

eight days. The length (i.e. the number of strikes included) of the option series is

dependent on the out-of-the-money (call or put) option at a given strike having a non-zero

price (based on the mid-quote). To help develop the Excel template the option series

supplied in the CBOE example are used:

2
Table 1: CBOE Example of S&P 500 Option Series

Near Term Options (16 days to maturity) Next Term options (44 days to maturity)
Strike: Call: Put: Strike: Call: Put:
775 125.48 0.11 775 128.78 2.72
800 100.79 0.41 800 105.85 4.76
825 76.70 1.30 825 84.14 8.01
850 54.01 3.60 850 64.13 12.97
875 34.05 8.64 875 46.38 20.18
900 18.41 17.98 900 31.40 30.17
925 8.07 32.63 925 19.57 43.31
950 2.68 52.23 950 11.00 59.70
975 0.62 75.16 975 5.43 79.10
1000 0.09 99.61 1000 2.28 100.91
1025 0.01 124.52 1025 0.78 124.38
Note: It should not be implied from this example that each option series must have the same number of
strike prices. The number of strike prices for an option series of a given maturity is determined by the
strike of the out-of-the-money option having a positive option price (based on midquote) associated with it.
When the out-of-the-money option does not have a positive price, the option is effectively eliminated from
the calculation (via providing zero contribution to the calculation) and the series ends when two successive
out-of-the-money strikes yield option prices of zero. Further, the actual levels of the strike prices may
differ between the different maturity series.

The template begins with user supplied information, including the option pricing

series with associated time to maturity and a risk-free interest rate (set to 1.1625% APR

in this example, however, an appropriate T-Bill rate would be recommended in practice).

Some preliminary calculations are performed concerning the time to maturity based on

minutes (the current time is assumed to be 8:30 AM CST) and the difference between call

and put prices taken as an absolute value.

Figure 1: Initial Excel Template for VIX

A B C D E F G
1 Time to Maturity:
2
3 Current Time: 8:30:00
4
5 Option 1: 16 days 0.04110 years 15.00 days
6
7 Option 2: 44 days 0.11781 years 43.00 days
8
9 Risk-free Rate: 1.1625% annual
10
11 Near-Term

3
12 Difference: Strike: Call Put
13 $ 125.37 775 $ 125.48 $ 0.11
14 $ 100.38 800 $ 100.79 $ 0.41
15 $ 75.40 825 $ 76.70 $ 1.30
16 $ 50.41 850 $ 54.01 $ 3.60
17 $ 25.41 875 $ 34.05 $ 8.64
18 $ 0.43 900 $ 18.41 $ 17.98
19 $ 24.56 925 $ 8.07 $ 32.63
20 $ 49.55 950 $ 2.68 $ 52.23
21 $ 74.54 975 $ 0.62 $ 75.16
22 $ 99.52 1000 $ 0.09 $ 99.61
23 $ 124.51 1025 $ 0.01 $ 124.52
24
25 Far-term
26 Difference: Strike: Call Put
27 $ 126.06 775 $ 128.78 $ 2.72
28 $ 101.09 800 $ 105.85 $ 4.76
29 $ 76.13 825 $ 84.14 $ 8.01
30 $ 51.16 850 $ 64.13 $ 12.97
31 $ 26.20 875 $ 46.38 $ 20.18
32 $ 1.23 900 $ 31.40 $ 30.17
33 $ 23.74 925 $ 19.57 $ 43.31
34 $ 48.70 950 $ 11.00 $ 59.70
35 $ 73.67 975 $ 5.43 $ 79.10
36 $ 98.63 1000 $ 2.28 $ 100.91
37 $ 123.60 1025 $ 0.78 $ 4.38
Cell D5: = (1440 - (HOUR($B$3)*60+MINUTE(B$3$)+SECOND(B$3$)/60)+ 510)/(1440*365) + (B5 -
2)/365...Note: 1440 is the number of minutes in a day and 510 is the number of minutes to 8:30 AM which
is the time the option expires on its expiration date.
Cell F5: = D5*365
Cell D7: copy cell D5
Cell F7: copy cell F5
CellAD13: =ABS(C13 - D13)
Cells A14 through A23: copy cell A13
Cells A27 through A37: copy cell A13

Below this information, the at-the-money strike is defined for each option maturity based

on which pair of call and put option prices have the least amount of difference (in

absolute value) between them. These two sets of put and call at-the-money options are

then used to imply the forward price for the S&P 500 Index based on put-call forward

parity for each maturity.

Figure 2: Forward Index Level Calculation Portion of Excel Template for VIX

4
A B C D E F G
39 Index Level:
40
41 Near-Term:
42 Strike: Call Put Level: Ref-Strike:
43 900 $ 18.41 $ 17.98 $ 900.43 900
44
45 Far-Term:
46 Strike: Call Put Level: Ref-Strike:
47 900 $ 31.40 $ 30.17 $ 901.23 900
Cell A43: =VLOOKUP(MIN(A13:A23),A13:D23,2,FALSE)
Cell B43: =VLOOKUP(MIN(A13:A23),A13:D23,3,FALSE)
Cell C43: =VLOOKUP(MIN(A13:A23),A13:D23,4,FALSE)
Cell D43: =A43+EXP(B9*D5)*(B43 - C43)…Note: this is an application of put-call forward parity to
imply the forward price based on the near-term options.
Cell E43: = IF(B43>=C43,A43,LOOKUP((A43-0.01),B13:B23)…Note: should the forward level have
been below 900, the LOOKUP function would return 875 as the reference strike price. The reference strike
price will be used later in the VIX calculation.
Cell A47: =VLOOKUP(MIN(A27:A37),A27:D37,2,FALSE)
Cell B47: =VLOOKUP(MIN(A27:A37),A27:D37,3,FALSE)
Cell C47: =VLOOKUP(MIN(A27:A37),A27:D37,4,FALSE)
Cell D47: =A47+EXP(B9*D7)*(B47 - C47)…Note: this is an application of put-call forward parity to
imply the forward price based on the far-term options.
Cell E47: = IF(B47>=C47,A47,LOOKUP((A47-0.01),B27:B37)…Note: should the forward level have
been below 900, the LOOKUP function would return 875 as the reference strike price. The reference strike
price will be used later in the VIX calculation.

Preliminary calculations for the VIX Index are performed for each strike price:

♦ If the strike is above the “reference strike” (see Figure 2), use the call price

♦ If the strike is below the “reference strike” (see Figure 2), use the put price

♦ If the strike equals the “reference strike” (see Figure 2), use the average of the call
and put prices

Each option price will be weighted based on the average of the difference between the

two surrounding strike prices or in the case of two surrounding strikes not being

available, the difference between the given option’s strike price and the strike price of the

next option closest in strike price. These “differences” are defined as “Delta-Strike” in

the spreadsheet and will be appreciated by the risk-free rate and divided by the square of

the option’s strike price to create the “weight” associated with each contributing option

5
price. Why squared values in the weight? The goal is to produce a variance calculation

which is a quadratic computation.

Figure 3: Weighting of Option Price Contributions to Calculate the VIX

A B C D E F G
11 Near-Term
12 Delta- C/P-
Difference: Strike: Call Put Strike: Near: VIX-Near:
13 $ 125.37 775 $ 125.48 $ 0.11 25 0.11 0.00000458
14 $ 100.38 800 $ 100.79 $ 0.41 25 0.41 0.00001602
15 $ 75.40 825 $ 76.70 $ 1.30 25 1.3 0.00004777
16 $ 50.41 850 $ 54.01 $ 3.60 25 3.6 0.00012463
17 $ 25.41 875 $ 34.05 $ 8.64 25 8.64 0.00028226
18 $ 0.43 900 $ 18.41 $ 17.98 25 18.195 0.00056184
19 $ 24.56 925 $ 8.07 $ 32.63 25 8.07 0.00023591
20 $ 49.55 950 $ 2.68 $ 52.23 25 2.68 0.00007427
21 $ 74.54 975 $ 0.62 $ 75.16 25 0.62 0.00001631
22 $ 99.52 1000 $ 0.09 $ 99.61 25 0.09 0.00000225
23 $ 124.51 1025 $ 0.01 $124.52 25 0.01 0.00000024
24
25 Far-term
26 Delta- C/P-
Difference: Strike: Call Put Strike: Far: VIX-Far:
27 $ 126.06 775 $ 128.78 $ 2.72 25 2.72 0.00011337
28 $ 101.09 800 $ 105.85 $ 4.76 25 4.76 0.00018619
29 $ 76.13 825 $ 84.14 $ 8.01 25 8.01 0.00029462
30 $ 51.16 850 $ 64.13 $ 12.97 25 12.97 0.00044940
31 $ 26.20 875 $ 46.38 $ 20.18 25 20.18 0.00065984
32 $ 1.23 900 $ 31.40 $ 30.17 25 30.785 0.00095146
33 $ 23.74 925 $ 19.57 $ 43.31 25 19.57 0.00057259
34 $ 48.70 950 $ 11.00 $ 59.70 25 11 0.00030513
35 $ 73.67 975 $ 5.43 $ 79.10 25 5.43 0.00014300
36 $ 98.63 1000 $ 2.28 $100.91 25 2.28 0.00005708
37 $ 123.60 1025 $ 0.78 $ 4.38 25 0.78 0.00001859
Cell E13: =IF(B13=MIN($B$13:$B$23),B14 - B13, IF(B13=MAX($B$13:$B$23), B13 - B12,(B14 -
B12)/2))…Note: the nested or iterated “IF” statement controls for strikes that occur at the upper and lower
bound.
Cell F13: =IF(B13=$B$43,(C13+D13)/2,IF(B13>$E$43,C13,D13))…Note: the nested or iterated “IF”
statement determines which option is to be used or when to use an average of the call and put option prices.
Cell G13: = E13/B13^2*EXP($B$9*$D$5)*F13…Note: the weight is applied to the appreciated
contributing option price (designated as C/P Near).
Cells E14 through E23: copy cell E13
Cells F14 through F23: copy cell F13
Cells G14 through G23: copy cell G13

6
Cell E27: =IF(B27=MIN($B$27:$B$37),B28 – B27, IF(B27=MAX($B$27:$B$37), B27 – B26,(B28 –
B26)/2))…Note: the nested or iterated “IF” statement controls for strikes that occur at the upper and lower
bound.
Cell F27: =IF(B27=$B$47,(C27+D27)/2,IF(B27>$E$47,C27,D27))…Note: the nested or iterated “IF”
statement determines which option is to be used or when to use an average of the call and put option prices.
Cell G27: = E27/B27^2*EXP($B$9*$D$7)*F27…Note: the weight is applied to the appreciated
contributing option price (designated as C/P Near).
Cells E28 through E37: copy cell E27
Cells F28 through F37: copy cell F27
Cells G28 through G37: copy cell G27
General Note: these calculations are performed with greater precision than the calculations performed in
the CBOE VIX document which will lead to very slight variation in the final VIX calculation.

With the option prices weighted, a final VIX calculation can be performed.

Figure 4: Final Calculations for the VIX

A B C D E F G
39 Index Level:
40
41 Near-Term:
42 Ref-
Strike: Call Put Level: Strike: Variance: Term1:
43 900 $ 18.41 $ 17.98 $ 900.43 900 0.06647723 0.00126840
44
45 Far-Term:
46 Ref-
Strike: Call Put Level: Strike: Variance: Term2:
47 900 $ 31.40 $ 30.17 $ 901.23 900 0.06366825 0.00401820
48
49 VIX Calculation: 25.36
Cell F43: = (2/D5)*SUM(G13:G23) - ((D43/E43 - 1)^2)/D5…Note: this performs a variance-type of
calculation for the near-term options.
Cell G43: =D5*F43*((F7 - 30)/(F7 - F5))…Note: the variance calculation is weighted to be “centered” on
30 days.
Cell F47: = (2/D7)*SUM(G27:G37) - ((D47/E47 - 1)^2)/D7…Note: this performs a variance-type of
calculation for the far-term options.
Cell G47: = D7*F47*((30 - F5)/(F7 - F5)) …Note: the variance calculation is weighted to be “centered” on
30 days.
Cell B49: = SQRT((G43 + G47)*365/30)*100…Note: this is the VIX Index and is the square root of the
weighted variance calculations from the two option series scaled on an annual basis.
General Note: these calculations are performed with greater precision than the calculations performed in
the CBOE VIX document which will lead to very slight variation in the final VIX calculation.

To summarize the VIX Index calculation, it is a weighted average of volatility

based on a series option prices and implied forward prices. The calculation is centered on

30 days and assuming two appropriate option series exist, a similar calculation could be

produced for longer or shorter than a 30 day period (adjust cells G43, G47, and B49

7
accordingly). Further, a similar calculation can be produced for option series other than

the S&P 500, which is demonstrated in the next section of the paper.

SECTION 2: VIX-type Analysis of an Equity Security

Because the VIX calculation is not biased due to a particular option pricing

model, the calculation has value beyond S&P 500 options. For example, a VIX-type

calculation using two series of equity options could prove to be valuable as a forecast or a

technical indicator. A bias will exist in that equity options are American (S&P 500

options used for the VIX are European), but if the forecasted period avoids dividend

events or other disbursement events, the bias should be minimal. Finding a series of

equity options is not difficult, particularly with practitioner software. However, for this

example, delayed quote data from the CBOE website is used (www.cboe.com, using

“option chains” from the “quotes” section). The option quotes (time stamped at 1:09

EST or 12:09 CST) are for 9-day and 37-day options on 3M (ticker: MMM). Table 2

reflects the data collected.

Table 2: 3M Option Quotes (midpoint) from www.cboe.com

Near Term Options (9 days to maturity) Next Term options (37 days to maturity)
Strike: Call: Put: Strike: Call: Put:
75 11.75 0.05 75 na na
80 6.90 0.08 80 7.70 0.73
85 2.40 0.60 85 3.80 1.80
90 0.18 3.40 90 1.05 4.05
95 0.05 8.30 95 na na
Note: Some of the quote midpoints have been rounded to the nearest penny.

Figure 5 reflects the VIX-analysis of the 3M options (Note: the risk-free rate is

simply assumed to be 1.1625% APR for convenience). The Excel template is only

altered to reflect the smaller amount of option data. Adjustments are made to the various

cell ranges within cell formulas to accommodate the smaller data set (one can do this by

8
putting the data into the previous spreadsheet and then deleting entire rows that are not

necessary; Excel adjusts the cell ranges automatically in this instance).

Figure 5: VIX analysis of 3M

A B C D E F G
1 Time to Maturity:
2
3 Current Time: 12:09:00
4
5 Option 1: 9 days 0.02150 years 7.85 days
6
7 Option 2: 37 days 0.09821 years 35.85 days
8
9 Risk-free Rate: 1.1625% annual
10
11 Near-Term
12 Delta-
Difference: Strike: Call Put Strike: C/P-Near: VIX-Near:
13 $ 11.70 75 $ 11.75 $ 0.05 5 0.05 0.00004446
14 $ 6.83 80 $ 6.90 $ 0.08 5 0.08 0.00006252
15 $ 1.80 85 $ 2.40 $ 0.60 5 1.5 0.00103832
16 $ 3.23 90 $ 0.18 $ 3.40 5 0.18 0.00011114
17 $ 8.25 95 $ 0.05 $ 8.30 5 0.05 0.00002771
18
19 Far-term
20 Delta-
Difference: Strike: Call Put Strike: C/P-Far: VIX-Far:
21 $ 6.98 80 $ 7.70 $ 0.73 5 0.73 0.00057096
22 $ 2.00 85 $ 3.80 $ 1.80 5 2.8 0.00193993
23 $ 3.00 90 $ 1.05 $ 4.05 5 1.05 0.00064889
24
25 Index Level:
26
27 Near-Term:
28 Ref-
Strike: Call Put Level: Strike: Variance: Term1:
29 85 $ 2.40 $ 0.60 $ 86.80 85 0.0985814 0.00044269
30
31 Far-Term:
32 Ref-
Strike: Call Put Level: Strike: Variance: Term2:
33 85 $ 3.80 $ 1.80 $ 87.00 85 0.058695 0.00456069
34
35 VIX Calculation: 24.67

9
The value of 24.67 is above the actual VIX level at the time (VIX level of 22.50), which

appears to be appropriate given that an individual equity security should be more volatile

than the market as a whole.

SECTION 3: Conclusion

Calculating the VIX index using an Excel template is not overly difficult

considering the spreadsheet skills expected within the financial analysis profession.

However, developing the template is instructive for understanding how the VIX is

calculated and with the template in hand, the same index can be computed for different

time horizons (not demonstrated in this paper) and for different underlying securities.

When applied to equity options, the index calculation can be used as a forward looking

risk measure, a technical indicator, or in conjunction with other analysis (especially if the

analysis is based on past data only).

10
REFERENCES:

Chicago Board Options Exchange (9/18/03). “VIX: CBOE Volatility Index.”

(www.cboe.com/micro/vix/vixwhite.pdf)

11

You might also like