Education

Futures Contract Rollover: When and How to Roll ES and NQ to the Next Expiration

Cameron Bennion
·
2026-01-14
·
6 min read
ES and NQ futures contracts expire on a quarterly cycle — the third Friday of March, June, September, and December. The specific contract you trade (identified by its expiration month and year, such as ES 03-26 for the March 2026 contract) stops trading at 9:30 AM ET on its expiration date. Understanding the rollover process — when volume shifts to the new contract, how to update your charts, and what happens to historical data during the transition — is essential operational knowledge for anyone trading ES or NQ futures actively. ## The Quarterly Expiration Cycle Both ES and NQ use the March quarterly expiration cycle (H = March, M = June, U = September, Z = December). The contract codes: - ESH26 = ES March 2026 - ESM26 = ES June 2026 - ESU26 = ES September 2026 - ESZ26 = ES December 2026 At any given time, two contracts are actively traded: the front month (current active contract) and the next quarter (deferred contract). Volume is almost entirely concentrated in the front month until rollover week. ## When Does Rollover Happen? The standard rollover occurs on the Thursday before the third Friday of the expiration month, approximately 8 days before expiration. On that Thursday, institutional traders — primarily index funds and arbitrageurs managing basis positions — begin rolling in large size. By Thursday afternoon, volume in the new contract typically equals or exceeds the expiring contract. For day traders, the practical rule: **switch to the new contract on the Thursday of rollover week**, not on the expiration Friday. Here is why: On rollover Thursday, the new contract becomes the "fair" market. Price discovery, liquidity, and bid-ask spreads are all tightest in the new contract. The expiring front month retains some volume through Friday morning's final session, but trading the deferred month provides: - Tighter spreads (better fills) - Deeper liquidity (larger orders without market impact) - Accurate VWAP and volume profile representation (because most volume is now in the new contract) Trading the expiring contract on Friday while holding through the 9:30 AM expiration creates the risk of automatic exercise or settlement at prices that may not reflect your intended exit. ## How to Update Your NinjaTrader Charts When the front month changes, every chart, indicator, and automated strategy that references the old contract needs to be updated. **Manual chart update:** 1. Right-click the instrument display on the chart 2. Select "Data Series" or the instrument name 3. Change the contract month (e.g., from ES 03-26 to ES 06-26) 4. Confirm the chart reloads with the new contract's data **Using the Continuous Contract:** NinjaTrader supports a continuous contract notation (e.g., @ES#) that automatically rolls to the active front month. For charts used primarily for visual analysis (not strategy execution), the continuous contract simplifies rollover — you never need to manually update the instrument. However, automated strategies and orders should reference specific contracts for the current session to avoid unexpected behavior when the continuous contract updates at rollover. Most prop firm traders use specific contract notation for live trading and reserve the continuous contract for backtesting and historical charts. **Template approach:** Create a NinjaTrader workspace template that includes all your charts and DOM configurations. Each rollover quarter, update the template with new contract symbols and save as the active workspace. This takes 10-15 minutes once and ensures all tools update together rather than discovering a missed chart mid-session. ## The Basis and Fair Value Adjustment The new contract trades at a slight premium or discount to the expiring contract due to the cost-of-carry relationship (known as "fair value"). This is not a price discrepancy — it reflects the time value of holding the contract through the next quarter. Specifically: the June ES contract will trade slightly above the March contract when March is still active. The difference is the "basis" — the cost of financing the underlying index position from March to June (interest cost) minus any dividends paid by the S&P 500 components during that period. When your charts switch from March to June contracts, all historical price levels shift by the basis amount. A KPL at 5,850 in the March contract will appear at approximately 5,858 (or whatever the exact basis is) in the June contract's data. This has a practical implication: levels drawn on your March chart do not port directly to your June chart. You need to account for the roll adjustment when carrying forward levels. The standard approach: draw your key levels fresh on the June chart using the June contract's data starting from rollover week, rather than attempting to adjust March levels by the basis amount. ## What Happens to Automated Strategies at Rollover If you run automated strategies in NinjaTrader (including the YMI KPL bot or Marty strategy), the instrument reference in the strategy must be updated to the new contract at rollover. Check the following on rollover Thursday: 1. All active strategies reference the new contract, not the expiring one 2. Any open positions in the expiring contract are closed before the automated strategy begins operating on the new contract 3. Strategy performance tracking and P&L calculations reset correctly at the new contract start Some NinjaScript strategies include contract auto-roll logic that detects when the active front month changes. For those without this logic, manual updating on rollover Thursday is required. Missing this update means a strategy continues sending orders to an increasingly illiquid expiring contract — resulting in poor fills and potentially missed trades. ## Rollover and Historical Data for Backtesting For backtests spanning multiple years, NinjaTrader's Continuous Contract uses back-adjustment to splice quarterly contracts into a single price series. The adjustment methodology applies a fixed offset at each roll date so that historical prices align without artificial gaps. The consequence: absolute price levels in back-adjusted continuous contract data do not match the actual traded prices at historical dates. A backtest that relied on a specific price level (e.g., "enter when price reaches 4,500") in back-adjusted data may reference a price that never actually existed in any specific contract. For most strategy backtests that rely on price relationships (e.g., moving average crossovers, percentage moves, ATR-based levels) rather than absolute price levels, back-adjusted continuous data is appropriate and accurate. For strategies that reference specific price levels, be aware that back-adjusted historical prices are not the same as prices that were actually traded. ## Quick Reference: Rollover Calendar ES and NQ quarterly rollover dates (Thursday before third Friday of expiration month): - March rollover: Thursday, approximately March 13th - June rollover: Thursday, approximately June 12th - September rollover: Thursday, approximately September 11th - December rollover: Thursday, approximately December 11th Mark these dates in your trading calendar at the start of each year. Missing a rollover update mid-session is an avoidable error that can affect fills, indicators, and strategy execution. The five-minute maintenance task on rollover Thursday morning prevents this.
Tags:

