It is bigger than it looks
One year of 1-minute bars is 525,600 rows for a single coin. Multiply by hundreds of coins and several years and you are managing a serious dataset: downloading it politely from exchange APIs that rate-limit you, storing it in a format you can query quickly, and keeping it current every day.
What good backtesting data needs
- 1-minute (or finer) bars. Hourly or daily bars hide the intraday wicks that trigger stops and liquidations.
- Consistent timestamps. One timezone (UTC) and no silent shifts between files.
- Gaps that are visible. Missing bars should be known and handled, not interpolated away.
- Funding rates, because holding a perpetual across a funding time costs or pays money.
- Instrument rules: tick size, lot size and leverage limits per coin, as they applied at the time.
- Enough history before the test period for indicators to warm up. A 200-day average is meaningless on day one.
- An honest universe. Ask which coins are included and whether ones that faded or were delisted are part of what the strategy is tested on.
A quick audit of any dataset
Whether you built it or bought it, a few checks catch most of the damage before it reaches a result.
- Count bars per day. A full UTC day of 1-minute bars is 1,440. Days well short of that point to gaps.
- Look for flat runs. Many identical closes in a row usually mean a feed stalled and the last price was repeated.
- Check each bar is possible. The high must be at least the open and close, and the low at most; the volume must not be negative.
- Check order. Timestamps must be strictly increasing, with no duplicates after a merge.
- Compare a sample with a second source. A handful of random days will show a systematic offset.
- Look at the odd coins. Newly listed ones, renamed symbols and thin markets are where errors cluster.
Where do-it-yourself pipelines break
The common failures are quiet ones: a bad tick that creates a fake trade, a symbol that changed name, a day of missing bars filled with the last price, a timezone off by 5.5 hours. Each can flatter a strategy without raising an error. You find out when a live account disagrees with the backtest.
What the Lab already holds
The Lab keeps years of 1-minute bars for 900 Binance USDⓈ-M perpetuals, with funding rates and instrument data, refreshed twice a day. You choose coins and dates and run; there is nothing to download.
History matters at the edges too. Each coin is loaded with the warm-up its indicators need, sized per coin. If a coin was listed too recently for a filter to be ready, the run says which coin and until when, rather than trading without the filter and not telling you.