Back to blog
methodology

How to build a continuous futures chart

26 August 2026 7 min read

Quick answer

A continuous futures chart stitches consecutive contract months into one series, then adjusts away the price gap left at each roll. Difference adjustment shifts all earlier prices by the gap in points, which preserves the absolute moves but changes every historical percentage; ratio adjustment multiplies all earlier prices by the ratio of the two contracts, which preserves the percentages but changes the point moves. Use difference adjustment when the chart is about contract profit and loss and ratio adjustment when it is about returns, and remember that an adjusted price level is no longer a price anyone could have traded at.

A continuous futures chart is several contract months stitched into one price series, with the gap at each roll adjusted away. The stitching is trivial. The adjustment is the whole job, and there is no neutral option: difference adjustment shifts every earlier price by the gap in points, which keeps the absolute moves intact and quietly rewrites every historical percentage, while ratio adjustment multiplies every earlier price by the ratio between the two contracts, which keeps the percentages intact and rewrites every point move. Pick by what the chart is for, then print the choice on the chart, because a reader cannot recover it from the picture.

Why one contract is never enough

A futures contract has a finite life. The December crude contract exists for a while, becomes the most liquid month for a few weeks, then expires. If you want ten years of crude on one chart, no single contract can supply it, so you take the front month, follow it until liquidity moves on, then switch. That is different from a forward curve, which slices the other way: the curve shows every expiration as it stands on one date, while a continuous series shows one position through time.

The roll gap, and the return nobody earned

Take an illustrative market in contango. The front contract trades at 68.00, then 69.20, then 70.00 on the day you roll. The next contract is trading at 72.50 that same day, and it goes on to 73.10.

Concatenate them raw and the series reads 68.00, 69.20, 70.00, 72.50, 73.10. Between the third and fourth points your chart shows a jump of 2.50, a one-day gain of 3.571 percent. Nobody made that money. Both contracts were quoted at those prices simultaneously; the only thing that changed is which one you are looking at. Run a returns calculation over the raw series and you have manufactured a fictional profit at every roll, which is why unadjusted stitching is fine for eyeballing where prices are and useless for anything quantitative.

Difference adjustment and ratio adjustment, on the same numbers

Both methods work backwards from today, leaving the current contract's real prices alone and moving history to meet them. The gap here is 72.50 minus 70.00, so 2.50 points, and the ratio is 72.50 divided by 70.00, so 1.0357143.

Difference adjustment adds 2.50 to every price before the roll, giving 70.50, 71.70, 72.50, then 72.50, 73.10. Ratio adjustment multiplies them instead, giving 70.4286, 71.6714, 72.50, then 72.50, 73.10. Both close the seam perfectly. Now look at what each did to the very first move in the series, which really was 68.00 to 69.20: a gain of 1.20 points, or 1.7647 percent.

In the difference-adjusted series that move is 70.50 to 71.70. Still 1.20 points, but now 1.7021 percent. In the ratio-adjusted series it is 70.4286 to 71.6714: still 1.7647 percent, but now 1.2428 points. Each method preserves exactly one of the two things and sacrifices the other, and it does so silently. The distortion compounds the further back you go, because every roll applies another adjustment on top of the last.

Which one to use depends on the question

If the chart is about a position, use difference adjustment. A futures contract pays out in points multiplied by a fixed contract size, so the point move is the profit and loss, and the difference-adjusted series is the one whose vertical moves match what the account actually did.

If the chart is about returns, use ratio adjustment. Anything that consumes percentage changes, volatility, correlation, drawdown, a rolling Sharpe ratio, needs the percentages to be the real ones, and only the ratio-adjusted series has them. A difference-adjusted series will hand a volatility model returns that were never observed, and the error is largest in the oldest data where the cumulative shift is biggest.

Percentage indicators sit in the same trap. A moving average or a Bollinger band computed on a difference-adjusted series is drawing on levels that have been moved wholesale, so any rule expressed as a percentage of price behaves differently in 2016 than it does today on the same chart.

An adjusted level is not a price

This is the part that catches people who did everything else right. Once history has been shifted, the numbers on the y-axis in the older part of the chart are no longer quotes. You cannot read a support level off them, you cannot say the market traded at that number on that date, and you cannot compare them to a headline from the time. Only the most recent segment, the one belonging to the contract you never adjusted, carries real prices. If someone needs to know where the market actually was, they need the unadjusted series alongside, which is why plenty of desks keep both and label them clearly.

In a persistently backwardated market the drift runs downward and the arithmetic gets blunt about it. Forty rolls at an average gap of 1.10 points against you subtracts 44.00 from everything older than that, so a contract that genuinely traded at 30.00 prints at minus 14.00. That is not a data error, it is the method working as designed, and a chart with negative prices on the left is a normal difference-adjusted series rather than a broken one. Say so in the caption before someone files a bug.

Ratio adjustment has the opposite failure. It cannot survive a zero or a negative price anywhere in the series, because the whole method is multiplication by a ratio. That stopped being hypothetical on 20 April 2020, when the expiring NYMEX WTI contract settled below zero at around minus 37.6 dollars a barrel, the first negative settlement in the contract's history according to the US Energy Information Administration. Any ratio-adjusted crude series that spans that date needs an explicit rule for it, and most implementations fall back to difference adjustment across that roll.

The roll date is a choice, and it is why two charts disagree

Nothing above tells you when to switch contracts, and the answer changes the chart. The common conventions are a fixed number of business days before expiration, the first day of the expiration month, first notice day for physically delivered contracts, and a liquidity rule that rolls on the day volume or open interest in the deferred month overtakes the front. The liquidity rule tracks where trading actually is, which matters most in agricultural and energy markets with no clean calendar habit; a fixed rule is reproducible, which matters if anyone has to rebuild your series.

Pick one, then treat it as part of the data definition rather than a setting. Two vendors publishing continuous crude with different roll rules will show different levels, different percentage moves and, over a decade, visibly different charts, and neither is wrong. When a number will not reconcile against someone else's, the roll convention is the first place to look, not the last.

[QUADESTO-EMBED: continuous front-month series with a method toggle for unadjusted, difference-adjusted and ratio-adjusted, roll dates marked on the axis, and a caption stating the roll convention and adjustment in force]

Building it in Quadesto

Hand Quadesto a set of individual contract series and it builds the continuous chart with the roll rule and the adjustment method you name, marks each roll on the time axis, and carries both onto the chart itself so the reader knows which series they are looking at, including the candlestick and volume view built on the same stitched data. The free tier embeds it live with a Made with Quadesto credit; Pro at 149 pounds a month removes the attribution and adds branded themes.

Ready to try Quadesto?

Connect your data. AI builds the charts. Embed anywhere.

Get Started Free
continuous futuresback-adjustedcontract rollfuturesprice series