Variance Swaps

Keith A. Lewis

January 26, 2025

Abstract
Value, hedge, and manage risk of variance swaps.

A variance swap pays the sum of the squares of realized return over a period. It provides exposure to volatility no matter the level of the underlying. Unlike a call or put option it never goes out-of-the-money. The most remarkable fact about variance swaps is that they do not require a mathematical model of the underlying price, only futures on the underlying and puts and calls that expire at the maturity of the variance swap.

One Period

Consider an underlying with price xx at the beginning of a period and price XX at the end of the period. Consider an option with payoff (Xx)2(X - x)^2 at the end of the period having price AA. If an option with payoff X2x2X^2 - x^2 has price BB and the forward paying XxX - x has price 0 then A=BA = B. This follows from the elementary formula X2x2=2x(Xx)+(Xx)2. X^2 - x^2 = 2x(X - x) + (X - x)^2. Note this is Taylor’s formula for f(x)=x2f(x) = x^2 since cubic and higher order terms are 0. Either contract can be used to replicate the other using the 0 price forward contract.

Exercise. If the price of the forward is CC then B=2xC+AB = 2xC + A.

Note this provides a perfect hedge no matter the value of XX.

A more realistic one period model has payoff (logX/x)2(\log X/x)^2, the square of the realized return. Recall Taylor’s formula with remainder for sufficiently differentiable ff is f(x)=k=0nf(k)(a)(xa)k/k!+axf(n+1)(t)(xt)n/n!dt f(x) = \sum_{k=0}^n f^{(k)}(a) (x-a)^k/k! + \int_a^x f^{(n+1)}(t) (x - t)^n/n!\,dt

Exercise. If f(x)=logxf(x) = \log x show logX/x=logXlogx=(1/x)(Xx)(1/x2)(Xx)2/2+xX2/t3(Xt)2/2dt \log X/x = \log X - \log x = (1/x)(X - x) - (1/x^2)(X - x)^2/2 + \int_x^X 2/t^3(X - t)^2/2\,dt

Contract

Contracts are specified by an underlying instrument and observation times. If the level of the underlying is XtX_t at time tt and the observation times are (tj)0jn(t_j)_{0\le j\le n} then the payoff on unit notional at time tnt_n is (ctnt00j<nRj2)σ02 (\frac{c}{t_n - t_0}\sum_{0\le j < n} R_j^2) - \sigma_0^2 where RjR_j is the realized return over [tj,tj+1][t_j, t_{j+1}], σ0\sigma_0 is the par volatility, and cc is a constant specified in the contract that is not far from the number 1. The par volatility makes the price of the contract at t0t_0 equal to zero.

The realized return is Rj=logXj+1/Xj=logXj+1logXj=ΔlogXjR_j = \log X_{j+1}/X_j = \log X_{j+1} - \log X_j = \Delta \log X_j where log\log is the natuaral logarithm with base e2.718281828e \approx 2.718281828. Real-world variance swap contracts actually specify this approximation.

Another common way of specifying realized return is Rj=(Xj+1Xj)/Xj=ΔXj/XjR_j = (X_{j+1} - X_j)/X_j = \Delta X_j/X_j. It does not drag in logarithms and is simpler to work with.

Exercise. Show ΔlogX=(ΔX/X)(1/2)(ΔX/X)2+O((ΔX/X)3)\Delta \log X = (\Delta X/X) - (1/2)(\Delta X/X)^2 + O((\Delta X/X)^3).

Solution

The cubic term (ΔX/X)3(\Delta X/X)^3 explains the P&L of a variance swap hedge, as we will see later.

Exercise. Show (ΔlogX)2=(ΔX/X)2(ΔX/X)3+O((ΔX/X)4)(\Delta \log X)^2 = (\Delta X/X)^2 - (\Delta X/X)^3 + O((\Delta X/X)^4).

Solution

Continuous time mathematical treatments assume the realized variance is (1/t)0t(dlogXs)2ds(1/t)\int_0^t (d\log X_s)^2\,ds. If XX is an Ito process satisfying dX/X=μdt+σdBdX/X = \mu\,dt + \sigma\,dB then dlogX=dX/X(1/2)(dX/X)2=μdt+σdB(1/2)σ2dtd\log X = dX/X - (1/2)(dX/X)^2 = \mu\,dt + \sigma\,dB - (1/2)\sigma^2\,dt so (dlogX)2=σ2dt(d\log X)^2 = \sigma^2\,dt and 0t(dlogXs)2ds=0tσ2ds\int_0^t (d\log X_s)^2\,ds = \int_0^t \sigma^2\,ds. Under a risk-neutral measure the par variance is σ02=(1/t)E[0tσ2ds]\sigma_0^2 = (1/t)E[\int_0^t \sigma^2\,ds].

The astounding thing about variance swaps is that valuing and hedging them do not require any assumptions on a model for the dynamics of the underlying. They only require futures and options traded at a sufficiently wide range of strikes on the underlying.

