Quant Memo
Core

Futures Roll and Expiry in Simulation

How a backtest must handle a futures contract's approaching expiry by rolling the simulated position into the next contract, and the pitfalls of getting the roll timing or price adjustment wrong.

A futures contract expires on a fixed date, but most strategies are meant to run continuously, so a backtest simulating a futures position must periodically "roll" — close out the expiring contract and open an equivalent position in the next contract further out — well before expiry, since liquidity typically thins out and the contract's behavior can become erratic in its final days. Getting this roll wrong in simulation is a common source of a backtest quietly overstating performance.

Two things must be handled carefully. First, timing: rolling too close to expiry risks simulating fills in a contract that, in reality, had already lost most of its liquidity and would have produced much worse slippage than the backtest assumes; most simulations roll several days before expiry, often on a fixed schedule (like a specific day of the month) or when open interest shifts to the next contract. Second, the price adjustment: because the expiring and next contract trade at different prices (the difference reflecting the market's expectation of carry and other factors), a naive backtest that just switches contracts without adjusting historical prices for that gap will show a fake jump in the price series at every roll date, which can masquerade as (or obscure) real returns.

The standard fix is to build a continuous, back-adjusted price series — either by adding or subtracting the roll-date price gap to all historical prices before the roll (preserving percentage returns imperfectly but removing the artificial jump) or by using ratio adjustment, and by explicitly modeling the roll's transaction cost as a real trade rather than ignoring it.

Simulating a futures strategy requires rolling the position into the next contract before expiry-driven illiquidity sets in, and building a back-adjusted continuous price series so the price gap between contracts at the roll date doesn't appear as fake returns or hide the real ones — skipping either step is a common way a futures backtest silently misstates performance.

Related concepts

Further reading

  • Standard futures backtesting practice
ShareTwitterLinkedIn