Charting Tips
Reading Continuous Futures in TradingView: Handling Roll Gaps
Search a futures instrument and you'll see a code with an exclamation mark: ES1!, CL2!. Understand this naming and the roll mechanism behind it, and futures charts stop "misleading" you.
Code convention
| Notation | Meaning |
|---|---|
ES1! | S&P 500 futures front continuous contract (most active / nearest month) |
ES2! | Second continuous contract (next expiry) |
ESM2026 | A single contract for a specific expiry (June 2026) |
Where the roll gap comes from
A continuous contract is stitched from one expiring contract to the next. Old and new contracts carry a price spread (carry cost, dividend expectations), so the chart shows a jump on the roll date where "no trade ever happened." Trading it as a real gap is the classic futures-chart trap.
The back-adjust switch
Chart settings let you enable back-adjustment: shift history to remove the stitch spread. Two modes, two uses:
- Adjust on: candle patterns stay continuous — good for technicals and backtests — but historical "price values" are no longer the actual traded prices;
- Adjust off: prices are real, good for reading absolute historical levels (cost zones, policy levels), at the cost of a false gap at each stitch.
Practical advice
- For patterns and backtests: turn on back-adjust and use
1!; - Near delivery, volume migrates to the new front around the roll, so intraday traders get a cleaner picture on the specific-month contract;
- For calendar-spread trading, open two charts comparing
1!and2!— desktop linked windows are made for this.
Tip: continuous-contract rules differ slightly by data provider. Before migrating analysis across providers, reconcile a few bars on a small timeframe first.