VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
ACADEMY / Markets and trading sessions

Backwardation vs contango: roll gaps and continuous backtests

Contango means later futures trade above nearer ones; backwardation means they trade below. That difference becomes a jump at every roll in a continuous series, so check how your data handles rolls before you trust a backtest.

By · Published · updated · Editorial policy

Contents
  1. What do contango and backwardation mean?
  2. Why does a futures curve slope up or down?
  3. What happens to your chart at each roll?
  4. Back-adjusted or unadjusted: which continuous series should you backtest?
  5. Why does a back-adjusted series drift away from the spot price?
  6. What should you check before trusting a backtest across rolls?
  7. Frequently asked questions

Contango means later futures contracts trade above nearer ones or above spot. Backwardation means they trade below. In a continuous series, that difference shows up as a price jump on every roll date. Unadjusted data shows the jump as a fake move. Back-adjusted data removes it but changes past price levels.

What do contango and backwardation mean?

Contango and backwardation describe whether later futures prices sit above or below nearer ones. You can see this on a futures curve. A futures curve is a line that connects the prices of the same commodity or index for each delivery month, from the nearest contract to the furthest. The spot price is the price for delivery now. For an index future, the spot price is the index itself.

  • Contango is a market state in which later delivery months trade higher than nearer months, or the futures price trades above the spot price. The curve slopes up.
  • Backwardation is the opposite state, in which later delivery months trade lower than nearer months, or the futures price trades below the spot price. The curve slopes down.

Taiwan traders use two related terms. 正價差 means the futures price is above the index, which is the contango side. 逆價差 means the futures price is below the index, which is the backwardation side. In Taiwan these terms usually compare the near-month TAIEX futures contract with the TAIEX index itself, not two futures months with each other.

A curve does not have to be one shape. The first months can be in backwardation while later months are in contango. The shape can also change from week to week.

Normal backwardation is a different idea. Normal backwardation is an older economic theory which says the futures price tends to sit below the price traders expect the commodity to have at expiry, because hedgers pay speculators to carry their risk. The expected future price cannot be seen on any screen, so you cannot read normal backwardation off a chart. Many people use the phrase loosely to mean plain backwardation. When you read it, check which meaning the writer has in mind.

A hypothetical futures curve starting at the same spot price: in contango later delivery months trade higher and the curve slopes up, in backwardation later months trade lower and the curve slopes down Which way the curve slopes Hypothetical price by delivery month Spot Contango Backwardation The gap returns at every roll. So: know the slope before you test.
A hypothetical futures curve in contango (later months higher) and in backwardation (later months lower), both starting from the same spot price.

Why does a futures curve slope up or down?

The slope mostly reflects the cost of holding the underlying until delivery, minus what holding it pays you. Think of agreeing today on a price for a car you collect in a year. The seller has to store, insure and finance that car for a year, so the price for later delivery includes those costs. If the seller earns something from keeping the car, the price for later can be lower.

The cost of carry is the cost of holding the underlying until delivery, minus any income that holding it pays you. A simple form is:

Futures price ≈ spot price + financing cost + storage cost − income from holding

Here, the financing cost is the interest on the money tied up until expiry. The storage cost is warehouse and insurance fees, which matter for physical commodities and are zero for an index. Income from holding means dividends for a stock index, or the benefit of having a physical commodity on hand. When costs are larger than income, the curve is in contango. When income is larger, the curve is in backwardation.

CauseWhere it matters mostEffect on later contracts
Interest on the money tied upAll futuresPushes them higher (contango)
Storage and insurancePhysical commodities such as metals, energy and grainsPushes them higher (contango)
Dividends paid before expiryStock index futuresPushes them lower (backwardation)
Shortage of the physical good todayEnergy and agricultural marketsPushes them lower (backwardation)
Expected supply changes, such as a harvestAgricultural marketsCan push either way, month by month

The shortage case has its own name. Convenience yield is the benefit a business gets from having the physical commodity in hand now, for example a refinery that cannot stop running. When supply is tight, buyers pay more for delivery now than for delivery later, and the curve moves into backwardation.

