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. The same build runs in simulation and live.
parity-report · unmatched orderssession 2026-09-22
causeordersshareaction
fill after session cutoff939%expected, excluded
venue reject, sim accepted626%reject model updated
partial fill split differently522%same net quantity
queue position differs313%within tolerance
total23100%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
The 23 orders that did not match, and why.

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.

Start a project

Tell us what the system has to do. We reply to every message.

Are you a professional investor?

By submitting this form, you agree to our privacy policy and terms of service.