VIX - CBOE Volatility Index

VIX
CBOE Volatility Index

VIX - Volatility Index

Variance Swap Pricing

VIX Formula

The Chicago Board Options Exchange (CBOE) defines the VIX Index as the square root of the risk-neutral thirty-day forward variance of the S&P 500, inferred from a cross-section of out-of-the-money (OTM) SPX options. In continuous form, the model-free implied variance over horizon T is given by:

\sigma^{2}(T) = \frac{2}{T} \sum_{i} \frac{\Delta K_{i}}{K_{i}^{2}} e^{RT} Q(K_{i}) - \frac{1}{T}\left[\frac{F}{K_{0}} - 1 \right]^{2}

where:

  • F denotes the forward level of the S&P 500,
  • K_{0} is the first listed strike not exceeding the forward,
  • \Delta K_{i} is the strike spacing,
  • Q(K_{i})) denotes the OTM option price at strike K_{i} (puts for K_{i} < F and calls for K_{i} > F).

The index value is quoted as:

\mathrm{VIX} = 100 \sqrt{\sigma^{2}(30\text{ days})}

Conceptually, the VIX corresponds to a single thirty-day implied variance. In practice, almost no listed SPX option has exactly thirty days to expiration except at the VIX settlement event.

Consequently, the CBOE computes implied variance using two nearby expirations whose maturities lie between 23 and 37 days.

Let those maturities be T_{1} and T_{2}, with corresponding implied variances \sigma_{1}^{2} and \sigma_{2}^{2} computed from the formula above. The thirty-day variance is then obtained by linear interpolation in variance space:

\begin{aligned} & \sigma_{30}^{2} = w_{1}\sigma_{1}^{2} + w_{2}\sigma_{2}^{2}\\ & w_{1}, w_{2} \ge 0 \\ & w_{1}+w_{2}=1 \end{aligned}

where the weights are chosen such that the interpolated maturity equals thirty calendar days. The published VIX index is:

\mathrm{VIX} = 100 \sqrt{\sigma_{30}^{2}}

At the monthly special opening quotation (SOQ), the procedure collapses to a single-maturity computation because the listed SPX options used in settlement have exactly thirty days to expiry. The settlement VIX therefore does not require interpolation and is derived directly from the relevant option strip for that expiration date.

The mechanics are operational rather than theoretical: identify eligible strikes, compute the forward from put-call parity, determine the pivot strike (K_{0}), evaluate the weighted sum of OTM option prices, apply the adjustment term, and interpolate to thirty days when necessary. The resulting figure represents the market-implied annualized standard deviation of S&P 500 log-returns over the next calendar month.

Variance swap pricing

A variance swap is a contract whose payoff is proportional to the difference between realized variance and a fixed strike \sigma_{K}^{2} agreed at inception. The realized variance over the life T of the swap is computed as the average of squared log returns:

\frac{1}{T}\sum_{i=1}^{n}\left(\log\frac{S_{t_{i}}}{S_{t_{i-1}}}\right)^{2}

In a fair contract, the fixed leg equals the expected future variance under the risk-neutral measure \mathbb{Q}:

\sigma_{K}^{2} = \mathbb{E}^{\mathbb{Q}}\left[\frac{1}{T}\int_{0}^{T}\sigma_{t}^{2}\,\mathrm{d}t\right]

The term \sigma_t^2 represents the instantaneous variance of the index at time t. The challenge is to compute the expectation without assuming a specific model for S_t. The solution relies on expressing variance in terms of log prices, which can then be replicated using traded options.

Assume the S&P 500 price process satisfies under \mathbb{Q}:

\frac{\mathrm{d}S_t}{S_t} = r\,\mathrm{d}t + \sigma_t\,\mathrm{d}B_t

where r is the risk-free rate and B_t is a Brownian motion. Using Itô’s lemma:

\mathrm{d}\log S_t = \frac{\mathrm{d}S_t}{S_t} - \frac{1}{2}\sigma_t^2\,\mathrm{d}t

Subtracting gives:

\frac{\mathrm{d}S_t}{S_t} - \mathrm{d}\log S_t = \frac{1}{2}\sigma_t^{2}\,\mathrm{d}t

Integrating from 0 to T:

