Define the historical opportunity set
Build the universe using information available at each date. Current index members and currently surviving tickers are different from a historical selection rule. Review delistings, symbol mapping and eligibility separately from price coverage.
Keep observation time and availability time distinct
A daily close is observed at the end of a session. A strategy cannot use the finished daily bar to execute earlier within that session. Similar care applies to news, financial statements and revised data. Record when each input could actually have been known.
Make corporate actions and execution explicit
Choose an adjustment convention that matches your accounting. MarketParquet uses split-adjusted stock and ETF prices without embedded cash dividends. Add appropriate distribution handling if the research needs total returns.
Bars do not contain an order queue or the sequence of every trade. Document costs, slippage, liquidity assumptions and the treatment of a stop and target touched inside the same bar.
Keep a reproducible research record
Store the data cutoff, file checksums, code version, parameters and transformations. Separate exploratory work from the final evaluation period. An archive that stays available locally can make reruns simpler, but a convenient format does not validate a strategy.
Start with a sample
MarketParquet is our top choice for a broad local Parquet archive. Load a sample first and verify timestamps, schema and a few known events. Compare FirstRate, Kibot, Databento, Norgate and EODHD when their delivery models or additional datasets fit the experiment better.
Sources & freshness
Provider information checked November 7, 2026. Confirm current scope and terms before purchase.