StratCraftStratCraftPortuguês

Benchmarks de Desempenho

Resultados medidos, nao alegacoes de marketing. Benchmarks detalhados serao publicados juntamente com o lancamento da v1.0.

StratForge vs Backtesters Python

Comparacao direta nas operacoes principais de backtest.

MetricaPythonStratForgeMelhoria
Indicador Unico (por barra)TBDTBDTBD
Passo de EstrategiaTBDTBDTBD
Backtest Completo (1M barras)TBDTBDTBD
ThroughputTBDTBDTBD
Consumo de MemoriaTBDTBDTBD

Jornada de Otimizacao

Como o StratForge compoe otimizacoes ao longo do pipeline de backtest.

Fase 1: Armazenamento Colunar de BarrasTBD

As barras sao armazenadas em buffers colunares amigaveis para a cache. As computacoes de indicadores fluem atraves de memoria contIgua em vez de perseguir ponteiros.

Fase 2: Indicadores IncrementaisTBD

Cada indicador mantem estado interno e atualiza em O(1) por barra. Sem recomputacao de janela deslizante.

Fase 3: Caminhos de Decisao Sem RamificacoesTBD

A logica de entrada/saida da estrategia e reescrita como aritmetica sem ramificacoes onde possivel para evitar paragens de pipeline em codigo condicional de preco.

Fase 4: Especializacao em Tempo de CompilacaoTBD

Parametros de indicadores conhecidos em tempo de compilacao tornam-se consteval. Templates especializados eliminam despacho em tempo de execucao.

Prova de Zero Alocacao

Executar uma passagem de backtest no caminho critico.

OperacaoBacktester PythonStratForge
Alocacoes de HeapMuitas (objetos Python por barra)0
Armazenamento de BarrasCopias de pandas DataFrameVistas std::span em buffer colunar
Estado do IndicadorAlocacao de array por chamadaEstado rotativo pre-alocado
Consumo de MemoriaDinamico, conduzido por GCEstatico, pre-alocado
DeterminismoDesvio de ponto flutuante entre execucoesReprodutivel bit-exato

Comparacao de Tecnicas

Decisoes de design que se compoem para backtesting deterministico e de baixa latencia.

TecnicaBacktester PythonStratForge
Layout de MemoriaOrientado por linhas (DataFrame)Colunar (amigavel para cache)
Atualizacoes de IndicadorRecomputar janela a cada chamadaIncremental O(1) por barra
Despacho de LoopLoop Python interpretadoLoop template C++ inlined
Determinismo NumericoDependente da versao NumPy / pandasBit-exato entre execucoes
Composicao de EstrategiaHierarquia de classes + despacho dinamicoConcepts + polimorfismo estatico
Tratamento de ErrosExcecoesstd::expected (sem throw)

Influencias de Arquitetura

Bibliotecas e frameworks lideres da industria estudados durante o design do StratForge.

BibliotecaO Que AprendemosO Que ConstruimosResultado
TA-LibDefinicoes canonicas de indicadores e tratamento de casos limiteBiblioteca de indicadores header-only em C++23138 indicadores
vectorbtAPI de backtest vetorizada e varrimentos de parametrosExpansao de parametros por template em tempo de compilacaoTBD
backtraderCiclo de vida de estrategia e hooks de eventosInterface de estrategia orientada por conceptsCiclo de vida type-safe
QuantLibArquitetura modular de precificacao e analiticaModulos analiticos plugaveisTBD
EigenExpression templates para matematica de sobrecarga zeroComposicao preguicosa de indicadoresSem buffers temporarios
ArrowPadroes de layout de memoria colunarArmazenamento de barras colunar nativoAmigavel para linha de cache
FollyPrimitivos lock-free e small_vectorDiarios de transacoes pre-alocadosTBD
HighwayAbstracao SIMD portavelLoops internos de indicadores compativeis com SIMDTBD
fmtStrings de formato em tempo de compilacaoFormatacao de relatorios de custo zeroTBD
Boost.PMRBuffer monotonico para alocacao de arenaPool std::pmr::monotonic_buffer_resourceZero alocacao de heap
Catch2Testes unitarios de indicadores em estilo BDDSuite de regressao bit-exataCI reprodutivel

Pronto para Experimentar StratForge?

Tres comandos para clonar e comecar a fazer backtest.

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