← All ideas
#067NewRegime filterSwing

The VIX curve: contango, backwardation and exiting a volatility short

Alan Clement buys the index when the VIX curve returns from backwardation to contango and holds while contango lasts. Rob Hanna shorts VIX ETFs only in contango and exits on any of three signs of rising risk.

The Algorithmic Advantage · Alan Clement · Watch video

Markets

Indices, Futures

Timeframe

D1

Data

OHLC

Rules

Partly formalised

Difficulty

Hard

Status

Untested

Some rules were added by us and are marked in the text.

TradingView has pitfalls
EasyLanguage has pitfalls
MetaTrader 5 needs data or workarounds

Idea in brief

The VIX futures curve shows how much the market pays for volatility over different horizons. Usually longer-dated contracts are more expensive than near ones: uncertainty over three months is greater than over one. This is contango. In a sell-off, hedgers buy up near-term protection, the short end rises above the long end, and the curve moves into backwardation.

Alan Clement, a retail equities quant from Melbourne, waits for the curve to flip from backwardation back into contango. For Clement this is a sign that hedges are being lifted and a reason to buy the index. The position is held while the curve stays in contango. When volatility explodes, the strategy switches to the other side: long VXX.

Rob Hanna (Quantifiable Edges) looks at the same curve from the short volatility side. Shorting VIX ETFs is allowed only in contango, with an exit on any of three signs of rising risk. Variant C also comes from Hanna: the moment to short VIX is chosen by short-term overbought and oversold readings in the S&P 500.

Variant B is a volatility short. Its losses are rare but devastating, and position size matters more than the entry.

Why it might work

Clement explains the shape of the curve through hedging. Managers of large equity portfolios do not want to sell stocks in a decline, so they buy options or VIX futures. The short end of the curve rises. When the curve returns to contango, the protection is removed and a market rise is expected. According to the author, this produces a mean reversion entry that turns into a trend trade: contango lasts a long time, while VIX spikes are short.

Hanna explains the edge of the short through how VIX ETFs are built. The funds hold a position with an average maturity of about 30 days and roll part of their futures every day. In contango they sell the cheaper near contract and buy the more expensive far one, and the ETF price melts away over time. In backwardation the same mechanism pushes the ETF up. Hence Hanna's first exit. The second and third are simpler: VIX above 25 or 30, and VIX diverging noticeably from realized volatility over the past month.

Chicken and Egg reverses the usual order: not the S&P by VIX, but VIX by the S&P. If the index is strongly overbought, shorting VIX makes little sense, since a pullback is more likely ahead. If the index is strongly oversold on a short horizon, a bounce is likely, and this is a good moment to short volatility. The author gives the statistics in an article and a course, not in the interview. All explanations above are the authors' positions, and we have not verified them.

Rules

Curve regime

// daily closes
// Clement: Cboe constant maturity series for 9, 30 and 90 days (VIX9D, VIX, VIX3M)
Ratio = VIX / VIX3M                          // Finetiq: the author did not name the pair of points
Contango_C      = Ratio < 1 on two closes in a row   // Finetiq: protection against flickering around 1.0
Backwardation_C = Ratio > 1 on two closes in a row

// Hanna: first and second month of VIX futures
Contango_H      = VX2 > VX1                  // author: second month above the first
Backwardation_H = VX2 < VX1

Main rule. The index on a curve flip (Clement)

// instrument: SPY, S&P 500 future or a leveraged ETF              // author
IF position = FLAT AND Contango_C AND Backwardation_C was the last regime
    BUY INDEX AT NEXT BAR OPEN               // author: flip into contango = entry
IF position = LONG INDEX AND Backwardation_C
    EXIT AT NEXT BAR OPEN                    // author: hold while in contango

// author: long VXX when volatility explodes
IF Backwardation_C AND Ratio > 1.05          // Finetiq: "explosion" threshold
    BUY VXX AT NEXT BAR OPEN
IF position = LONG VXX AND Contango_C
    EXIT AT NEXT BAR OPEN                    // Finetiq

// author: sizing by the historical risk of the strategy as a whole, no numbers
IndexAlloc = 100% of capital, no leverage    // Finetiq; the author uses a leveraged ETF
VXXAlloc   = 10% of capital                  // Finetiq

Variant B. Short a VIX ETF in contango with three exits (Hanna)

// instrument: short VXX or the VX future    // author: VXX can be traded directly if done correctly
RV21   = StdDev(ln(SPX / SPX[1]), 21) * sqrt(252) * 100   // author: 21 trading days; Finetiq: formula
Spread = VIX - RV21

StepOut = Backwardation_H                    // author
          OR VIX > 25                        // author: "25 or 30"; Finetiq: 25 as a starting value
          OR Spread > 10                     // author: VIX versus realized; Finetiq: reading A, threshold 10 points
// Finetiq, reading B of the third trigger: Spread < 0, realized above implied

IF position = FLAT AND Contango_H AND NOT StepOut
    SELL SHORT VXX AT NEXT BAR OPEN
IF position = SHORT AND StepOut
    EXIT AT NEXT BAR OPEN                    // author: exit or reduce

