BacktestMarket offers futures data in two variations: not back-adjusted and back-adjusted (labelled bk). Understanding the difference is essential before running any backtest on futures instruments.
Why Continuous Data Is Needed
Each futures contract has a fixed expiry date. A crude oil contract expiring in July 2024 is a different instrument from one expiring in August 2024 — they trade at different prices and their series end at different times. To backtest a strategy over years or decades you need a single, uninterrupted price series. That means stitching together successive contracts into one continuous dataset.
Two decisions determine how that stitching works:
- When to roll — at expiry, or when the next contract overtakes the current one in traded volume
- How to handle the price gap at the roll — leave it raw, or adjust the history
We use the volume-based roll: when the next contract's volume exceeds the expiring contract's volume, a rollover occurs. This more closely reflects when liquidity actually migrates.
Not Back-Adjusted: Raw Concatenation
The simplest approach. Contracts are joined at the roll date without any price correction. The result is a series where price gaps appear at every rollover — because the expiring and the incoming contract never trade at exactly the same price.
When to use it
- Strategies that trade the actual contract (not a synthetic continuous instrument)
- Arbitrage and calendar spread research where the absolute price level matters
- Situations where you need real fill prices to match broker data
Limitation
Gaps can be large (especially in energy or agricultural futures). A strategy that uses absolute price levels or calculates returns naively across roll dates will be distorted.
Back-Adjusted: Gap-Free History
Back-adjustment eliminates rollover gaps by rescaling the historical series every time a roll occurs. The process:
- At each roll, calculate the ratio between the expiring contract's last price and the incoming contract's first price
- Multiply the entire preceding history by that ratio
- Append the new contract's prices going forward
The result is a smooth, gap-free series where percentage returns across the roll are preserved accurately.
When to use it
- Any strategy that calculates percentage returns, moving averages, or volatility over long periods
- Machine learning pipelines that require a stationary, continuous price feature
- Most trend-following and mean-reversion backtests
Limitation
Prices in the early history are synthetic — they do not correspond to any price the instrument actually traded at. You cannot use back-adjusted data to determine historical margin requirements or exact fill levels.
Which One Does BacktestMarket Provide?
Both. Each futures instrument in our catalogue is available as:
| Label | Description |
|---|---|
| (no suffix) | Raw concatenation — actual historical prices |
bk | Back-adjusted — smooth series, rescaled at each roll |
If you are running a quantitative strategy and unsure which to use, start with the back-adjusted series. If your strategy depends on absolute price levels or you are comparing against actual broker data, use the raw version.
Summary
Continuous futures data requires a choice: accept price gaps at rolls (raw) or eliminate them through rescaling (back-adjusted). Neither is universally correct — the right choice depends on what your strategy measures. Having both versions lets you test assumptions and validate that your results are not an artefact of the roll treatment.