The payoff of a variance swap can be approximately replicated by a dynamic hedge in futures and a static hedge in a calls and puts.

For any thrice differentiable function ff we use a telescoping sum and Taylor’s theorem with remainder to get f(Xn)f(X0)=0j<nf(Xj+1)f(Xj)=0j<nf(Xj)ΔXj+12f(Xj)(ΔXj)2+Rj \begin{aligned} f(X_n) - f(X_0) &= \sum_{0\le j < n} f(X_{j+1}) - f(X_j) \\ &= \sum_{0\le j < n} f'(X_j)\Delta X_j + \frac{1}{2} f''(X_j) (\Delta X_j)^2 + R_j \end{aligned} where Rj=(1/2)XjXj+1f(t)(Xj+1t)2dtR_j = (1/2)\int_{X_j}^{X_{j+1}} f'''(t) (X_{j+1} - t)^2\, dt. Note f(Xn)f(X0)f(X_n) - f(X_0) is a European option payoff and f(Xj)ΔXjf'(X_j) \Delta X_j is the cash flow at time tj+1t_{j+1} from purchasing f(Xj)f'(X_j) futures on XX at time tjt_j. The quadratic term can be used to replicate a variance swap payoff.

If f(x)=2/x2f''(x) = 2/x^2 then (1/2)f(Xj)(ΔXj)2=(ΔXj/Xj)2(1/2)f''(X_j)(\Delta X_j)^2 = (\Delta X_j/X_j)^2 is the square of the realized return. We have f(x)=2/x+cf'(x) = -2/x + c where cc is a constant, and f(x)=2logx+cxf(x) = -2\log x + cx. It is convenient to choose c=1/zc = 1/z for some constant zz so 2logXn+Xn/z+2logX0X0/z=0j<n(2/Xj+2/z)ΔXj+(ΔXj/Xj)2+Rj -2\log X_n + X_n/z + 2\log X_0 - X_0/z = \sum_{0\le j < n} (-2/X_j + 2/z)\Delta X_j + (\Delta X_j/X_j)^2 + R_j Rearranging terms and simplifying gives 0j<n(ΔXj/Xj)2=2logXn/X0+(XnX0)/z+0j<n(2/Xj2/z)ΔXjRj \sum_{0\le j < n} (\Delta X_j/X_j)^2 = -2\log X_n/X_0 + (X_n - X_0)/z + \sum_{0\le j < n} (2/X_j - 2/z)\Delta X_j - R_j This shows a variance swap can be replicated using a static hedge and a dynamic hedge using futures with error RjR_j. The static hedge can be approximated with puts and calls using the Carr-Madan formula. If z=X0z = X_0 then the initial furtures hedge is zero.

Static Hedge

The static hedge is 2logXn/X0+(XnX0)/z-2\log X_n/X_0 + (X_n - X_0)/z and can be approximately replicated with a cash position, a forward, and a portfolio of puts and calls. Recall the Carr-Madan formula for a twice differentiable function f ⁣:[0,)Rf\colon [0, \infty)\to\mathbf{R} is f(x)=f(a)+f(a)(xa)+0af(k)(kx)+dk+af(k)(xk)+dk f(x) = f(a) + f'(a)(x - a) + \int_0^a f''(k) (k - x)^+ \, dk + \int_a^\infty f''(k) (x - k)^+\,dk If puts with strikes (Lj)(L_j) and calls with strikes (Hj)(H_j) are available at tnt_n then given KK we consider the piecewise continuous linear function f~\tilde{f} determined by by the points (Lj,f(Lj))(L_j, f(L_j)), Lj<KL_j < K, and (Hj,f(Hj))(H_j, f(H_j)), HjKH_j \ge K. We assume linear extrapolation on the left using the two lowest put strikes and on the right by the two highest call strikes. Typically KK is chosen to be close to the at-the-money forward at option expiration.

Cubic Term

The cubic term typically describes 95% of variance swap P&L over each period.

Since f(x)=4/x3f'''(x) = -4/x^3 the error term RjR_j over the period [tj,tj+1][t_j, t_{j+1}] is Rj=(1/2)XjXj+14/t3(Xj+1t)2dtR_j = (1/2)\int_{X_j}^{X_{j+1}} -4/t^3 (X_{j+1} - t)^2\, dt. Using tt is between XjX_j and Xj+1X_{j+1} we have Rj2min{Xj,Xj+1}3XjXj+1(Xj+1t)2dt=2min{Xj,Xj+1}313Xj+1Xj3=23ΔXj3min{Xj,Xj+1}3 \begin{aligned} |R_j| &\le \frac{2}{\min\{X_j, X_{j+1}\}^3} \left|\int_{X_j}^{X_{j+1}} (X_{j+1} - t)^2\, dt\right| \\ &= \frac{2}{\min\{X_j, X_{j+1}\}^3} \frac{1}{3}|X_{j+1} - X_j|^3 \\ &= \frac{2}{3} \frac{|\Delta X_j|^3}{\min\{X_j, X_{j+1}\}^3} \end{aligned}