What parallel backtesting buys us
Validating a strategy takes far longer than coding it, and validation is the part that more hardware speeds up.
QuantFX3 min read
From idea to production
Ideas are prototyped in Python on AWS and run against historical tick data. The results decide whether an idea moves forward or goes back to research. The ones worth keeping are rewritten in C++20 for production, and only a validated strategy reaches the live engine.
One idea, hundreds of runs
A single backtest is cheap. A validation we would trust is hundreds of them:
- Walk-forward analysis: fit on one window, test on the next, and roll forward across market regimes.
- Out-of-sample checks on data and instruments the logic has never seen.
- Parameter sweeps, to see whether results sit on a broad plateau or a narrow spike.
- Monte Carlo resampling of trade order, costs and slippage, to stress the drawdown profile.
On one machine, that work turns research into a queue.
Each run stands alone
None of these runs needs the result of another. Every walk-forward window, parameter set and Monte Carlo path can go to its own worker, so the job scales close to linearly with the number of workers. The limits are loading data at the start and collecting results at the end.
- 2,000 backtests × 20 min
- 40,000 min
- 1 worker
- about 667 hours, roughly 28 days
- 64 workers
- about 625 min, roughly 10.4 hours
Real run times depend on strategy complexity, data resolution and I/O.
On 64 workers, a sweep started in the evening is done by morning. That is why the seed round we are raising pays for compute and hardware rather than trading capital. The investor overview has the breakdown.
More tests, more ways to fool yourself
Speed has a cost. If we can run 2,000 variants overnight, we can also find one that looks brilliant by chance. The guardrails have to grow with the cluster:
- A final hold-out period stays locked during development and is used once.
- The bar rises with the number of variants tried. We record how many configurations were tested and judge the winner against that number.
- A strategy has to hold up across many sequential walk-forward windows. One good split proves little.
- We prefer parameter regions that perform consistently over the single setting with the best score.
With the cluster, every candidate gets the full set of checks.
What clients get from it
Companies run our engine under their brand or ask us to build and run strategies for them. A faster loop means a shorter wait between a strategy request and a validated candidate. Re-validation on fresh data becomes a routine job, and changes to execution logic are tested against the full history before they reach production.
The engine itself is described on the technology page.