Uma linha de dados de mercado pode estar perfeitamente correta e ainda assim não servir como evidência para um backtest. A negociação aconteceu, o preço está certo e o registro de data e hora é válido; mas o feed pode ter chegado atrasado, um fornecedor pode tê-lo corrigido depois ou o mercado cotado talvez não fosse acessível à sua estratégia.
Para saber se os dados históricos eram negociáveis, audite mais do que o horário do evento. Você precisa saber o que a linha descreve, quando ela ficou disponível para o sistema, qual plataforma ou instrumento representa e se a cotação ou negociação poderia plausivelmente embasar sua ordem.
Um preço histórico correto basta para um backtest?
Não. A precisão responde: “Qual preço a fonte acabou registrando?” Um backtest também precisa responder: “O que minha estratégia poderia saber no momento da decisão?” e “O que ela poderia executar?” São perguntas distintas.
Imagine que uma negociação de cripto seja registrada às 12:00:00.120, mas o feed do fornecedor de dados só a entregue ao seu processo às 12:00:00.480. Uma estratégia que decide às .200 não pode usar essa negociação, embora o horário do evento seja anterior ao da decisão. Se o arquivo histórico guardar apenas o horário do evento, o backtest pode conceder à estratégia, sem que isso fique evidente, informações que seu processo ao vivo ainda não teria recebido.
| Horário ou campo | O que informa | Falha no backtest se estiver ausente |
|---|---|---|
| Horário do evento | Quando a exchange informa que o evento ocorreu | Confundir o horário do mercado com a disponibilidade para a estratégia |
| Horário de recebimento | Quando seu coletor recebeu a mensagem | Usar dados atrasados como se tivessem chegado instantaneamente |
| Sequência ou ID de atualização | A posição do evento na ordem do feed | Aplicar atualizações fora de ordem ou ignorá-las sem perceber |
| Horário da revisão | Quando um valor histórico corrigido se tornou conhecido | Fazer o backtest com um valor que não existia no feed original |
Se seu arquivo não tiver horários de recebimento, reconheça essa lacuna. Você pode testar uma hipótese de latência ou limitar a conclusão à pesquisa baseada no horário do evento. Não é possível reconstruir o conjunto exato de informações a partir de registros de data e hora que nunca foram salvos.
Como saber se uma cotação podia ser executada?
Comece pelo mercado ao qual sua ordem teria sido enviada. A melhor oferta consolidada de compra e venda pode resumir várias plataformas; isso não prova que sua conta tinha acesso à quantidade exibida, que a cotação ainda estaria disponível quando sua ordem chegasse ou que a plataforma aceitaria o tipo de ordem.
Para uma ordem a mercado, presumir execução no preço médio geralmente é ficção. Uma estimativa mais útil percorre o livro visível de acordo com o tamanho da ordem e depois soma as taxas e uma hipótese de latência ou impacto. Se você só tem dados do topo do livro, limite a conclusão: dá para estimar o primeiro nível, mas não inferir uma profundidade que nunca foi registrada.
Para uma ordem limitada, o preço tocar seu limite não significa que ela foi executada. Ordens à sua frente podem consumir primeiro a quantidade disponível. Em geral, não é possível saber a posição na fila com snapshots comuns; por isso, uma regra de execução baseada apenas no toque deve ser tratada como um cenário otimista, não como um fato sobre o que aconteceu.
Um candle de 1 minuto pode mostrar que a mínima cruzou seu limite. Ele não mostra se sua ordem passiva chegou à plataforma antes dessa mínima, quanto foi negociado ali ou quantas ordens estavam à sua frente na fila.
O que devo verificar antes de confiar em um arquivo de dados de mercado?
Começo pelas propriedades mais básicas. Elas detectam mais problemas de pesquisa do que um modelo sofisticado de execução acrescentado a um feed defeituoso.
- Cobertura: Há intervalos ausentes, eventos duplicados, lacunas na sequência ou picos inexplicáveis de volume zero?
- Identidade do mercado: O símbolo corresponde à mesma exchange, ao mesmo contrato, à mesma moeda de cotação e às mesmas especificações do instrumento ao longo do tempo?
- Disponibilidade: Os horários do evento e de recebimento foram preservados? Se não, que hipótese de atraso limita o resultado?
- Correções: É possível distinguir a mensagem original de preenchimentos retroativos ou revisões posteriores do fornecedor?
- Unidades: Preços, quantidades, multiplicadores de contrato e registros de data e hora são interpretados de forma consistente?
Essa última verificação parece básica até demais. Certa vez, passei uma manhã investigando uma aparente mudança no regime de volatilidade que acabou sendo causada por um campo de quantidade que mudou de unidade após a migração do feed. O gráfico estava lindo; a unidade, errada.
Como posso testar se a disponibilidade dos dados altera o resultado?
Faça um pequeno teste de sensibilidade em torno do limite de decisão da estratégia. Atrase os dados utilizáveis por períodos realistas, descarte atualizações com continuidade de sequência comprometida e compare as execuções usando o livro da plataforma real quando esses dados estiverem disponíveis. Apresente os resultados original e degradado. Se um atraso mínimo eliminar o efeito, talvez a estratégia dependa de uma vantagem de informação que sua configuração de coleta não consegue fornecer de forma confiável.
Por exemplo, suponha que um sinal seja disparado quando a melhor oferta de compra sobe 1 tick. Reproduza-o uma vez com o horário do evento da exchange e outra com o horário de recebimento do coletor. Se a versão baseada no horário do evento gerar 40 negociações e a baseada no horário de recebimento gerar 27, essa diferença faz parte das evidências da estratégia. O desempenho em cada reprodução também. Não esconda a reprodução mais fraca só porque seus dados parecem menos elegantes.
O paper trading é uma etapa útil porque expõe atrasos no feed, cotações desatualizadas, erros no mapeamento de símbolos e filtros da plataforma pelo mesmo fluxo operacional que seu sistema de pesquisa usa. Ainda assim, ele não reproduz todas as filas ao vivo nem todo o impacto de mercado. Deixe esse limite claro.
O que “dados negociáveis” significa na prática?
Significa que o backtest consegue explicar quando uma observação ocorreu, quando a estratégia poderia utilizá-la, de qual mercado ela veio e quais evidências de execução embasam a execução presumida. Uma série de preços limpa é um ponto de partida. A pesquisa ganha credibilidade quando suas hipóteses sobre horário, acesso e execução resistem à análise — e quando o resultado continua fazendo sentido mesmo depois de enfraquecê-las.
← Todos os artigos


