
De 7 capas y 5 procesos a 4 capas y 2 procesos. Un motor de ejecución diseñado específicamente para la velocidad de investigación cuantitativa.
Tres generaciones de refinamiento: eliminando sobrecarga en cada capa.
Más de 7 capas de abstracción, 5 procesos separados, sobrecarga de serialización IPC. Ejecución solo en Python con alta complejidad arquitectónica.
Reducción del número de procesos, introducción de componentes C++. Arquitectura de transición que prueba el concepto de ejecución embebida.
4 capas, 2 procesos, 1 protocolo. Executor C++ con Python embebido via pybind11. Flujo de datos Apache Arrow a NumPy de copia cero.
Medidos con temporización RDTSC, anclaje de afinidad de CPU y seguimiento de percentiles P50/P90/P99/P999.
| Métrica | Medido | Objetivo |
|---|---|---|
| Latencia por barra | 2,15 ns | < 1 µs |
| Tiempo de adquisición GIL | 26,62 ns | < 10 µs |
| Tiempo de retención GIL | 203,30 ns | < 100 µs |
| Aceleración SIMD (AVX2) | 2,48x | ≥ 2x |
| Rendimiento sin bloqueo | 15,73 M ops/s | > 10 M ops/s |
| General vs Python | 500-1000x | > 100x |
Desde los datos de mercado hasta la ejecución de la estrategia sin copias de memoria.
Datos de mercado almacenados en formato Apache Parquet con compresión columnar. El acceso a archivos mapeados en memoria elimina la sobrecarga de deserialización.
Apache Arrow proporciona un diseño de memoria columnar agnóstico al lenguaje. C++ y Python comparten la misma memoria sin ninguna copia o conversión.
pybind11 expone los buffers Arrow como arrays NumPy en el mismo espacio de memoria. El código Python de la estrategia lee datos de propiedad de C++ sin asignaciones.
De la arquitectura a los nanosegundos: un enfoque sistemático del rendimiento.
El executor de proceso único V3 eliminó la serialización IPC, la generación de procesos y el marshaling de datos entre procesos. La mayor ganancia provino de la simplificación arquitectónica.
Temporización RDTSC con anclaje de afinidad de CPU. Seguimiento de percentiles P50/P90/P99/P999 en 12 programas de benchmark. Se estableció infraestructura de medición reproducible.
LTO, -march=native, abstracción SIMD xsimd, asignador mimalloc, logging de baja latencia Quill, contenedores Abseil. Optimizaciones a nivel de compilador y librería.
Infraestructura PMR, asignadores alineados a caché, cero asignaciones en la ruta crítica. Objetivo: fallos de caché L1 < 5% y fallos TLB < 0,5%.
Clone, compile y ejecute su primer backtest en minutos. El motor está incluido en el nivel gratuito.
git clone https://github.com/StratCraft/StratCraft.git\ncd StratCraft\npnpm install && pnpm dev:desktop