VIX replication¶
This file shows how to reproduce the VIX given the data in [1]. The code works for any option data set, not only one day as in the White Paper. The option data for this example is exactly the same as in the Appendix 1 of the White Paper. The code is only tested on Python 3.4!
Given are the prices \(C_{i}\), \(i\in\left\{ 0,\ldots,n\right\}\), of a series of European call options on the index with fixed maturity date \(T\) and exercise prices \(K_{i}\), \(i\in\left\{ 0,\ldots,n\right\}\), as well as the prices \(P_{i}\), \(i\in\left\{ 0,\ldots,n\right\}\), of a series of European put options on the index with the same maturity date \(T\) and exercise prices \(K_{i}\). Let further hold \(K_{i}<K_{i+1}\) for all \(i\in\left\{ 0,\ldots,n-1\right\}\).
The VIX itself is
where \(V\) is explained below.
Since there are days when there no options with precisely 30 days to expiration, we have to interpolate between near-term index and next-term index:
with each \(\sigma_{i}^{2}\) computed according to
where the distance between strikes is
the out-of-the-money option premium is
at-the-money strike price is
forward price extracted from put-call parity:
with
and finally \(r\) is the constant risk-free short rate appropriate for maturity \(T\).
References¶
[1] | CBOE White Paper, http://www.cboe.com/micro/vix/vixwhite.pdf |