10 de Novembro de 2026 · dados

Seu backtest precisa de um registro de alterações dos dados, não apenas de um snapshot

Seu backtest precisa de um registro de alterações dos dados, não apenas de um snapshot

Um snapshot congelado de dados de mercado não basta para tornar um backtest confiável. Ele pode reproduzir a mesma resposta enquanto oculta que o fornecedor alterou os dados de entrada que a geraram.

Guarde o snapshot. Depois, mantenha um registro de alterações que mostre o que mudou, quando mudou e se isso fez diferença para a estratégia. Isso é mais importante quando a pesquisa usa trades corrigidos, fundamentos revisados, funding reconstruído ou um histórico que o fornecedor atualizou discretamente.

Como um backtest reproduzível ainda pode induzir você ao erro?

Imagine que você baixe cinco anos de candles horários na segunda-feira e rode uma estratégia. Na sexta-feira, o fornecedor já corrigiu um trade incorreto, ajustou um evento corporativo ou preencheu uma lacuna. Seu arquivo salvo ainda reproduz exatamente o resultado de segunda-feira. Isso é reprodutibilidade. Mas, se você rodar novamente com o histórico atual do fornecedor, talvez obtenha outro resultado e não tenha registro do motivo.

O problema não se limita a correções drásticas. Uma única máxima alterada pode acionar um stop; um fechamento revisado pode levar um indicador a cruzar seu limite. Em um universo amplo, o histórico de um ativo pode mudar sua classificação e tirar outro ativo da carteira. O Sharpe final pode variar mesmo com o código e a configuração da estratégia idênticos.

Um hash de arquivo informa que dois arquivos são diferentes. Ele não diz se um ajuste por desdobramento alterou 40 anos de preços, se o fornecedor corrigiu três trades ou se um parser converteu um campo vazio em zero.

O que deve constar em um registro de alterações dos dados de mercado?

Registre as alterações na menor unidade útil, com contexto suficiente para reproduzir a pesquisa afetada. Para um feed de candles, isso geralmente inclui o instrumento, o intervalo, o horário do evento, os valores anteriores e novos, a fonte e o momento em que você observou a atualização. Preserve o payload original quando o fornecedor o disponibilizar.

RegistrePor que guardarExemplo
Versão da fonte ou horário de obtençãoIdentifica o estado do fornecedor usadoSnapshot obtido em 2026-11-02 08:15 UTC
Campo alterado e valores antigo/novoMostra o que realmente mudouETHUSDT 1h máxima: 3,412.10 → 3,418.60
Classificação da alteraçãoDistingue correções de transformaçõesCorreção tardia de trade, ajuste por desdobramento, preenchimento retroativo
Versão do pipeline e do esquemaDiferencia alterações na fonte do processamento feito por vocêNormalizador v7, esquema de candles ajustados v3

Para conjuntos de dados grandes, armazene snapshots imutáveis e um manifesto compacto com seus checksums, versões da fonte e horários de obtenção. Acrescente diferenças por linha para as partições alteradas. Assim, você encontra um meio-termo prático: é possível reproduzir tudo sem gravar cada linha inalterada em uma segunda tabela de auditoria.

Como medir se uma correção faz diferença?

Não pare depois de contar as linhas alteradas. Rode novamente a estratégia afetada com os dados antigos e os novos, mantendo iguais o código, os parâmetros, as taxas e as premissas de execução. Compare as decisões e o percurso até o resultado.

  1. Identifique no diff os instrumentos e horários de eventos afetados.
  2. Descubra quais features, sinais, ordens ou pesos da carteira usam esses registros.
  3. Reproduza a menor janela válida, incluindo qualquer lookback e o estado das posições abertas.
  4. Compare ordens, execuções, exposição, giro, drawdown e desempenho final.

Por exemplo, uma correção do fornecedor que altera em $0.02 a máxima de um candle de 1 minuto pode afetar um milhão de linhas sem ter efeito em uma estratégia de momentum diário. Um único candle corrigido em um nível de stop pode fazer mais diferença. Meça o impacto nas decisões; a contagem de registros alterados é um indicador indireto ruim.

Mantenha separadas duas perguntas: “Consigo reproduzir o resultado com os dados que salvei?” e “Essa versão dos dados estaria disponível para a estratégia naquela época?” Um registro de alterações ajuda a responder às duas, mas a segunda também exige registros de disponibilidade ponto no tempo.

Qual é o custo e quando vale a pena?

O rastreamento de alterações exige armazenamento, trabalho de ingestão e decisões operacionais. Os fornecedores talvez não ofereçam versões estáveis, e alguns feeds históricos são reconstruídos periodicamente sem um aviso claro das correções. Você não consegue registrar uma alteração que nunca observa.

Comece pelos dados cujas revisões podem alterar as conclusões da pesquisa: candles usados pela lógica de stop, ações ajustadas por eventos corporativos, fundamentos ponto no tempo e séries de funding ou open interest que são reconstruídas. Um manifesto diário e checksums por partição podem bastar para conjuntos de dados amplos e estáveis. Acrescente diffs por campo onde as atualizações forem frequentes ou as decisões de trade dependerem de registros individuais.

Os críticos têm razão ao dizer que um arquivo completo e permanente de cada resposta do fornecedor pode sair caro e ainda assim não registrar o que a fonte sabia na época. A solução é limitar a auditoria aos dados e às decisões que importam e documentar as lacunas. Um snapshot permite repetir um experimento. Um registro de alterações permite explicar por que a resposta do experimento mudou.

engenharia de dadosbacktestingreprodutibilidadepesquisa quantitativa
← Todos os artigos