
Da 7 livelli e 5 processi a 4 livelli e 2 processi. Un motore di esecuzione progettato per la velocità della ricerca quantitativa.
Tre generazioni di raffinamento: eliminare l\'overhead ad ogni livello.
7+ livelli di astrazione, 5 processi separati, overhead di serializzazione IPC. Esecuzione solo Python con elevata complessità architetturale.
Riduzione del numero di processi, introduzione dei componenti C++. Architettura transitoria che dimostra il concetto di esecuzione incorporata.
4 livelli, 2 processi, 1 protocollo. Esecutore C++ con Python incorporato via pybind11. Flusso dati zero-copy da Apache Arrow a NumPy.
Misurato con timing RDTSC, pinning affinità CPU e tracking percentile P50/P90/P99/P999.
| Metrica | Misurato | Obiettivo |
|---|---|---|
| Latenza per barra | 2,15 ns | < 1 µs |
| Tempo acquisizione GIL | 26,62 ns | < 10 µs |
| Tempo mantenimento GIL | 203,30 ns | < 100 µs |
| Speedup SIMD (AVX2) | 2,48x | ≥ 2x |
| Throughput lock-free | 15,73 M ops/s | > 10 M ops/s |
| Complessivo vs Python | 500-1000x | > 100x |
Dai dati di mercato all\'esecuzione della strategia senza copie di memoria.
Dati di mercato archiviati in formato Apache Parquet con compressione colonnare. L\'accesso diretto ai file mappati in memoria elimina l\'overhead di deserializzazione.
Apache Arrow fornisce un layout di memoria colonnare indipendente dal linguaggio. C++ e Python condividono la stessa memoria senza alcuna copia o conversione.
pybind11 espone i buffer Arrow come array NumPy nello stesso spazio di memoria. Il codice Python della strategia legge i dati posseduti da C++ senza allocazione.
Dall\'architettura ai nanosecondi: un approccio sistematico alle prestazioni.
L\'esecutore mono-processo V3 ha eliminato la serializzazione IPC, lo spawning dei processi e il marshaling dei dati cross-processo. Il guadagno maggiore è venuto dalla semplificazione architetturale.
Timing RDTSC con pinning affinità CPU. Tracking percentile P50/P90/P99/P999 su 12 programmi di benchmark. Infrastruttura di misurazione riproducibile stabilita.
LTO, -march=native, astrazione SIMD xsimd, allocatore mimalloc, logging a bassa latenza Quill, container Abseil. Ottimizzazioni a livello di compilatore e libreria.
Infrastruttura PMR, allocatori allineati alla cache, zero allocazioni sul percorso critico. Obiettivo: miss L1 cache < 5% e miss TLB < 0,5%.
Clona, compila ed esegui il tuo primo backtest in pochi minuti. Il motore è incluso nel livello gratuito.
git clone https://github.com/StratCraft/StratCraft.git\ncd StratCraft\npnpm install && pnpm dev:desktop