Futures Curve Trading: Roll Yield, Contango and Backwardation

Futures curve trading exploits the shape of the term structure — the relationship between prices of the same underlying at different expiries. Unlike directional bets on spot, curve trades isolate roll yield: the return from holding a futures position as time passes and the contract rolls toward spot. In commodities, equity indices, rates, and crypto dated futures, the curve shape encodes carry, storage costs, convenience yield, and funding demand. This article builds the accounting, shows when curve trades earn and when they bleed, and connects to carry and basis arbitrage.

The curve in one equation

For a futures price F(t,T) at time t for delivery at T, define the annualized basis:

basis(t,T) = (F(t,T) - S(t)) / S(t) × (365 / days_to_expiry)
  • Contango: F > S, basis > 0 — longs pay roll yield (lose on roll)
  • Backwardation: F < S, basis < 0 — longs earn roll yield (gain on roll)

The total return of a long futures position decomposes as:

R_futures = R_spot + R_roll
R_roll   ≈ -basis × (holding_days / 365)    (simplified, continuous roll)

Curve traders often go long backwardation (earn roll) or short contango (collect roll from shorts in commodities with storage costs). The sign depends on the asset class.

Roll yield by asset class

Asset classTypical curve shapeWho earns rollMain driver
Commodities (oil, gas)Contango (storage cost)ShortsStorage, convenience yield
GoldNear-flat to contangoShorts (mild)Carry cost of metal
Equity index futuresContango (financing)ShortsDividend + rate differential
VIX futuresPersistent contangoShortsVol risk premium
Crypto dated futuresVariableDepends on funding demandLeverage demand, basis
Rates (SOFR, Euribor)Upward slopingLong front, short back (curve trades)Term premium

The same math applies everywhere; the economic driver differs. Trading the curve without knowing why it is shaped that way is how commodity ETFs bleed 5-10% per year in contango while the spot price is flat.

Calendar spreads: the pure curve trade

A calendar spread is long one expiry and short another on the same underlying:

spread = F_near - F_far    (or the reverse, by convention)

P&L comes from the change in the spread, not from spot direction (approximately delta-neutral if betas are matched). Example: long crude M1, short crude M6. If the curve flattens (contango narrows), the spread trade profits even if spot is flat.

def roll_yield_approx(spot: float, front: float, back: float,
                      days_front: int, days_back: int) -> dict:
    """Annualized roll yield for long front / short back calendar."""
    basis_front = (front - spot) / spot * (365 / days_front)
    basis_back  = (back - spot) / spot * (365 / days_back)
    # Long front earns: -basis_front; short back pays: +basis_back
    net_roll = -basis_front + basis_back
    return {
        'basis_front_ann': basis_front,
        'basis_back_ann': basis_back,
        'net_roll_ann': net_roll,
    }

# Spot=80, M1=82 (30d), M6=85 (180d) — contango steepening
r = roll_yield_approx(80, 82, 85, 30, 180)
# Long M1/short M6 loses if back contango > front (curve steepens against you)

The roll mechanism and index products

Passive long futures exposure (commodity ETFs, VIX ETPs) rolls from near to far contract on a schedule. In contango, each roll sells low (expiring) and buys high (next month) — a mechanical loss called negative roll yield. This is not a bug; it is the price of convex exposure without storage.

Quantitative approaches:

  1. Roll optimization — choose roll dates and target contracts to minimize roll cost

(e.g., roll when contango is flattest, not on a fixed calendar)

  1. Curve selection — hold the contract with the best roll yield on the curve, not

always front month

  1. Spread overlay — hedge contango with a calendar spread that profits from curve

flattening

See futures basics for margin and contract specs.

Equity index futures: implied repo and dividends

Index futures trade at:

F = S × exp((r - d) × T)

where r is the risk-free rate and d is the dividend yield. Contango reflects financing minus dividends. Basis trades (long index, short futures) lock in the implied repo rate — a form of classical arbitrage when basis deviates from fair value due to dividend uncertainty or balance-sheet constraints.

Crypto futures curve

Crypto dated futures (CME, Deribit, exchange quarterly) embed funding demand and interest rate arbitrage premia. The perpetual funding rate and the dated basis are linked: when perp funding is high, dated futures often trade at premium. Curve trades include:

  • Long spot / short dated future when basis > borrow + fees (cash-and-carry)
  • Calendar spread on quarterly vs monthly when term structure is kinked
  • Cross-venue basis when the same expiry trades at different prices

Transfer latency and counterparty risk are the binding constraints, not the math.

Risk management on curve trades

Curve trades are not delta-neutral in practice:

  • Basis risk — the spread can move against you faster than roll accrues
  • Liquidity — back months have wider spreads; slippage on rolls eats roll yield
  • Curve regime shifts — OPEC announcement, VIX spike, or rate shock reshapes the

entire curve in hours

  • Margin — calendar spreads have reduced margin but tail events can still force

liquidation

Size by the worst historical spread move in your holding window, not by spot vol. Use stress testing with "curve steepening 2 sigma" scenarios.

Backtesting curve strategies

Common biases:

  • Roll assumption — backtests that assume you roll at settlement price ignore

intraday slippage on roll days

  • Survivorship in contract chains — use continuous contract series with explicit

roll rules, not spliced prices that hide roll cost

  • Liquidity filtering — back-month contracts may have been untradeable at historical

sizes

Event-driven backtesting (event-driven vs vectorized) is preferable: model each roll as an explicit trade with bid-ask and impact.

Key takeaways

  • Futures returns = spot return + roll yield; curve shape determines the split
  • Contango bleeds longs on roll; backwardation pays longs — know which side you are on
  • Calendar spreads isolate curve risk from spot direction
  • Roll optimization and spread overlays can recover contango bleed in passive products
  • Backtest rolls explicitly with costs — hidden roll assumptions inflate Sharpe
#futures curve #roll yield #contango #backwardation #term structure trading