Back-Adjustment — Why B-ADJ Should Be On for Structure
A rollover gap on a futures chart looks exactly like a real price move. It is not one, and treating it like one — or ignoring the setting that fixes it — quietly distorts every level and every indicator built on top of that chart.
The Gap Is Not a Market Move
When a futures contract rolls to the next one, the new contract typically opens at a different price than the expiring contract closed. This looks like a gap, and on a raw chart it displays exactly like one. It is not the market moving. It is the cost of carry — the interest rate and dividend expectations priced into the new contract over its remaining life — showing up as a price difference between two different instruments spliced together. Price did not move. The contract changed. On a standard continuous chart, this shows up as a sudden jump at the rollover date, and anything calculated over time absorbs it as if it were real: moving averages, ATR, any indicator smoothed across that boundary. Structure has the same problem — a swing that began before rollover and remains fully intact afterward looks broken on the raw chart, even though nothing about it actually changed.
What Back-Adjustment Actually Does
This is what the B-ADJ setting exists to fix. On TradingView, the button sits in the bottom right corner of the chart, and it is off by default — worth checking, since most charts are running without it. Back-adjustment stitches contracts together by shifting historical prices backward, removing the rollover gap and producing one smooth, unbroken price series. The tradeoff is real: the historical prices shown for the expired contract are not the prices that actually traded at the time. This is a synthetic chart, and it is worth knowing that going in.
Why the Adjusted Chart Is the More Relevant One
Despite being synthetic, the back-adjusted chart is usually the more useful one for structural work, and the reason comes down to what actually happens to a position at rollover. Long-term positions are not closed when a contract expires — they are transferred. A position in the expiring contract is closed and simultaneously reopened in the new contract at the same structural reference, calculated on the same percentage basis. Think of a trailing stop on a position that has run to significant profit: if the stop has trailed to a structural level, a pullback to that stop still leaves the position net positive. A rolled futures position works the same way. The new contract opens at a different price, but the stop is still anchored to the same structural reference — only the price axis shifted, not the map. This is also why systems built around structural and trend references do not treat a rollover gap the way they treat a genuine gap. A real gap represents actual participation: price moved there through real buying and selling. A rollover gap is a different instrument's price being connected to the previous one. The levels that carry real weight — the ones long-term positioning actually references — live on the adjusted chart.
When B-ADJ Belongs On, and the One Case It Does Not
For structural mapping, trend analysis, and most indicator work, B-ADJ should be on. Approaches built around support and resistance, trendlines, or indicator signals tend to perform better with it active, since the adjusted structure is what the market continues to reference going forward. The exception is any approach that depends on historically accurate entry and exit prices — for that specific purpose, the real, as-traded price matters more than a clean chart, and B-ADJ off may be the better fit. This is not something to assume either way. Backtesting the same approach with the setting active and inactive is the only way to know which one actually fits, and a cleaner-looking chart is not automatically the one that produces better results.
The Step Most Traders Skip After Toggling It
Turning B-ADJ on or off shifts every historical price on the chart, and it is easy to forget that existing drawings do not shift along with it. A trendline or a support level drawn before the toggle stays exactly where it was placed, now sitting against a price history that has moved out from underneath it. The result is a chart with structure that no longer matches its own price data. The reliable response, regardless of which setting gets used, is a fresh analysis: redrawing structure from scratch on the chart in its current state, rather than trying to carry old levels forward across the adjustment. It often surfaces things the previous map was quietly obscuring.
The Underlying Principle
A rollover gap is a difference between two contracts, not a market event, and the chart's job is to represent what participants are actually doing, not just what the raw price data happens to show. B-ADJ exists to keep those two things aligned. Getting it right is a five-second setting change. Getting it wrong quietly corrupts every level and every indicator built on top of the chart, without ever announcing that it happened.
The broader mechanics of rollover — timing, buffers, and volume verification — are covered in the related post.
TITradingView Ideas15 Sept