History bought once, checksummed, honest
Your own exchange keys give you free recent history. Packs exist for what those keys cannot: the symbols that died, the years before your exchange existed, tick-level tapes and options chains. Planned as a one-time price per market and period, with no data subscription. Data packs open with early access.
Six planned packs, six markets
Planned pricing. Every pack is designed to ship with a signed SHA-256 manifest; the engine refuses tampered files. Refreshes are free while an update contract is active, otherwise €19 per refresh.
Crypto perps · tick-level
- 18 perps + 7 delisted (LUNA, FTT, …)
- Trades, L1 quotes, 8h funding, open interest
- Several major crypto venues
- Monthly refresh
US equities · EOD, survivorship-free
- ≈ 21,400 symbols including 12,800 delisted
- Splits, dividends and symbol changes applied plus raw
- Delisting reason & final price
- Monthly refresh
FX · 1-minute
- 28 majors & crosses
- Bid/ask mid plus a spread column per bar
- Session metadata (Tokyo / London / New York)
- Monthly refresh
Commodities · continuous futures
- CL, GC, SI, HG, NG, ZW, ZC, ZS + 14 more
- Back-adjusted continuous plus individual contracts
- Roll dates & roll yield documented
- Monthly refresh
Options chains · BTC / ETH
- Full chains, hourly snapshots
- Implied vol, greeks and open interest per strike & expiry
- Gamma-exposure aggregates
- Monthly refresh
Macro pack · public series, release-date aligned
- Public macroeconomic series with release-date alignment (no revision lookahead)
- Daily news-tone indices
- Regional event counts
- Monthly refresh
Planned pricing: one-time, per market and period. Integrity corrections are planned to ship free to every holder of the affected pack.
What “survivorship-bias-free” actually means here
Most historical datasets only contain the symbols that exist today. That silently deletes every bankruptcy, delisting and failed token from your backtest — and every long strategy looks better than it was.
Corporate actions
Splits, dividends, spin-offs and symbol changes are applied to produce adjusted series — and the raw series is kept alongside, because some strategies (gap trading, option pricing) need unadjusted prices. Every action is listed with source and date in actions.parquet.
Timestamp normalization
All bars are stamped in UTC at bar close, with the exchange's session calendar attached, so a “daily” bar for crude oil futures and a “daily” bar for BTC mean what they say. Naive local timestamps are the single most common way lookahead sneaks into a dataset; the importer refuses them.
Checksum & provenance
Each pack ships with a signed manifest: file list, SHA-256 per file, source archives and compile date. forge-engine pack verify re-checks it any time. Corrections are planned to ship as free refreshes to everyone holding that pack.
It puts a price on every choice in your sample
The reviewer's cost plan reads the data-quality cell before it rules, and it quotes what each data decision is worth in Sharpe. This is what it reads on the notebook demo (simulated data · illustration only) — a 7.5-year crypto sample with one delisted name in it. On your own history the same table is longer and the numbers are bigger.
| Property | Value | What it costs you |
|---|---|---|
| Sample | 1,900 bars at 4h · 7.5 years | A Sharpe estimated on this much data carries a standard error of ±0.36 — treat anything inside that band as the same number. |
| Delisted / expired symbols | 1 (LUNA-PERP) | Kept in. Dropping it would move Sharpe by +0.35 — that move is bias, not edge. |
| Warm-up burned | 200 bars (10.5 %) | No position can form before the lookback has filled. The result rests on the bars that are left, not on the bars you bought. |
| Missing bars | 8 (0.42 %) | Venue outages, forward-filled. Every filled bar is a price the strategy was allowed to trade on but nobody actually printed. |
| Fill assumption | next bar close | Filling on the signal bar instead would move Sharpe by +0.23. That single assumption is the most common way a backtest flatters itself. |
Survivorship bias, in one chart
Simulated data · illustration only. Picture a 12-month cross-sectional momentum strategy run twice: once on today's constituents only, once on the full universe including the symbols that were delisted along the way. The survivor-only version flatters the growth rate and hides part of the worst drawdown, because the delisted set includes the stocks momentum loved right before they died.