About the Author

Cameron Bennion

Founder, Young Money Investments · Quant Trader

Cameron has 18+ years of live market experience trading ES, NQ, and futures. He founded Young Money Investments to teach systematic, data-driven trading to everyday traders — the same quantitative methods used at his hedge fund, Magnum Opus Capital. His members have collectively earned $50M+ in prop firm funded accounts.

18+ Years Trading ExperienceHedge Fund Manager — Magnum Opus Capital$50M+ Funded for MembersNinjaTrader SpecialistFutures: ES · NQ · RTY · CL · GC
Trade with Cameron's systems:7-Day Free Trial →

Free — No Credit Card

Get Daily KPLs in Your Inbox

AI-generated Key Price Levels for ES & NQ, delivered every trading morning. Join 500+ traders who start their session with a plan.

🔒 Your information is secure. We respect your privacy and will never spam you.

Risk Disclosure & Disclaimer

Educational Purposes Only: The content provided in this blog is for educational and informational purposes only. It does not constitute financial, investment, or trading advice. Young Money Investments is not a registered investment advisor, broker-dealer, or financial analyst.

Risk Warning: Trading futures, forex, stocks, and cryptocurrencies involves a substantial risk of loss and is not suitable for every investor. The valuation of futures, stocks, and options may fluctuate, and as a result, clients may lose more than their original investment.

CFTC Rule 4.41 - Hypothetical or Simulated Performance Results: Certain results (including backtests mentioned in these articles) are hypothetical. Hypothetical performance results have many inherent limitations. No representation is being made that any account will or is likely to achieve profits or losses similar to those shown. In fact, there are frequently sharp differences between hypothetical performance results and the actual results subsequently achieved by any particular trading program.

Testimonials: Testimonials appearing on this website may not be representative of other clients or customers and is not a guarantee of future performance or success.

Ready to Apply These Strategies?

Join 500+ traders using YMI's automated bots, daily KPLs, and AI trade plans to trade systematically.

Intro Trader includes a 7-day free trial • 30-day money-back guarantee on all tiers