Futures Contract Rollover: Expiration, Roll Week and Charts
How futures expiration and rollover work: the H, M, U, Z quarterly cycle, roll week, volume migration, continuous charts like NQ1! vs specific contracts, and automated alerts.
Unlike a stock, which you can hold for years, every futures contract has an expiration date. A trader who wants to stay in the market has to move from the expiring contract to the next one, and even a pure day trader needs to know which contract he is in. This article explains how the cycle works, what happens during roll week, and why it is especially critical when your alerts are automated.
Why contracts expire
A futures contract is an agreement for a specific date. When that date arrives, the contract settles: in physically delivered contracts the asset changes hands, while index contracts such as ES and NQ settle in cash against a final settlement price. After expiration the contract simply ceases to exist.
So at any moment several contract months trade side by side, each with its own price. The difference between them mainly reflects interest rates and expected dividends up to expiration, which is why different months do not trade at the same price. General background on contract structure is in futures contracts basics.
The quarterly cycle: H, M, U, Z
CME Group equity index futures such as ES, NQ, MES and MNQ have four contract months a year, each with a letter code:
| Code | Month |
|---|---|
| H | March |
| M | June |
| U | September |
| Z | December |
A full contract symbol combines the product symbol, the month code and the year digit, sometimes two digits depending on the platform. For example, NQZ6 is the Nasdaq-100 contract for December 2026. Index futures typically expire on the third Friday of the contract month, but the exact date is in the exchange's calendar, and it is always worth checking there.
Other products, such as crude oil, gold or currencies, follow different cycles, sometimes monthly. Do not assume an index cycle applies to every contract.
Roll week and volume migration
Most traders do not wait for expiration day. A few days before, usually about a week ahead, liquidity starts moving from the front contract to the next one. This period is often called roll week.
What happens in practice:
- Volume and open interest in the next contract rise gradually.
- At some point the next contract becomes more liquid, and from then on it is the new front month.
- Less liquidity remains in the old contract, spreads can widen and slippage can grow.
- Near expiration, anyone still holding the old contract is settled at the final settlement price.
Most day traders switch to the new contract at the start of roll week or once volume in the new contract overtakes the old one. Brokers and platforms usually publish the recommended roll date.
Continuous charts vs specific contracts
TradingView and similar platforms offer two kinds of symbols:
- A specific contract - such as NQZ6. The chart shows only that contract's history and ends at expiration.
- A continuous chart - such as NQ1! on TradingView. This is a calculated symbol that chains contracts in order and switches to the next one automatically at roll time, producing a long, continuous history.
A continuous chart is clearly useful for technical analysis and backtesting, but it has limits. At the switch between contracts, a price gap can appear that reflects the difference between months rather than real market movement. Some platforms let you choose whether to back-adjust the history to remove the gap, and that choice changes historical price levels. Know which kind of chart you are looking at before drawing conclusions from old price levels.
Remember: you cannot place an order on a continuous chart. The instruction that reaches your broker must refer to a specific contract.
Why automated alerts must point at the right contract
This is where rollover stops being theoretical and becomes practical. When a strategy or indicator sends an alert through a webhook, that alert ultimately has to become an order on a particular contract. Some common traps:
- An alert built on an expired contract - if the alert is set on a specific contract and not updated, it may stop firing or route to a contract with little liquidity.
- The continuous-chart gap - an indicator running on a continuous chart may read the switch between contracts as a "move" and send a false signal.
- Chart and account mismatch - the alert comes from an NQ1! chart, but the order must go to NQZ6 or the new contract. Someone or something has to do that translation correctly.
- An open position during the roll - if a position was opened in the old contract, the exit must happen in the same contract, otherwise you end up with two separate positions.
Webhook alert fundamentals are covered in TradingView webhooks automation.
Roll week checklist
- Check the expiration date and the customary roll date in the exchange calendar.
- Confirm which contract your open positions are in before the switch.
- Update alerts set on a specific contract, or confirm your system translates a continuous symbol to the correct contract.
- Look at the chart around the switch and watch for unusual gaps.
- Be careful of low-liquidity hours in the old contract, as explained in futures trading sessions.
- Run a simulation check after the roll to confirm orders reach the new contract.
Key takeaways
- Every futures contract has an expiration date; for index futures the cycle is quarterly: H, M, U, Z.
- Liquidity usually moves to the next contract about a week before expiration, during roll week.
- A continuous chart such as NQ1! is convenient for analysis, but orders always execute on a specific contract.
- The switch between contracts can create chart gaps and affect indicators.
- Automated alerts must point at the right contract and should be checked at every roll.
WeCore receives TradingView alerts and passes them to your own broker or prop firm account, which is exactly where it pays to confirm that the contract in the order is the one you intend to trade. It is a good idea to check behavior around each roll in simulation mode before continuing on a live account.