For index futures, dividends are the usual cause of backwardation. If the dividends expected before expiry are larger than the interest cost, the future trades below the index. Many Taiwan companies go ex-dividend in the summer months, which is one reason 逆價差 on TAIEX futures often widens at that time of year.

What happens to your chart at each roll?

On every roll date, a continuous series jumps by the price gap between the old and the new contract. A continuous contract is a single price series built by joining individual futures contracts, switching from the expiring contract to the next one on a roll date. Data providers choose the roll date by a rule, for example a fixed number of days before expiry, or the day the next contract trades more volume.

In contango, the next contract is more expensive, so the series jumps up. In backwardation, the next contract is cheaper, so the series jumps down. No one traded that jump. It exists only because the series changed contracts.

Hypothetical example

An index future in backwardation. On roll day the expiring contract closes at 20,000 points. The next month trades at 19,900. An unadjusted continuous series drops 100 points from one bar to the next. A long position held through that bar shows a 100-point loss in the backtest. If one point is worth 200 in your account currency, the backtest books a false loss of 20,000. In a real account, you would have sold the old contract at 20,000 and bought the new one at 19,900, with no loss from the gap itself.

For TAIEX futures, the last trading day is the third Wednesday of the delivery month, so most rolls happen in the days before it. The TAIEX futures settlement dates tool lists these days, which tells you where to look for gaps in your data. Exchanges can change contract rules such as the last trading day, so check the exchange's contract page before you fix your roll dates.

A hypothetical roll where the next contract trades 100 points lower: unadjusted data shows a fake 100-point drop on the roll date, back-adjusted data shifts the older prices down so the line has no jump Roll gap: not a real move Hypothetical roll: next month −100 pts Unadjusted Back-adjusted Roll Roll Fake −100 No jump A roll is a switch, not a move. So: check how your data rolls.
The hypothetical roll above: unadjusted data shows a 100-point drop; back-adjusted data shifts the older prices so the line has no jump.

Back-adjusted or unadjusted: which continuous series should you backtest?

Use back-adjusted data for rules that react to price changes, and unadjusted data for rules that depend on real price levels. Many traders test on both. Back-adjustment is the process of shifting all prices before a roll by the size of the roll gap, so the series has no jump. There are two common ways to do it:

  • Difference adjustment adds the gap in points to every earlier price. In the example above, 100 points are taken off all prices before the roll.
  • Ratio adjustment multiplies every earlier price by the new price divided by the old price. In the example, every earlier price is multiplied by 0.995.
UnadjustedDifference-adjustedRatio-adjusted
Past prices are real traded pricesYesOnly for the latest contractOnly for the latest contract
Jumps on roll datesYesNoNo
Point moves inside each contractCorrectCorrectRescaled in older history
Percent moves inside each contractCorrectDistorted in older historyCorrect
Can show prices below zeroOnly if the market itself traded below zeroYes, after many large adjustmentsNo

A rule such as "buy when price crosses the 20-bar high" or "exit after a 50-point loss" depends on price changes. It suits difference-adjusted data. A rule that uses percent stops or percent returns suits ratio-adjusted data. A rule that uses fixed levels, such as round numbers or a price from a past year, needs unadjusted data, because back-adjusted levels in the past were never traded. The article on 台指全 and all-sessions TAIEX continuous data shows how this applies to Taiwan index futures.

Why does a back-adjusted series drift away from the spot price?

A back-adjusted series records what a trader who kept rolling would have gained or lost, and in contango or backwardation that differs from the spot move. Roll yield is the gain or loss a rolled futures position makes as each contract's price moves toward spot by expiry, separate from any change in spot itself. In contango, a long position loses roll yield. In backwardation, it gains roll yield, as long as the curve keeps its shape.

Hypothetical example

A commodity stays at a spot price of 70.00 for 12 months. Each month, the next contract trades at 70.50 and slides down to 70.00 by expiry. A long trader buys at 70.50, ends at 70.00, rolls into a new contract at 70.50, and repeats. After 12 rolls, the spot price has not moved, but the rolled position has lost about 6.00. The back-adjusted series shows this as a line falling from 76.00 to 70.00.

