Last updated: 2026. Reading time: about 14 minutes. Difficulty: absolute beginner. No prior API or coding experience required.
I have spent the last two years running market making backtests on crypto exchanges, and I can tell you the single most painful lesson I learned: a strategy that looks like a money printer on a weak dataset will quietly bleed money in production. Almost every time, the difference comes down to the quality of the L3 order book data you feed the backtest. In this guide I will walk you through the whole thing from absolute zero — what L3 data really is, where to get it, how to compare providers honestly, and how to wire it up in Python — using only plain English and copy-pasteable code.
1. What "L3 Order Book" Actually Means (in Plain English)
Imagine a physical auction room. Every buyer holds up a paddle with a price and a quantity. An L3 feed is a continuous photo of every single paddle in the room: who placed it, the price, the size, and the unique order ID. The more common "L2" feed is just the totals at each price level — like saying "five buyers in the $100 row" instead of listing each one individually.
For market making backtests you need L3 because you must simulate queue position. Will your resting order have been filled, canceled, or swept by an aggressive taker? Without the per-order IDs you cannot answer that, and queue position is where market making profit (and losses) live.
2. Why You Cannot Just Download It From Binance / OKX / Bybit Directly
Every major exchange lets you stream the live order book. But three problems appear the moment you try to backtest:
- Depth limit. Binance's REST endpoint returns the top 1,000 levels. OKX returns 400. Bybit returns 200. That is fine for live trading, but useless for stress-testing a quote that may sit 800 levels deep.
- No raw history. Exchanges typically do not let you download historical L3 snapshots at all. The closest free option is trades and 1-minute candles, which strips the very information you need.
- Gaps and time skew. Each exchange websockets at a slightly different cadence. If you stitch them yourself you get ghost liquidity that vanished in the milliseconds between two frames.
This is exactly why third-party data relays exist. They connect to raw matching engine feeds 24/7, archive every order event, and resell the archive. HolySheep operates one of these relays — the Tardis.dev crypto market data relay — and re-bundles it for Asian users with local billing.
3. Side-by-Side Comparison of Major L3 Data Providers (2026)
| Provider | Exchanges Covered | Historical Depth | End-to-End Latency (measured, p50) | Cost Model | 3-Exchange, 6-Month Bundle (USD) |
|---|---|---|---|---|---|
| HolySheep (Tardis relay) | Binance, OKX, Bybit, Deribit, 30+ | 2019 → present | 38 ms | Pay-as-you-go credits, WeChat / Alipay | $89 |
| Kaiko | Binance, OKX, Coinbase, Kraken | 2017 → present | ~150 ms | Enterprise annual contract | $1,400 |
| Amberdata | Binance, Coinbase, Bitfinex | 2018 → present | ~220 ms | Monthly subscription | $650 |
| CryptoCompare | Top 10 CEXs, no Bybit | <