On the third Friday of December, the Micro E-mini Nasdaq contract that thousands of traders used all quarter simply stops existing. It expires. If your chart, your data feed and your automated strategy are all still pointed at it, they are now pointed at nothing. This happens four times a year, on a schedule published years in advance, and it still catches automated traders off guard every single quarter.
The event is called contract rollover, and it is one of the few purely mechanical things in futures that can quietly break an otherwise working bot. Here is what a futures contract rollover is, why futures work this way, and how automation goes wrong when a contract rolls.
A futures contract is an agreement to settle at a set date. It does not run forever. US index futures like the E-mini and Micro E-mini Nasdaq (MNQ) and S&P (MES) expire on a quarterly cycle: March, June, September and December, on the third Friday of the expiration month. As one contract nears expiry, trading migrates to the next one out. Rollover is the act of moving your position and your attention from the expiring contract (the front month) to the new one (the back month).
Because the two contracts trade at slightly different prices, the later one reflecting the cost of carry, the handoff is not seamless. Volume drains out of the old contract over a few days and pours into the new one, usually about a week before expiration.
A futures contract expires on a fixed quarterly date. Your chart, your data feed and your strategy all have to be pointed at the same live contract on the same day, or the bot is trading a ghost. Rollover is not optional maintenance. It is a scheduled event you plan around.
Every futures contract carries a month code and a year. Learn four letters and you can read any index future at a glance.
| Month | Code | Example (Micro Nasdaq) | Expires |
|---|---|---|---|
| March | H | MNQ 03-26 | Third Friday of March 2026 |
| June | M | MNQ 06-26 | Third Friday of June 2026 |
| September | U | MNQ 09-26 | Third Friday of September 2026 |
| December | Z | MNQ 12-26 | Third Friday of December 2026 |
NinjaTrader 8 writes these as MM-YY, so "MNQ 12-25" is the December 2025 Micro Nasdaq. The older exchange notation puts the same contract as MNQZ25. Two spellings, one instrument. What matters is that only one of the four is the busy, liquid front month at any time, and every quarter the crown passes to the next.
If contracts expire every quarter, how does anyone chart years of history or run a test over many months? The answer is a continuous contract: a stitched-together series that splices each expiring contract onto the next so the chart runs unbroken. Without it, a Nasdaq chart would be a graveyard of three-month stubs.
The stitching is not free. Because consecutive contracts trade at different absolute prices, joining them raw would leave a visible jump at every roll, a gap that never happened inside any single contract. To remove it, platforms back-adjust: they shift the older data up or down so the seam lines up. NinjaTrader 8 handles this with its merge policy, and the setting you choose there changes what your historical prices look like. The platform side is covered in NinjaTrader 8 explained, and the underlying contract details in futures and micro contracts.
A continuous chart is a convenience, not a real instrument. Nobody ever traded the seam.
Rollover breaks automation in a handful of predictable ways. Every one of them is avoidable, and every one of them still happens.
These are not exotic bugs. They are the boring, scheduled kind, which makes them the easiest to prevent and the most embarrassing to be caught by. They belong on the short list of automation mistakes that have nothing to do with the strategy and everything to do with plumbing.
Neither Algomyth system holds overnight, so neither is ever caught in an expiry. The full mechanics are laid out step by step.
Walk through a single December roll on the Micro Nasdaq. Say it is early December and you have been trading MNQ 12-25 all quarter.
Notice how much simpler step two is when there is no open position to carry. A system that never holds overnight is never long or short through a roll, so the only thing that has to roll is the data series, not a live position. Which contract to trade in the first place is its own question, covered in MNQ versus NQ.
Rollover is a solved problem if you treat it as routine.
The traders who get burned by rollover are almost never the ones who found it hard. They are the ones who forgot it was coming.
Four times a year, on a quarterly cycle of March, June, September and December. Each contract expires on the third Friday of its month, and the active trading volume moves to the next contract about a week before that. So in practice you roll four times a year, a little ahead of each third Friday.
Before expiry it trades a contract that is emptying out, so you get wider spreads, thinner liquidity and worse fills. After expiry the contract no longer trades at all, so the strategy sits there attached to a dead series, taking no trades while appearing to run normally. Neither state is dramatic, but both quietly cost you the edge you were trying to capture.
Yes, and the way it is built matters. A back-adjusted continuous series shifts historical prices so the roll seams line up, which changes absolute price levels even though it preserves the shape of the moves. If you backtest on one merge setting and trade live on another, your live prices will not match the ones your strategy was validated on. Keep the settings identical across test and live.
NinjaTrader 8 can build and update a continuous contract for charting and backtesting, but you still have to point your live strategy and orders at the correct front-month contract for the session. Confirming the active contract takes seconds and prevents the single most common rollover failure, which is a bot left running on last quarter's ticker.
No. The only thing that has to be on the correct contract is the data each system reads before its window. That removes an entire class of rollover risk that affects strategies which hold positions for days or weeks at a time.
Everything we write comes back to one idea: verify, then decide. The live terminal exists for exactly that.
Unlock Algomyth Live