In a hypothetical contango market the spot price stays flat at 70.00 for 12 months while the back-adjusted futures series falls from 76.00 to 70.00, because each roll costs the long position 0.50 Flat spot, falling futures Hypothetical contango, 12 monthly rolls 76.00 70.00 Back-adjusted −6.00 Spot Spot data hides the roll cost. So: backtest futures on futures data.
In the hypothetical contango example, the spot price stays flat while the back-adjusted series falls, because each roll costs the long position 0.50.

This has two practical results. First, do not test a futures strategy on the spot index or spot commodity price. That data leaves out roll yield, which a futures position pays or receives. Second, compare long and short results with the curve history in mind. A long-only rule tested over years of steady contango carries a cost the chart of the spot price does not show. A rule tested over years of steady backwardation gets a tailwind that may not continue, because the curve shape depends on carry and supply, not on your rules.

What should you check before trusting a backtest across rolls?

Check that your results come from the market and not from how the data joins contracts. Work through these steps in order:

  1. Name your series. Write down which contract months it uses, its roll rule and its adjustment method: none, difference or ratio. If you do not know, ask the data provider before you test.
  2. List every roll date and gap size. Sort the gaps by size. The largest ones are where errors in the backtest will be largest. The article on backtest data quality: gaps, bad ticks, time zones and rolls covers how to find them.
  3. Inspect trades on roll bars. In unadjusted data, look at every entry, exit and stop that happened on a roll bar. A stop hit only by the roll gap is a trade that would not have happened.
  4. Run the same strategy on the other series type. Compare net result, trade count and maximum drawdown between unadjusted and back-adjusted data. Rules that read price changes should give similar results on both.
  5. Add the cost of each roll. A continuous backtest shows a trade held through a roll as one trade. A real account pays an extra exit and an extra entry. See trading costs in backtests for how to size commission and slippage per round trip.
  6. Test across different curve periods. Check results in periods of contango and of backwardation separately, for example inside and outside the dividend season for index futures. A strategy that works only in one regime depends on the curve shape.

In AlphaPrime (Valynox), you can run the same research settings on both versions of your continuous series and compare the two. AlphaPrime's backtesting applies fees, slippage, next-bar execution and your trading sessions to every candidate, so both runs use the same cost and timing assumptions. Strategy validation, including walk-forward analysis, then shows whether a strategy holds up across periods with different curve shapes. Results from the back-adjusted run and the unadjusted run can also sit in AlphaPrime's strategy databank, where search, sort and classification keep the two versions apart for comparison.

What this means if you use AlphaPrime: choose the continuous series that matches what your rules read, and test important strategies on both adjusted and unadjusted data. A strategy whose result depends on the roll method needs more work before you trust it.

Frequently asked questions

What is the difference between contango and backwardation?

In contango, later futures contracts trade above nearer ones, or futures trade above spot. In backwardation, later contracts trade below nearer ones, or futures trade below spot. The difference comes mainly from interest and storage costs on one side, and from dividends or a shortage of the physical good on the other.

Is backwardation bullish?

Backwardation does not tell you where price will go. It shows that holding the underlying pays more than it costs, often because of dividends or tight supply. A long futures position gains roll yield in backwardation only while the curve keeps that shape, and the shape can change.

What does 逆價差 mean in Taiwan futures?

逆價差 means the futures price is below the index, which is the backwardation side. 正價差 means the futures price is above the index, the contango side. On TAIEX futures, 逆價差 often appears when expected dividends before expiry are larger than the interest cost.

Should I backtest on back-adjusted or unadjusted futures data?

Use back-adjusted data for rules that read price changes, such as breakouts or point-based stops, because it removes fake jumps at rolls. Use unadjusted data for rules that use real price levels, because back-adjusted past prices were never traded. Testing on both shows whether the result depends on the roll method.

Does roll yield show up in a backtest?

Roll yield shows up in a back-adjusted futures series, because the series records what a trader who kept rolling would have experienced. It does not show up if you test on the spot index or spot commodity price. That is one reason to backtest futures strategies on futures data.