High-Performance Backtest Engines
How to build a backtest engine that runs hundreds of times faster without changing a single PnL number — data layout, caching, adaptive resolution, and architecture, from first speedups to production internals.
- 01
Jul 1, 2026 #algotradingLa Scala di Velocità del Backtest: 298x su una CPU da Laptop, PnL Identico Fino all'Ultimo Trade
Cinque implementazioni dello stesso sweep di parametri a 80 combo, tutte verificate per produrre lo stesso PnL: pandas rolling.apply impiega 69.9 secondi, numpy 3.1, numba 2.0, numba parallelo 0.23 — uno speedup misurato di 298x su un Apple M2 Max a parità di hardware, e ancora ~13x rispetto a una baseline vettorizzata competente. Cosa guadagna ogni gradino, perché una GPU non è il pezzo mancante, e dove si trova il vero collo di bottiglia nella ricerca massiva di parametri.
- 02
Mar 16, 2026 #algotradingCache Parquet Aggregata: Come Accelerare i Backtest Multi-Timeframe di Centinaia di Volte
Come precalcolare i timeframe e gli indicatori dalle candele al minuto, salvarli in parquet e utilizzarli per il testing di massa delle strategie senza ricalcoli ridondanti.
- 03
Mar 17, 2026 #algotradingDrill-Down Adattivo: Backtest con Granularità Variabile dai Minuti ai Trade Grezzi
Come la granularità adattiva dei dati accelera i backtest e risparmia spazio di archiviazione: drill-down da 1m a 1s, 100ms e trade grezzi solo dove il prezzo si è mosso significativamente o il volume è aumentato, non sull'intera serie storica.
- 04
Jul 2, 2026 #algotradingLa Tassa IPC: Metti il Motore di Backtest Dietro un Socket e Perdi il 13% — Ma Quasi Nulla è Colpa del Socket
Abbiamo portato un kernel di backtest numba riga per riga in Rust e lo abbiamo chiamato attraverso un confine di processo in quattro modi diversi, con un gate di equivalenza che conferma un PnL identico fino all'ultimo trade. Spedire l'intera serie di prezzi da 1.2 MB attraverso un Unix socket costa ~2 ms — circa lo 0.1% del lavoro. Codificare lo stesso payload in JSON costa 1348 volte più dei byte raw, le chiamate chatty per-combo rispediscono i dati 80 volte, e un pattern di chiamata per-barra pagherebbe 2.1 s di puro IPC su un job da 2.0 s. Il confine è economico; la tassa sta in come lo attraversi.