\int_{0}^{T}\sigma_t^{2}\,\mathrm{d}t = 2\int_{0}^{T}\frac{\mathrm{d}S_t}{S_t} - 2\log\frac{S_T}{S_0}

Dividing by T and take expectations under \mathbb{Q}:

\mathbb{E}^{\mathbb{Q}}\left[\frac{1}{T}\int_{0}^{T}\sigma_t^{2}\,\mathrm{d}t\right] = \frac{2}{T}\mathbb{E}^{\mathbb{Q}}\left[\int_{0}^{T}\frac{\mathrm{d}S_t}{S_t}\right] - \frac{2}{T}\mathbb{E}^{\mathbb{Q}}\left[\log\frac{S_T}{S_0}\right]

Since under \mathbb{Q} the expected return equals r:

\mathbb{E}^{\mathbb{Q}}\left[\int_{0}^{T}\frac{\mathrm{d}S_t}{S_t}\right] = rT = \log\frac{F}{S_0}

where F is the forward price. Therefore,

\sigma_K^{2} = \frac{2}{T}\left(\log\frac{F}{S_0} - \mathbb{E}^{\mathbb{Q}}\left[\log\frac{S_T}{S_0}\right]\right)

The fair variance swap rate depends only on the expectation of \log S_T.

To evaluate \mathbb{E}^{\mathbb{Q}}[\log S_T], we express \log S_T in terms of European option payoffs.

For any twice-differentiable function g, Carr–Madan’s static replication formula gives:

g(S_T) = g(K_0) + g^{\prime}(K_0)(S_T-K_0) + \int_{0}^{K_0} g^{\prime\prime}(K)(K-S_T)^{+}\,\mathrm{d}K + \int_{K_0}^{\infty} g^{\prime\prime}(K)(S_T-K)^{+}\,\mathrm{d}K

We set g(x)=\log x, so g^{\prime\prime}(K) = -1/K^2, and choose the pivot K_0 = F. Then:

\log S_T = \log F + \frac{S_T - F}{F} - \int_{0}^{F}\frac{(K-S_T)^{+}}{K^{2}}\,\mathrm{d}K - \int_{F}^{\infty}\frac{(S_T - K)^{+}}{K^{2}}\,\mathrm{d}K

Taking expectations under \mathbb{Q} and using risk-neutral pricing (so P(K) and C(K) are put and call prices discounted by e^{-rT}):

\mathbb{E}^{\mathbb{Q}}\left[\log S_T\right] = \log F - e^{rT}\left( \int_{0}^{F}\frac{P(K)}{K^{2}}\,\mathrm{d}K + \int_{F}^{\infty}\frac{C(K)}{K^{2}}\,\mathrm{d}K \right)

Substituting:

\sigma_K^{2} = \frac{2e^{rT}}{T} \left( \int_{0}^{F}\frac{P(K)}{K^{2}}\,\mathrm{d}K + \int_{F}^{\infty}\frac{C(K)}{K^{2}}\,\mathrm{d}K \right) = \frac{2e^{rT}}{T}\,I(F)

This is the model-free variance swap formula.

VIX formula

The same variance can be written for an arbitrary pivot K_0 by the Carr–Madan log-contract identity.

From:

\mathbb E^{\mathbb Q}[\log S_T]=\log K_0+\frac{F-K_0}{K_0}-e^{rT}I(K_0)

we obtain:

e^{rT}\,I(F) = e^{rT}\,I(K_0) - \left(\frac{F}{K_0}-1-\log\frac{F}{K_0}\right)

Substituting gives the exact pivot-invariant form:

\sigma_K^{2} = \frac{2e^{rT}}{T}\,I(K_0) - \frac{2}{T}\left(\frac{F}{K_0}-1-\log\frac{F}{K_0}\right)

We apply the Taylor expansion of the logarithm:

\log\left(1+x\right)=x-\frac{x^{2}}{2}+\frac{x^{3}}{3} + \cdots

We take:

x = \frac{F}{K_{0}} - 1

Therefore:

