Futures Rollover Dates 2026 — ES, NQ, MES, MNQ, CL, GC and How to Handle It in Pine Script
Every quarterly expiration, the futures contract your Pine Script is trading ceases to be the liquid front-month contract. Volume migrates to the next quarterly. If your TradingView chart and broker account haven't rolled, your script is executing on a dying contract with widening spreads and thin fills — exactly the kind of bad execution that triggers drawdown limits.
What Is Futures Contract Rollover?
A futures contract is not perpetual like a stock. Every futures contract has a fixed expiration date built into its design — a specific Friday when the contract stops trading and any open positions must be closed or physically settled. For the equity index futures most prop firm traders use — the ES (S&P 500 futures) and NQ (Nasdaq-100 futures) — expiration occurs four times per year on the third Friday of March, June, September, and December.
The rollover process does not happen on the expiration date itself. It happens 7–10 days before expiration, when institutional traders — the volume that makes these contracts liquid — begin moving their positions from the expiring front-month contract to the next quarterly contract. Volume and open interest shift from, say, ESM26 (June 2026) to ESU26 (September 2026) around June 12 when ESM26 expires on June 20.
Once volume shifts, the old front-month contract becomes illiquid. Bid-ask spreads widen. Large orders move the market more than usual. Market orders get worse fills. For an algorithmic Pine Script strategy executing at market on a TradingView alert, trading the illiquid old contract after the roll means worse entry and exit prices, higher effective costs per trade, and an increased probability of triggering a daily loss limit simply from execution degradation rather than from adverse price direction.
Why Rollover Matters for Prop Firm Algo Traders
Prop firm evaluations are margin-thin exercises where the difference between passing and failing often comes down to 1–3 points of execution quality per session. Consider what happens when your script fires a long signal on the expiring ES contract after the volume has already shifted to the next contract:
- The bid-ask spread on ESH26 is now 2–3 ticks instead of the normal 1 tick — you're already $25–37.50 behind on entry for a single ES contract
- The stop calculation was based on recent price action, but the thin-market volatility is causing wider intraday swings — the stop gets hit by a spike that would not have occurred in a liquid contract
- The fill on the exit is worse than expected because there are fewer market participants on the old contract — partial fills and price slippage compound the day's P&L degradation
Any of these scenarios individually is tolerable. All of them together on a bad-luck day during rollover week, on a strategy that already has tight tolerances relative to the daily loss limit, can turn a marginal session into a daily limit breach. This is not hypothetical — prop firm traders who don't manage rollover systematically experience this regularly.
2026 Rollover Calendar — ES, NQ, MES, MNQ
| Contract | Expiration Date | Last Liquid Date (approx.) | Roll To |
|---|---|---|---|
| ES / MES | Mar 20, 2026 (Fri) | ~Mar 12–13 | ESM26 / MESM26 |
| NQ / MNQ | Mar 20, 2026 (Fri) | ~Mar 12–13 | NQM26 / MNQM26 |
| ES / MES | Jun 19, 2026 (Fri) | ~Jun 11–12 | ESU26 / MESU26 |
| NQ / MNQ | Jun 19, 2026 (Fri) | ~Jun 11–12 | NQU26 / MNQU26 |
| ES / MES | Sep 18, 2026 (Fri) | ~Sep 10–11 | ESZ26 / MESZ26 |
| NQ / MNQ | Sep 18, 2026 (Fri) | ~Sep 10–11 | NQZ26 / MNQZ26 |
| ES / MES | Dec 18, 2026 (Fri) | ~Dec 10–11 | ESH27 / MESH27 |
| NQ / MNQ | Dec 18, 2026 (Fri) | ~Dec 10–11 | NQH27 / MNQH27 |
2026 Rollover Calendar — CL (Crude Oil) and GC (Gold)
| Contract | Expiration Frequency | Typical Roll Timing | How to Check |
|---|---|---|---|
| CL (Crude Oil) | Monthly — every month | ~2–3 business days before expiration (around the 17th–19th of each month) | CME Group CL contract specs — check monthly |
| GC (Gold) | Bi-monthly — Feb, Apr, Jun, Aug, Oct, Dec | ~1 week before expiration of the active contract | CME Group GC contract specs — check before each active month |
CL and GC have more complex rollover schedules than equity index futures because they roll monthly (CL) or more frequently than quarterly (GC). If you're trading CL or GC on a prop firm evaluation, set a monthly calendar reminder to check the CME Group's official contract calendar and verify your chart symbol and broker account are on the correct front-month contract.
How to Handle Rollover in TradingView Pine Script
The answer to rollover management in Pine Script is simpler than most traders expect: use continuous contract symbols. TradingView provides continuous contract symbols that automatically roll to the next front-month contract when volume shifts:
- ES1! — S&P 500 E-mini futures (continuous)
- NQ1! — Nasdaq-100 E-mini futures (continuous)
- MES1! — Micro S&P 500 futures (continuous)
- MNQ1! — Micro Nasdaq-100 futures (continuous)
- CL1! — Crude oil futures (continuous)
- GC1! — Gold futures (continuous)
When you set your TradingView chart to ES1! instead of ESM26, TradingView's chart automatically displays the current front-month contract and seamlessly transitions to the next contract when rollover occurs. Your Pine Script logic runs identically before and after the roll — no code changes, no chart updates, no manual intervention required. The strategy just keeps running on the current liquid contract.
Continuous Contract vs Specific Contract — What's the Difference?
A specific contract symbol like ESM26 or NQU26 refers to a single, fixed quarterly contract. Once that contract expires, the symbol is no longer tradeable and TradingView's data stream for it ends. If your Pine Script is running on ESM26 when expiration arrives, alerts stop firing (or fire on a contract with no market), and your automation breaks until you manually update the symbol.
The continuous contract symbol (ES1!) is a TradingView construct that always points to the front-month contract. TradingView stitches together the historical price series from successive quarterly contracts to create a seamless price history — so your 200-day EMA or VWAP calculation runs on a clean, continuous dataset. The critical rule: always write your Pine Script to use ES1!, NQ1!, MES1!, and MNQ1!. Never hardcode a specific quarterly symbol into a strategy you intend to run longer than one quarter.
The one caveat: continuous contracts have a small price difference from specific contracts around rollover time due to the price "gap" between the expiring contract's last price and the new contract's first price. TradingView handles this transparently — the chart adjusts for the gap automatically. In live trading, your broker account is executing on the specific front-month contract (e.g., ESU26), not a "continuous" instrument — but your TradingView signal source (ES1!) stays synchronized with whatever the current active contract is.
The One Week to Watch — Rollover Week Risk Management
Even with continuous contract symbols configured correctly in TradingView, rollover week deserves special attention. In the week before quarterly expiration — typically the 7–10 calendar days before the third Friday of March, June, September, and December — market behavior changes in ways that can affect systematic strategy performance:
Volume distribution shifts. Total market volume is roughly the same, but it's split between the expiring front-month and the new back-month. Some signals generated by your script on ES1! may execute with slightly less depth than usual as the volume split creates temporary spread widening.
Roll-related price moves. Institutional traders rolling large positions can create atypical short-term price movements that don't reflect genuine directional conviction. An ORB breakout during rollover week may have slightly less follow-through than a typical breakout because part of the volume moving price is roll-related positioning rather than directional trading.
The practical recommendation: reduce your position size by 50% during the 5 trading days before each quarterly expiration. If you normally trade 2 MES contracts, trade 1 during rollover week. If you normally trade 1 ES contract, drop to 1 MES. Maintain the same strategy logic and signal conditions — just reduce size until the new front-month is fully established as the liquid contract.
Prop Firm Opportunity During Rollover Week
Some systematic traders actually see higher returns during rollover week due to increased overall volatility as institutional roll activity creates larger-than-average intraday ranges. ORB strategies in particular can benefit from wider opening ranges that, when they break, extend further than typical days. VWAP reversion trades can also see larger moves from VWAP when roll-related positioning creates extended deviations.
The approach that works best: run the strategy at reduced size as a risk management default, monitor the first 2–3 signals of rollover week, and scale back toward normal sizing if execution quality remains tight. If spreads are clearly widening or fills are notably worse, stay reduced for the week. If the market is trading normally despite the roll, normal sizing is appropriate.
Rollover Week Checklist
Before Each Quarterly Rollover
- Confirm your TradingView chart symbol is set to ES1!, NQ1!, MES1!, or MNQ1! (not a specific quarterly)
- Verify your TradersPost broker connection is configured for the current front-month contract at your broker (Tradovate/Rithmic should auto-roll — confirm with your broker)
- Reduce position size to 50% for the 5 days before expiration Friday
- Set a reminder for the "last liquid trading date" (~8 days before expiration) to monitor execution quality
- Confirm your daily kill switch is active and set correctly — rollover week execution variance makes the kill switch more important, not less
Get a Pine Script Built With Rollover-Proof Continuous Contracts
Every script we deliver uses ES1!, NQ1!, MES1!, and MNQ1! continuous symbols by default. No quarterly contract hardcoding — your strategy keeps running through every rollover without intervention.
View Pricing Plans Audit My Existing ScriptFrequently Asked Questions
What is futures rollover?
Futures rollover is the quarterly process where trading volume shifts from the expiring front-month contract to the next active contract. For ES and NQ, this happens ~8 days before the expiration date (third Friday of March, June, September, December). After the roll, the old contract loses liquidity — spreads widen and fills deteriorate.
When does the ES contract roll in 2026?
The ES rolls four times in 2026. The "last liquid trading dates" — when you should have rolled your chart and broker account — are approximately: March 12–13 (for the March 20 expiration), June 11–12 (for June 19), September 10–11 (for September 18), and December 10–11 (for December 18). Always confirm with the CME Group calendar, as exact dates can shift by one day due to holidays.
Should I trade during rollover week?
You can, but reduce position size by 50% and monitor execution quality. In the week before quarterly expiration, spreads can widen slightly and intraday volatility can behave atypically due to institutional roll activity. Full-size trading through rollover week is possible but introduces unnecessary execution risk during an evaluation where every tick counts.
How do I set up continuous contracts in TradingView Pine Script?
Use ES1!, NQ1!, MES1!, MNQ1!, CL1!, or GC1! as your chart symbol in TradingView. These symbols automatically track the current front-month contract and roll forward when volume shifts. Your Pine Script runs identically through every quarterly rollover without any code changes or manual chart updates.