← Back to blog

Data

Backtesting on Index Prices

When the chart exchange isn't the fill exchange

720d · 15m merge · validate coverage

July 6, 2026 · 6 min read

Backtesting on GMX index candles answers a specific question: how does the strategy behave on the prices the chain oracle sees? It is not the same series as a CEX perpetual — and pretending otherwise is worse than having no GMX data at all.

The retention wall

GMX serves native history on fine timeframes for weeks, not years. Long lookbacks need a merge: recent native bars plus older backfill from a CEX feed, stitched without duplicate timestamps, validated for coverage gaps.

Cache like everything else

  • Same parquet layout as ccxt caches — one provider interface, two upstreams.
  • Meta JSON records how many bars came from where — auditable blend, not a black box.
  • Validation rejects lookbacks with internal gaps or short history — backtest fails loud.

Live vs backtest source

Use GMX candles when researching index execution quality. Use Bybit (or your data venue) when running live signals that were tuned on CEX prices. The terminal can show both; your job is to not confuse them on the same deploy.