VIX Term Structure Trading: Contango, Roll and Vol Carry
VIX term structure trading exploits the shape of the VIX futures curve — the prices of volatility expectations at different expiries. Unlike trading the VIX index (which is not directly investable), futures and ETPs on the curve let you isolate vol carry: the return from rolling short-vol exposure as contango erodes long positions. This is one of the most studied systematic trades in quantitative finance, and one of the most dangerous for participants on the wrong side. This article covers the mechanics, the vol risk premium, and how to trade the curve systematically.
VIX futures are not VIX spot
The VIX index is a 30-day implied vol measure from SPX options. VIX futures are market expectations of where VIX will be at expiry — a forward, not a spot. The curve typically slopes upward (contango): longer-dated futures trade above shorter-dated.
VIX spot = 15
M1 future = 17 (near month)
M2 future = 19
M3 future = 20
A long VIX future position loses as time passes and the contract converges toward spot (if spot stays flat and curve is in contango). This is negative roll yield for longs, positive roll yield for shorts — the structural source of the volatility risk premium.
The roll yield math
Approximate daily roll cost for a long near-month VIX future:
daily_roll ≈ (F_near - VIX_spot) / days_to_expiry
Annualized:
roll_yield_ann ≈ (F_near / VIX_spot - 1) × (365 / days_to_expiry)
With VIX=15, M1=17, 20 days to expiry:
roll_yield_ann ≈ (17/15 - 1) × (365/20) ≈ 24% annualized cost to long M1
Short M1 earns this carry (minus tail risk). VIX ETPs like VXX that maintain long vol exposure bleed this continuously — which is why they are not "hedges" over months.
def vix_roll_yield(vix_spot: float, fut_near: float,
days_to_exp: int) -> float:
"""Annualized roll yield for LONG near future (negative in contango)."""
return (fut_near / vix_spot - 1) * (365 / days_to_exp)
# vix_roll_yield(15, 17, 20) → ~24% annualized drag on longs
Short vol carry as a systematic strategy
The trade: sell VIX futures (or short vol via options) and collect roll yield in contango, delta-hedged against SPX to isolate vol exposure. This is the inverse of buying protection — you are selling insurance.
Historical properties (US equities, 2004-2024):
- Positive average return in calm markets (collecting premium)
- Catastrophic left tail (VIX spikes 200%, 2020 COVID, 2022)
- Sharpe looks excellent in backtests; max drawdown is career-ending
Risk management is not optional:
| Control | Purpose |
|---|---|
| Vol targeting on sleeve | Scale down when realized vol rises |
| Max VIX level filter | Stop selling vol when VIX > 25-30 |
| Tail hedge (OTM puts) | Cap worst-day loss |
| Position limits | Never naked short unlimited vol |
| CVaR limits | Size by tail not mean |
See volatility targeting and stress testing with VIX +50% scenarios.
Calendar spreads on the VIX curve
Pure curve trade: long M2, short M1 (or vice versa). Profits when the curve flattens or steepens in the predicted direction, with less spot VIX exposure than outright futures.
calendar_pnl ≈ Δ(M2 - M1) × multiplier
In persistent contango, short M1 / long M2 earns roll differential. During vol spikes, the curve inverts (backwardation) — M1 > M2 — and calendar positions can flip violently. February 5, 2018 (volmageddon) destroyed short-vol ETPs when the curve inverted intraday.
VIX vs SPX implied vol spread
VIX should approximate SPX 30-day implied vol. When VIX futures trade above SPX implied vol (common in contango), the spread is a richness signal:
spread = F_near - IV_spx_30d
Selling the spread (short VIX future, long SPX vol via options) is a relative value trade tied to volatility arbitrage. Execution requires options market access and Greeks management.
ETP mechanics: why VXX bleeds
VIX ETPs (VXX, UVXY, SVXY) hold rolling futures positions, not spot VIX. Daily reset and roll schedule create path-dependent returns:
- Contango → daily decay for long-vol ETPs
- Backwardation → long-vol ETPs spike (often briefly)
- Leveraged ETPs (1.5x, 2x) → decay accelerates; not buy-and-hold instruments
Quant use of ETPs: short-vol ETPs (SVXY) as a convenience instrument for vol carry, not as a hedge. Size for the 80% drawdown, not the 15% average annual return.
Backtesting VIX curve strategies
Pitfalls specific to VIX:
- Settlement — VIX futures settle to a special opening quotation (SOQ), not last trade
- Roll dates — must model explicit roll, not continuous price series
- Liquidity — front month only before 2010s; back months were untradeable early on
- Circuit breakers — VIX can hit limit-up; backtests assuming fills at mid are fantasy
- Correlation to equities — short vol is implicitly long beta;
decompose equity vs vol P&L
Use event-driven backtesting with contract-level rolls and bid-ask on roll days.
Connection to broader vol trading
VIX term structure is one slice of volatility trading. Related systematic approaches:
- Variance swaps — pure vol exposure without roll (OTC)
- Dispersion — index vol vs single-name vol (dispersion trading)
- Skew trades — OTM put richness vs ATM (implied vol surface)
- GARCH forecasting — predict vol changes (GARCH)
The VIX curve trade is the most linear vol carry bet; the others isolate different dimensions of the vol surface.
Key takeaways
- VIX futures curve is usually in contango — longs bleed roll, shorts earn carry
- Short vol carry has positive mean return and catastrophic left tail — size for tail risk
- Calendar spreads isolate curve shape but invert violently in crises
- VIX ETPs are roll products, not spot VIX — path dependency matters
- Backtest with explicit rolls, SOQ settlement, and crisis scenarios