// size: the author calls it the main element but gives no numbers
LossBudget    = 10%                          // Finetiq: share of capital you are willing to lose on one spike
Shock         = 2.0                          // Finetiq: stress scenario, VXX up 200% before the exit
ShortNotional = Equity * LossBudget / Shock  // = 5% of capital
recalculate ShortNotional once a week        // Finetiq: as VXX rises, the short's share of capital grows

Variant C. Chicken and Egg: timing the short by the S&P 500 (Hanna)

RSI_S = RSI(SPX, 2)                          // author: short-term RSI of the S&P; Finetiq: period 2

IF RSI_S < 10 THEN a new short from variant B is allowed   // author: oversold → bounce likely; Finetiq: 10
IF RSI_S > 90 THEN no new shorts                           // author: overbought → little edge in the short; Finetiq: 90

// author: when strongly overbought, long vol can be taken as protection for stocks
IF RSI_S > 90 AND the portfolio holds long stocks
   AND position = FLAT                       // Finetiq: not while a VXX short from variant B is open
    BUY VXX for 5% of capital AT NEXT BAR OPEN  // Finetiq: size
IF position = LONG VXX AND RSI_S < 50
    EXIT AT NEXT BAR OPEN                    // Finetiq
// short exits remain as in variant B
// Finetiq: position is shared by B and C, opposite positions in VXX are not allowed.
// While a long from C is open, a short from B is not opened: it also requires FLAT.
// If the stock hedge is needed even during a short, run it in a separate account and track the results separately.

Parameters

Parameter Value Source
Clement signal flip from backwardation to contango author
Clement curve points Cboe 9, 30 and 90-day series author
Slope pair VIX / VIX3M Finetiq
Regime confirmation two closes in a row Finetiq
Clement instrument index or leveraged ETF, long VXX on an explosion author
"Explosion" threshold Ratio > 1.05 Finetiq
Clement sizing 100% in the index, 10% in VXX Finetiq
Hanna regime second VX month above the first author
Exit 1 backwardation author
Exit 2 VIX above 25 (the author says 25 or 30) author, choice of 25 by Finetiq
Exit 3 VIX versus 21-day realized author
Exit 3 threshold reading A: above 10 points; reading B: below 0 Finetiq
Short loss budget 10% of capital on a 200% VXX rise Finetiq
RSI for variant C RSI(2), thresholds 10 and 90 Finetiq

What to test

  1. What the backwardation exit adds. The main rule versus buy-and-hold of the S&P 500 and versus a "price above the 200-day average" filter. According to the author, contango holds about 84% of the time, so the index is in the position most years. Count the drawdown avoided and the gain missed after each flip.
  2. Which pair of points. VIX / VIX3M, VIX9D / VIX, VX1 / VX2. For each, the number of flips per year and the share of false ones, when the curve flipped back within 5 days.
  3. Cost of confirmation. Entry the day after the first close in contango versus two and three closes in a row. The author talks about entering at the low or within one bar of it: see how much is lost with each day of waiting.
  4. Short triggers one by one. Variant B with each trigger alone and with all three. VIX threshold 20, 25, 30. Both readings of the third trigger. Metrics: worst day, worst 5 days, maximum drawdown. Separately February 2018 and February–March 2020.
  5. When the exit fills. Exit at the next day's open versus exit at the close of the signal day versus an intraday stop order on a 15% VXX rise. On the worst days the main move happens between two closes.
  6. Size and cost of the short. Shock 1.0, 2.0, 3.0 versus the maximum rise of VXX or VX1 over 1, 5 and 10 days in your data. If the historical rise exceeds Shock, the loss budget is breached. Account for the VXX borrow cost.
  7. Chicken and Egg. The result of a VIX ETF short after 1, 3 and 5 days following an S&P RSI(2) below 10 and above 90, versus all days in contango. If the groups do not differ, the filter only reduces the number of trades.

Platform notes

TradingView (Pine Script)

  • VIX without lookahead: request.security("CBOE:VIX", "D", close[1], lookahead = barmerge.lookahead_on). VIX3M and VIX9D are also published by Cboe, check the ticker in symbol search. Their history is shorter than that of VIX.
  • Continuous first and second month series (the 1! and 2! notation) are stitched at expiration. A few days before expiration the front contract almost equals spot VIX, and the comparison with the second month changes meaning. Check on which day the data provider switches both series.
  • A strategy trades only the chart symbol. The index and VXX, as Clement uses them, cannot be combined in one strategy: run two strategies and add up the equity curves outside TradingView.
  • VXX prices are adjusted for reverse splits. Early bars show levels at which nobody traded. Calculate size as a share of capital.

MultiCharts and TradeStation (EasyLanguage)

  • VIX and VIX3M are added as Data2 and Data3, and orders go only to Data1. In TradeStation the VIX index is usually $VIX.X, other symbols depend on the data provider.
  • The daily close time differs between the VIX index and the VX future, and the future's daily bar in TradeStation closes at settlement. Compare the curve using series with the same timestamp.
  • The second VX month is needed as a separate continuous series. If the provider does not have it, build it from individual contracts with a roll rule that is the same for both months.
  • A VXX short backtest knows nothing about borrow cost, share recalls or margin increases. Add them manually. Index and VXX together: Portfolio Trader in MultiCharts or Portfolio Maestro in TradeStation.

