January 26, 2025
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.
Consider an underlying with price x at the beginning of a period and price X at the end of the period. Consider an option with payoff (X - x)^2 at the end of the period having price A. If an option with payoff X^2 - x^2 has price B and the forward paying X - x has price 0 then A = B. This follows from the elementary formula X^2 - x^2 = 2x(X - x) + (X - x)^2. Note this is Taylor’s formula for f(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 C then B = 2xC + A.
Note this provides a perfect hedge no matter the value of X.
A more realistic one period model has payoff (\log X/x)^2, the square of the realized return. Recall Taylor’s formula with remainder for sufficiently differentiable f is 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) = \log x show \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
Contracts are specified by an underlying instrument and observation times. If the level of the underlying is X_t at time t and the observation times are (t_j)_{0\le j\le n} then the payoff on unit notional at time t_n is (\frac{c}{t_n - t_0}\sum_{0\le j < n} R_j^2) - \sigma_0^2 where R_j is the realized return over [t_j, t_{j+1}], \sigma_0 is the par volatility, and c 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 t_0 equal to zero.
The realized return is R_j = \log X_{j+1}/X_j = \log X_{j+1} - \log X_j = \Delta \log X_j where \log is the natuaral logarithm with base e \approx 2.718281828. Real-world variance swap contracts actually specify this approximation.
Another common way of specifying realized return is R_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 \Delta \log X = (\Delta X/X) - (1/2)(\Delta X/X)^2 + O((\Delta X/X)^3).
The cubic term (\Delta X/X)^3 explains the P&L of a variance swap hedge, as we will see later.
Exercise. Show (\Delta \log X)^2 = (\Delta X/X)^2 - (\Delta X/X)^3 + O((\Delta X/X)^4).
Continuous time mathematical treatments assume the realized variance is (1/t)\int_0^t (d\log X_s)^2\,ds. If X is an Ito process satisfying dX/X = \mu\,dt + \sigma\,dB then d\log X = dX/X - (1/2)(dX/X)^2 = \mu\,dt + \sigma\,dB - (1/2)\sigma^2\,dt so (d\log X)^2 = \sigma^2\,dt and \int_0^t (d\log X_s)^2\,ds = \int_0^t \sigma^2\,ds. Under a risk-neutral measure the par variance is \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 f we use a telescoping sum and Taylor’s theorem with remainder to get \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 R_j = (1/2)\int_{X_j}^{X_{j+1}} f'''(t) (X_{j+1} - t)^2\, dt. Note f(X_n) - f(X_0) is a European option payoff and f'(X_j) \Delta X_j is the cash flow at time t_{j+1} from purchasing f'(X_j) futures on X at time t_j. The quadratic term can be used to replicate a variance swap payoff.
If f''(x) = 2/x^2 then (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 + c where c is a constant, and f(x) = -2\log x + cx. It is convenient to choose c = 1/z for some constant z so -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 \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 R_j. The static hedge can be approximated with puts and calls using the Carr-Madan formula. If z = X_0 then the initial furtures hedge is zero.
The static hedge is -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\colon [0, \infty)\to\mathbf{R} is 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 (L_j) and calls with strikes (H_j) are available at t_n then given K we consider the piecewise continuous linear function \tilde{f} determined by by the points (L_j, f(L_j)), L_j < K, and (H_j, f(H_j)), H_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 K is chosen to be close to the at-the-money forward at option expiration.
The cubic term typically describes 95% of variance swap P&L over each period.
Since f'''(x) = -4/x^3 the error term R_j over the period [t_j, t_{j+1}] is R_j = (1/2)\int_{X_j}^{X_{j+1}} -4/t^3 (X_{j+1} - t)^2\, dt. Using t is between X_j and X_{j+1} we have \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}