Rolling Futures Contracts in Continuous-Series Backtests
Summary
The document explains why a futures backtest needs to model the transition from an expiring contract to a later-dated contract. A price difference between those contracts is not itself a trading gain or loss: a live trader closes the expiring position and opens a replacement position. A continuous series can be constructed to handle the roll transition and avoid treating the contract-price gap as a change in portfolio value.
The answer illustrates the issue with backwardation, where the later contract is cheaper, and notes that contango can produce the opposite apparent effect. If a backtest simply carries a position across the switch as though it were the same contract, it can report artificial profits or losses. The explanation assumes negligible transaction costs and focuses on the distortion caused by the roll; it does not specify a particular adjustment formula or cover how financing, liquidity, or execution costs should be modeled.
Key ideas
- A futures roll closes the expiring contract and opens a position in a later contract.
- The price gap between contract maturities does not by itself represent a realized gain or loss from rolling.
- A backtest that ignores the roll can mistake a contract-price gap for portfolio profit or loss.
- The example assumes negligible transaction costs and does not prescribe a specific continuous-series adjustment method.
Tags
Full text
# why people want to get a continuous time series from futures data? # why people want to get a continuous time series from futures data? So for the backtesting , is it necessary to make an adjustment for the last day of the current contract and the first day of the next far contract? Even if there's is a gap, that's the actual price, u can't avoid the roll yield. ## Answer by Simon (score 1, accepted) https://quant.stackexchange.com/a/14028 Yes, you do need. Back-testing without contract rolling will result in artificial profits or loss that are not realizable in live trading. Suppose a particular market is in backwardation, a positive roll yield is therefore expected. To roll into the longer out contract upon expiration, you expect a lower price to establish the new position. So in live trading, you will unwind the current contract before expiration at the prevailing rate, and take the same position in the next contract. This process is called rolling, and you will realize no gains or loss, assuming transaction cost is negligible. To simulate this process in back-testing, you will make the continuous price series, so the artificial price gap in the rolling day is filled. Otherwise, assuming you have a long position upon expiration that you will hold overnight, the back-testing will show an artificial gain in portfolio values if the market is in backwadation, or an artificial loss if the market is in cantango.
Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.