\begin{aligned} \frac{2}{T}\left(\frac{F}{K_0}-1-\log\frac{F}{K_0}\right) & = \frac{2}{T}\left(\frac{F}{K_0}-1-\log\frac{F}{K_0}\right) \\ & = \frac{2}{T}\left(\frac{F}{K_0}-1-\log\left(1 + \frac{F}{K_0} - 1\right)\right] \\ & = \frac{2}{T}\left(\frac{F}{K_0}-1-\log\left(1 + x\right)\right]\\ & = \frac{2}{T}\left(\frac{F}{K_0}-1-\left(x - \frac{x^2}{2}\right)\right]\\ & = \frac{2}{T}\left(\frac{F}{K_0}-1-\left(\frac{F}{K_0}-1 - \left(\frac{F}{K_0}-1\right)^2\frac{1}{2}\right)\right]\\ & = \frac{1}{T}\left(\frac{F}{K_0}-1\right)^2\\ \end{aligned}

So Keeping the leading quadratic term yields the CBOE continuous-to-discrete correction:

-\frac{2}{T}\left(\frac{F}{K_{0}}-1-\log\frac{F}{K_{0}}\right) \approx -\frac{1}{T}\left(\frac{F}{K_{0}}-1\right)^{2}

Next we replace the integrals in I(K_{0}) by Riemann sums over listed strikes. Let \{K_i\}_{i=1}^{N} be the ordered strikes, and define the strike spacing as:

\Delta K_i = \begin{cases} K_{2}-K_{1} & i=1 \\ \dfrac{K_{i+1}-K_{i-1}}{2} & 1<i<N\\ K_{N}-K_{N-1} & i=N \end{cases}

We define the OTM option price selector:

Q(K_i) = \begin{cases} P(K_i) & K_i<K_{0}\\ \dfrac{1}{2}\left(P(K_{0})+C(K_{0})\right) & K_i=K_{0}\\ C(K_i) & K_i>K_{0} \end{cases}

The midpoint rule then gives:

I(K_{0}) \approx \sum_{i=1}^{N} \frac{\Delta K_i}{K_i^{2}}\,Q(K_i)

Combining produces the CBOE discrete variance estimator:

\sigma^{2}(T) = \frac{2e^{rT}}{T}\sum_{i=1}^{N}\frac{\Delta K_i}{K_i^{2}}\,Q(K_i) - \frac{1}{T}\left(\frac{F}{K_{0}}-1\right)^{2}

Everything is observable at time 0.

The forward F and the pivot K_{0} are obtained from put–call parity using the strikes surrounding the forward.

A standard choice is to select K_{0} as the largest strike with K\le F (equivalently, the strike where |C(K)-P(K)| attains its minimum), and then set:

F = K_{0}+e^{rT}\left(C(K_{0})-P(K_{0})\right)

which is consistent with F=S_0e^{rT} in markets with no dividends. The single-point convention at K_{0} in Q(\cdot) is immaterial in the continuous limit but stabilizes the discrete sum.

Finally, VIX targets a constant 30-calendar-day horizon. Let the two available expiries bracketing 30/365 years be T_{1}<30/365<T_{2}. We compute \sigma^{2}(T_{1}) and \sigma^{2}(T_{2}) using each maturity’s strike grid and option prices.

We interpolate in variance space to exactly 30 days:

\sigma^{2}_{30\ \mathrm{days}} = \frac{T_{2}-\frac{30}{365}}{T_{2}-T_{1}}\,\sigma^{2}(T_{1}) + \frac{\frac{30}{365}-T_{1}}{T_{2}-T_{1}}\,\sigma^{2}(T_{2})

Finally, the index is annualized and square-rooted:

\mathrm{VIX} = 100\sqrt{\sigma^{2}_{30\ \mathrm{days}}}

This is the published VIX formula from CBOE.

References

CBOE EXCHANGE, INC., 2019. White Paper: Cboe Volatility Index (VIX®). © 2019 Cboe Exchange, Inc.

CBOE GLOBAL MARKETS, 2022. Volatility Index® Methodology – Cboe Volatility Index (VIX®). Cboe Global Markets.

CARR, Peter; MADAN, Dilip B., 1998. Towards a Theory of Volatility Trading. In: Jarrow, R. (ed.), Volatility: New Estimation Techniques for Pricing Derivatives. London: Risk Books, pp. 417–427.

Go to the top of the page