25 de setembro de 2026 · investigação

Como sei se os dados de mercado de um backtest eram realmente negociáveis?

Como sei se os dados de mercado de um backtest eram realmente negociáveis?

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 ocorreu, o preço está certo e o carimbo temporal é válido; mas o feed pode tê-la entregue com atraso, um fornecedor pode tê-la corrigido posteriormente ou o mercado cotado pode não ser acessível à sua estratégia.

Para saber se os dados históricos eram negociáveis, audite mais do que o carimbo temporal do evento. Precisa de saber o que a linha descreve, quando ficou disponível para o sistema, que plataforma ou instrumento representa e se a cotação ou negociação poderia, de forma plausível, sustentar a sua ordem.

Um preço histórico correto basta para um backtest?

Não. A precisão responde à pergunta: «Que preço acabou por ser registado pela fonte?» Um backtest também tem de responder a: «O que poderia a minha estratégia saber no momento da decisão?» e «O que poderia ter executado?» São perguntas distintas.

Imagine que uma negociação de criptoativos é registada às 12:00:00.120, mas o feed do seu fornecedor de dados só a entrega ao seu processo às 12:00:00.480. Uma estratégia que decida às .200 não pode usar essa negociação, embora o carimbo temporal do evento seja anterior à decisão. Se o ficheiro histórico guardar apenas a hora do evento, o backtest pode acabar por atribuir silenciosamente à estratégia informação que o processo em produção ainda não teria recebido.

Hora ou campoO que indicaFalha do backtest se faltar
Hora do eventoQuando a plataforma indica que o evento ocorreuConfundir a hora de mercado com a disponibilidade para a estratégia
Hora de receçãoQuando o seu coletor recebeu a mensagemUsar dados atrasados como se tivessem chegado instantaneamente
Sequência ou ID de atualizaçãoA posição do evento na ordem do feedAplicar atualizações fora de ordem ou ignorá-las sem se aperceber
Hora da revisãoQuando se ficou a conhecer um valor histórico corrigidoFazer o backtest com um valor que não existia no feed original

Se o seu arquivo não tiver horas de receção, seja transparente quanto a essa lacuna. Pode testar uma hipótese de latência ou limitar a conclusão à investigação baseada na hora do evento. Não pode reconstruir o conjunto exato de informação a partir de carimbos temporais que nunca foram guardados.

Como sei se uma cotação era executável?

Comece pelo mercado a que a sua ordem teria sido encaminhada. A melhor oferta de compra e venda consolidada pode resumir várias plataformas; não prova que a sua conta tinha acesso ao volume apresentado, que a cotação ainda estava disponível quando a ordem chegou ou que a plataforma aceitaria o tipo de ordem.

Para uma ordem de mercado, assumir uma execução ao preço médio é, regra geral, ficção. Uma estimativa mais útil percorre o livro de ordens visível tendo em conta o tamanho da ordem e acrescenta comissões e uma hipótese de latência ou impacto. Se só tiver dados do topo do livro, limite a conclusão: pode estimar o primeiro nível, mas não inferir uma profundidade que nunca foi registada.

Numa ordem limitada, o simples facto de o preço ser atingido não significa que a ordem tenha sido executada. As ordens à sua frente podem consumir primeiro a quantidade disponível. Normalmente, os snapshots comuns não permitem saber a posição na fila, por isso uma regra de execução baseada no toque do preço deve ser tratada como um cenário otimista, não como um facto sobre o que aconteceu.

Uma barra de 1 minuto pode indicar que o mínimo atravessou o seu preço limite. Não revela se a sua ordem pendente chegou à plataforma antes desse mínimo, quanto foi negociado nesse preço ou quantas ordens estavam à sua frente na fila.

O que devo verificar antes de confiar num arquivo de dados de mercado?

Começo por verificar as propriedades mais básicas. Estas detetam mais problemas de investigação do que um modelo de execução sofisticado acrescentado a um feed defeituoso.

Esta última verificação parece quase básica demais. Uma vez passei uma manhã a investigar uma aparente mudança de regime de volatilidade que afinal se devia a um campo de quantidade que mudou de unidades após a migração de um feed. O gráfico era belíssimo; a unidade estava errada.

Como posso testar se a disponibilidade dos dados altera o resultado?

Faça um pequeno teste de sensibilidade em torno do limiar de decisão da estratégia. Atrase os dados utilizáveis por períodos realistas, descarte atualizações com continuidade de sequência quebrada e compare as execuções usando o livro da plataforma efetiva, quando o tiver. Apresente tanto o resultado original como o degradado. Se um atraso mínimo eliminar o efeito, a estratégia pode depender de uma vantagem informativa que a sua configuração de recolha não consegue fornecer de forma fiável.

Por exemplo, imagine que um sinal é acionado quando a melhor oferta de compra sobe 1 tick. Reproduza-o uma vez usando a hora do evento da plataforma e outra usando a hora de receção do coletor. Se a versão baseada na hora do evento gerar 40 negociações e a versão baseada na hora de receção gerar 27, essa diferença faz parte da evidência sobre a estratégia. O desempenho em cada reprodução também. Não esconda a reprodução mais fraca só porque os dados parecem menos elegantes.

A negociação em simulação é uma etapa de verificação útil, pois expõe atrasos do feed, cotações desatualizadas, erros no mapeamento de símbolos e filtros da plataforma no mesmo percurso operacional usado pelo seu sistema de investigação. Ainda assim, não reproduz todas as filas reais nem todo o impacto no mercado. Mantenha esse limite claro.

O que significa, na prática, «dados negociáveis»?

Significa que o backtest consegue explicar quando ocorreu uma observação, quando a estratégia a poderia utilizar, de que mercado veio e que evidência de execução sustenta a execução assumida. Uma série de preços limpa é um ponto de partida. A investigação ganha credibilidade quando as suas hipóteses sobre o momento, o acesso e a execução resistem a uma análise — e quando o resultado continua a fazer sentido depois de as tornar menos favoráveis.

dados de mercadobacktestingengenharia de dadosexecuçãonegociação em simulação
← Todos os artigos