A continuous futures chart can make a long history readable, but it is not itself a contract you could have traded. To test a futures strategy honestly, keep the signal series, the actual dated contract, the rollover decision and its costs separate.
First decide what the continuous series means
A continuous series stitches successive expiries together. Vendors can adjust earlier prices to reduce the visible gap at a contract change. TradingView documents a back-adjustment method based on the difference between the old and new contracts near the switch; its adjustment is optional (TradingView: back-adjustment for continuous futures). That makes a chart easier to analyse, but the transformed history is not a record of fills at those adjusted prices.
Write down the exact instrument and data convention before testing: contract family, expiry selection, switch rule, adjustment method, session and price field. “Front month” is not a complete rule if your implementation switches on volume, open interest, a calendar date or a provider-specific mapping.
Keep signal prices and tradable contracts distinct
QuantConnect’s futures documentation distinguishes a continuous symbol from its currently mapped dated contract: the continuous series can be adjusted, while orders must be placed on a specific contract. It also exposes mapping and normalization choices, and rollover events identify the outgoing and incoming symbols (QuantConnect: Futures universes and continuous contracts). These are implementation details of that platform, not universal defaults for every backtester.
Use a small audit table for every simulated roll:
| Check | Record |
|---|---|
| Selection | Which dated expiry is active, and what rule selects the next one? |
| Signal input | Raw contract price or adjusted continuous series? |
| Order handling | How are positions closed, opened or carried across the switch? |
| Costs | Which fees, bid/ask assumptions and slippage apply to both legs? |
| Timing | When does the roll decision occur relative to the bar and session? |
If the strategy calculates indicators on adjusted history, make sure its simulated orders still use the corresponding dated contract and executable price. Otherwise, the test can quietly mix a synthetic signal level with a different contract’s fills.
Run tests that expose the roll assumption
Compare a baseline with at least one alternative mapping rule or roll date, keeping all other settings fixed. Inspect trades near each switch, not just the final equity curve. Check for duplicate entries, positions left in an expiring contract, missing bars, and a signal that changes because the back-adjusted history was revised.
Then compare results with and without the roll-related costs your data and broker model can support. If your platform cannot model an important part of the handoff, label that limitation and avoid treating the result as a live-fill estimate. For a broader reproducibility checklist, see how to verify a cTrader backtest and how we document backtest costs.
Make the roll rule part of the strategy
Save the contract-selection rule, adjustment setting, roll timestamps and per-roll trade record with the backtest. If changing one of them changes the conclusion, that sensitivity belongs in the report. A smooth joined chart cannot prove the rollover was handled correctly; the dated-contract ledger can.