
De 7 camadas e 5 processos para 4 camadas e 2 processos. Um motor de execução construído propositadamente para velocidade de investigação quantitativa.
Três gerações de refinamento: eliminando sobrecarga em cada camada.
7+ camadas de abstração, 5 processos separados, sobrecarga de serialização IPC. Execução apenas em Python com alta complexidade arquitetónica.
Contagem de processos reduzida, introdução de componentes C++. Arquitetura de transição provando o conceito de execução incorporada.
4 camadas, 2 processos, 1 protocolo. Motor C++ com Python incorporado via pybind11. Fluxo de dados Apache Arrow para NumPy sem cópia.
Medido com temporização RDTSC, fixação de afinidade de CPU e rastreamento de percentis P50/P90/P99/P999.
| Métrica | Medido | Alvo |
|---|---|---|
| Latência por barra | 2,15 ns | < 1 µs |
| Tempo de aquisição GIL | 26,62 ns | < 10 µs |
| Tempo de retenção GIL | 203,30 ns | < 100 µs |
| Aceleração SIMD (AVX2) | 2,48x | ≥ 2x |
| Throughput lock-free | 15,73 M ops/s | > 10 M ops/s |
| Geral vs Python | 500-1000x | > 100x |
De dados de mercado à execução de estratégia sem cópias de memória.
Dados de mercado armazenados no formato Apache Parquet com compressão colunar. O acesso a ficheiros mapeados em memória elimina a sobrecarga de deserialização.
O Apache Arrow fornece um layout de memória colunar independente da linguagem. C++ e Python partilham a mesma memória sem qualquer cópia ou conversão.
O pybind11 expõe buffers Arrow como arrays NumPy no mesmo espaço de memória. O código Python da estratégia lê dados pertencentes ao C++ com zero alocação.
Da arquitetura aos nanossegundos: uma abordagem sistemática ao desempenho.
O executor de processo único V3 eliminou a serialização IPC, o spawning de processos e a marshaling de dados entre processos. O maior ganho veio da simplificação arquitetónica.
Temporização RDTSC com fixação de afinidade de CPU. Rastreamento de percentis P50/P90/P99/P999 em 12 programas de benchmark. Infraestrutura de medição reproduzível estabelecida.
LTO, -march=native, abstração SIMD xsimd, alocador mimalloc, logging de baixa latência Quill, contentores Abseil. Otimizações ao nível do compilador e biblioteca.
Infraestrutura PMR, alocadores alinhados com cache, zero alocações no hot path. Visando falhas de cache L1 < 5% e falhas de TLB < 0,5%.
Clone, compile e execute o seu primeiro backtest em minutos. O motor está incluído no nível gratuito.
git clone https://github.com/StratCraft/StratCraft.git\ncd StratCraft\npnpm install && pnpm dev:desktop