StratCraftStratCraftItaliano

Benchmark delle Prestazioni

Risultati misurati, non dichiarazioni di marketing. I benchmark dettagliati saranno pubblicati insieme al rilascio v1.0.

StratForge vs Backtester Python

Confronto diretto sulle operazioni di backtest principali.

MetricaPythonStratForgeMiglioramento
Singolo Indicatore (per barra)TBDTBDTBD
Step StrategiaTBDTBDTBD
Backtest Completo (1M barre)TBDTBDTBD
ThroughputTBDTBDTBD
Consumo MemoriaTBDTBDTBD

Percorso di Ottimizzazione

Come StratForge accumula ottimizzazioni lungo la pipeline di backtest.

Fase 1: Storage Colonnare delle BarreTBD

Le barre sono memorizzate in buffer colonnari cache-friendly. I calcoli degli indicatori scorrono su memoria contigua invece di inseguire puntatori.

Fase 2: Indicatori IncrementaliTBD

Ogni indicatore mantiene lo stato interno e si aggiorna in O(1) per barra. Nessun ricalcolo della finestra scorrevole.

Fase 3: Percorsi Decisionali BranchlessTBD

La logica di ingresso/uscita della strategia viene riscritta come aritmetica branchless dove possibile per evitare stalli della pipeline sul codice condizionale dei prezzi.

Fase 4: Specializzazione a Tempo di CompilazioneTBD

I parametri degli indicatori noti a tempo di compilazione diventano consteval. I template specializzati eliminano il dispatch a runtime.

Prova Zero Allocazioni

Esecuzione di un passaggio di backtest sull'hot path.

OperazioneBacktester PythonStratForge
Allocazioni HeapMolte (oggetti Python per barra)0
Storage BarreCopie pandas DataFrameViste std::span su buffer colonnare
Stato IndicatoreAllocazione array per chiamataStato rolling pre-allocato
Consumo MemoriaDinamico, gestito dal GCStatico, pre-allocato
DeterminismoDeriva floating-point tra le esecuzioniRiproducibile bit-exact

Confronto Tecniche

Decisioni progettuali che si accumulano per un backtesting deterministico a bassa latenza.

TecnicaBacktester PythonStratForge
Layout MemoriaOrientato per righe (DataFrame)Colonnare (cache-friendly)
Aggiornamenti IndicatoreRicalcolo finestra ad ogni chiamataIncrementale O(1) per barra
Dispatch del CicloCiclo Python interpretatoCiclo template C++ inline
Determinismo NumericoDipendente dalla versione NumPy / pandasBit-exact tra le esecuzioni
Composizione StrategiaGerarchia di classi + dispatch dinamicoConcepts + polimorfismo statico
Gestione ErroriEccezionistd::expected (nessun throw)

Influenze Architetturali

Librerie e framework leader del settore studiati durante la progettazione di StratForge.

LibreriaCosa Abbiamo ImparatoCosa Abbiamo CostruitoRisultato
TA-LibDefinizioni canoniche degli indicatori e gestione dei casi limiteLibreria indicatori header-only in C++23138 indicatori
vectorbtAPI backtest vettorizzata e sweep di parametriEspansione parametri template a tempo di compilazioneTBD
backtraderCiclo di vita della strategia e hook degli eventiInterfaccia strategia basata su conceptsCiclo di vita type-safe
QuantLibArchitettura modulare di pricing e analyticsModuli analytics pluggableTBD
EigenExpression template per matematica a zero overheadComposizione lazy degli indicatoriNessun buffer temporaneo
ArrowStandard layout memoria colonnareStorage barre colonnare nativoCache-line friendly
FollyPrimitive lock-free e small_vectorRegistri operazioni pre-allocatiTBD
HighwayAstrazione SIMD portabileLoop interni indicatori compatibili SIMDTBD
fmtStringhe di formato a tempo di compilazioneFormattazione report a costo zeroTBD
Boost.PMRBuffer monotonico per allocazione arenaPool std::pmr::monotonic_buffer_resourceZero allocazioni heap
Catch2Test unitari indicatori in stile BDDSuite di regressione bit-exactCI riproducibile

Pronto a Provare StratForge?

Tre comandi per clonare e iniziare il backtesting.

git clone https://github.com/StratCraftsAI/StratForge.git cd StratForge ./start.sh build