Contract roll (rollover)
A contract roll, or rollover, is the period when trading activity in a futures product moves from the expiring contract to the next expiry. For charts, backtests and level-based analysis it is a discontinuity: the two contracts trade at different prices and their order flow records are separate.
Senzoukria · Glossary · Updated September 2026
What happens during a roll
As a quarterly expiry approaches, participants close positions in the expiring contract and open them in the next one. Over a few sessions the next contract's volume and open interest overtake the old one. Both trade simultaneously, and the price gap between them, the calendar spread, reflects the difference in financing and dividends between the two expiry dates. The roll is complete when the next contract is unambiguously the front month.
- Volume and open interest migrate to the next expiry.
- The two contracts trade at different prices.
- The expiring contract keeps trading, thinly, until its last day.
Consequences for order flow
- A cumulative delta series does not carry across contracts; each contract has its own tape and its own accumulation.
- Volume profile levels, a naked POC or a value area are recorded at one contract's prices and sit at a different price on the next.
- Depth on the ladder splits between the two books during the roll, so the DOM on either contract looks thinner than usual.
Handling rolls in a backtest
A backtest over several quarters needs an explicit roll policy: which contract is used on each day, and what happens to the price jump. Roll days are frequently excluded because they mix two contracts. Whatever policy is chosen, it should be stored with the test alongside the coverage report, and a gap in the data is never to be read as a flat market. A level derived on one expiry cannot be carried into another without addressing the price difference.
In Senzoukria
The Backtest screen's Databento import applies a fixed rule: spreads are dropped, the dominant contract is kept minute by minute and rollover days are excluded, the same rule as the research loader. Its completion line reads "{minutes} minutes kept over {days} days · {rolls} rollover days excluded · {contracts} contracts", so the number of rolls in the sample is visible. Imported bars carry no delta and no levels. On the live side, the chart follows whichever contract is selected in the "Symbol" field, so switching to the next expiry is a manual step.
Common mistakes
- Reading the price jump between contracts as a market move.
- Carrying a CVD or a session-based level across the roll.
- Judging liquidity during roll week from one book only.
Related
- How to test a trading strategy
- Futures backtesting guide
- NQ and MNQ order flow settings
- Continuous contract
- Naked POC indicator
This page in other languages
Frequently asked questions
- Why does the next contract trade at a different price?
- Because it settles at a later date. The difference between two expiries, the calendar spread, reflects the financing and dividend expectations between those dates. It is a structural offset, not a signal about direction, and it narrows as the nearer contract approaches expiry.
- Should a backtest include roll days?
- Most orderflow backtests exclude them because the day mixes two contracts with different prices and split liquidity. If they are kept, the roll policy must state which contract's data is used and how the price jump is treated. Either way, the choice should be recorded with the test so results can be reproduced.
- Does the roll affect the micro contract too?
- Yes. MES and MNQ share the quarterly expiry cycle of ES and NQ, so their volume migrates in the same period. Each micro has its own book, so its roll must be checked on its own volume rather than inferred from the E-mini.