Validação de backtests · Pesquisa quantitativa
CopyTradeAudit
Um motor de backtest construído para quebrar os próprios resultados — e o resultado negativo honesto que produziu.
- Python
- FastAPI
- pytest
- SQLite
- uv
O problema
Muitos produtos vendem a mesma ideia: os mercados de previsão publicam cada operação, alguns traders são consistentemente lucrativos, então siga-os e lucre. É uma ideia fácil de testar com backtest e igualmente fácil de testar errado: basta um vazamento de informação futura, ou cinquenta mercados correlacionados contados como cinquenta observações independentes, e o resultado parece excelente sem significar nada.
Para quem é
Qualquer pessoa cuja decisão se apoie num backtest: uma estratégia prestes a entrar ao vivo, o histórico de um fornecedor, um número bom demais para ser contestado.
O que faz
Um núcleo de pesquisa determinístico em Python — cerca de 3.500 linhas cobertas por 103 testes — avaliado contra 370 mercados, 134.000 operações reais e 46 eventos independentes. O veredito foi que não há vantagem mensurável: as operações selecionadas por cópia renderam +0,0200 por ação acima da faixa de preço 0,95, enquanto comprar essa mesma faixa às cegas, sem trader nenhum envolvido, rendeu +0,0211.
Decisões-chave
- À prova de vazamento por construção: em cada sinal, a habilidade de um trader é calculada apenas a partir de mercados já liquidados naquele momento — nunca a partir do que aconteceu depois.
- Intervalos bootstrap agrupados por evento, para que cinquenta mercados correlacionados dentro de um mesmo evento contem como uma observação e não como cinquenta.
- Execução simulada contra um livro de ofertas real, com taxas, slippage e execuções parciais, em vez de assumir preenchimento no ponto médio.
- Publiquei o resultado negativo em vez do lisonjeiro, e marquei uma estratégia como INCONCLUSIVE porque o que estava quebrado era a medição, não o modelo.
O que aprendi
Encontrei quatro bugs na minha própria metodologia, e cada um já havia fabricado um falso positivo convincente — incluindo uma estratégia com 100% de acerto em 36 operações cuja vantagem real sobre a entrada às cegas era de 0,8%. Ordenar traders por taxa de acerto não encontra habilidade: encontra quem compra quase-certezas a 98 centavos. Uma resposta errada e confiante custa mais do que resposta nenhuma.
Para onde vai
Transformar as verificações de vazamento e agrupamento numa bancada que possa ser apontada para o backtest de outra pessoa, aplicando o mesmo rigor a uma estratégia que não escrevi.
Apenas no papel — sem operação ao vivo e sem dinheiro real, por decisão de projeto.