MetaTrader 5 (MQL5)

  • Most brokers do not have spot VIX, VIX3M or VXX. If a VIX symbol exists, it is usually a CFD on the future with its own rolls, and the VIX ETF edge has to be tested on it from scratch.
  • For testing, the curve can be loaded as custom symbols (CustomSymbolCreate, CustomRatesUpdate). Live trading needs an external quote source.
  • A short volatility CFD carries swap and a spread that widens in a sell-off, exactly when the exits fire.
  • Take the curve signal from the closed daily bar (shift 1). The broker's daily bar closes on server time, not at the Cboe close.

Where the idea can break

  • A volatility short loses rarely but heavily. In February 2018 the inverse VIX ETN XIV lost almost all its value in one evening and was shut down by the issuer. Hanna says directly that such events wiped people out, and that a short in a 2x product can at any moment move 5-10 times against the position.
  • All three exits are calculated on daily closes. A spike happens intraday or between closes, and an exit at the next open will come after most of the loss. A stop order does not protect against a gap.
  • The loss budget in variant B rests on our assumption about spike size. The next spike may be larger than any in history, and then the loss will exceed the budget.
  • During a spike the broker may raise margin or recall shares for the short. The position will be closed forcibly at the worst moment.
  • The sample is short. VIX futures have traded since 2004, VXX since 2009. There are only a few large spikes in this window, and one day can wipe out years of accumulated results.
  • The data is stitched. According to Hanna, the current VXX in Norgate starts in January 2018, the old one lived from February 2009 to January 2019, and long histories of 2x ETFs are reconstructed after the fact. Products that went to zero dropped out of the lists, and a test on survivors flatters the short.
  • The thresholds are imprecise. Hanna says "25 or 30", the direction of the third trigger does not clearly follow from Hanna's words, and Clement does not name the pair of curve points. All these values are ours.
  • Clement's main rule simply holds the index most of the time. The advantage over buy-and-hold may turn out small. The leveraged ETFs the author uses lose from daily rebalancing in a sideways market.
  • Both authors sell courses and newsletters. The interviews contain no statistics for these rules.

Sources

  • 010 - Alan Clement - Fortified & Diversified Quantitative Equities Strategies

    The Algorithmic Advantage · Alan Clement · 2023-12-05

    • 51:52VIX and the futures curve as a regime filter
    • 58:20Trading volatility: positioning on volatility expectations
    • 59:03The short end of the curve is driven by portfolio hedgers
    • 59:51Flip from backwardation to contango: hedges are lifted
    • 1:00:06Mean reversion entry, held like a trend
    • 1:00:40Contango about 84% of the time
    • 1:01:44Entry at the low or within one bar of it
    • 1:01:55Data: Cboe 9, 30 and 90-day series
    • 1:02:59SPY or a leveraged ETF
    • 1:03:22COVID: the strategy trades both sides, long VXX
    • 1:04:09Profitable on its own, long vol can serve as a hedge
    • 1:04:45Sizing by the strategy's historical risk
  • 045 - Rob Hanna - Trading the VIX in a Diversified Portfolio

    The Algorithmic Advantage · Rob Hanna · 2025-12-03

    • 40:04Can VIX ETFs be traded without analyzing the curve
    • 41:02A short in a 2x ETF can move against you 5-10 times
    • 41:51Two main things: size and exiting when risk rises
    • 42:19Contango and backwardation: second month versus first
    • 44:43VIX ETF roll: decay in contango, rise in backwardation
    • 45:32Trigger 1: switch to backwardation
    • 45:49Trigger 2: VIX above 25 or 30
    • 45:57Trigger 3: VIX versus 21-day realized volatility
    • 47:24Chicken and Egg: timing VIX with the S&P 500
    • 48:04S&P overbought or oversold
    • 49:20Short-term RSI of the S&P 500
    • 50:14VIX ETF data: reconstructed series and two VXX series
    • 51:41Norgate: VXX since January 2018, the old one 2009-2019

Author's claims

These figures and statements are the author's. We have not verified them.

  • Clement: the VIX futures curve is in contango about 84% of the time.
  • Clement: a flip of the curve usually gives an entry at the market low or within one bar of it. So the position's risk is small, and Clement expresses the position through a leveraged ETF.
  • Clement: the strategy trades both sides, long the index when volatility contracts and long VXX when it explodes. In the COVID crash of March 2020 it performed very well, according to Clement. Clement considers it profitable on its own and weakly correlated with Clement's other systems.
  • Hanna: a 2x ETF on rising VIX (UVIX), in a history reconstructed back to 2004, would have started at around a notional $2 trillion adjusted for splits and now trades at around 10-12. A short in such a product can at any moment move 5-10 times against the position.

Related ideas

Updated: 2026-09-11