Work
Backtesting with sim/live parity
kdb+ tick-data ingestion and a backtester that shares its code with the live execution path.
Result
1:1same strategy code in simulation and live
The same strategy code runs in simulation and live.
A quant team moving strategies from research to live
Strategies behaved differently live than in backtests, so research could not be trusted.
In production
parity-report · sim vs livesession 2026-09-22
Strategy builda1f3c9esame commit in sim and live
Orders matched99.8%12,408 of 12,431 orders identical
Fill price diff0.03 bpsmedian, matched fills
Fill price vs arrival, bpssim live
parity-report · unmatched orderssession 2026-09-22
| cause | orders | share | action |
|---|---|---|---|
| fill after session cutoff | 9 | 39% | expected, excluded |
| venue reject, sim accepted | 6 | 26% | reject model updated |
| partial fill split differently | 5 | 22% | same net quantity |
| queue position differs | 3 | 13% | within tolerance |
| total | 23 | 100% | of 12,431 orders |
q) select orders:count i, share:count[i]%23 by cause from unmatched where date=2026.09.22 q) exec count i from orders where date=2026.09.22, src=`live 12431
sim and live read the same kdb+ tick data · same strategy build a1f3c9e
Representative views of production tooling. Data anonymized.
What we built
- kdb+ tick-data ingestion
- Backtester sharing the live code path
- Sim vs live order reports per session
kdb+PythonC++
Next case
Next step
Have a hard system to build?
Tell us what it has to do. We will tell you how we would build it.
