Em palavras simples — Um backtest pergunta como regras definidas hoje teriam se comportado em dados passados. A resposta depende tanto das regras quanto dos dados, do relógio, dos custos e das escolhas feitas durante a pesquisa.
Um backtest é uma simulação histórica de uma estratégia. Ele reconstrói, evento após evento, quais informações estariam disponíveis, qual decisão a regra produziria, qual ordem poderia ser enviada e como caixa, posição, custos e risco evoluiriam. Sua curva não é um extrato de operações reais nem uma previsão: é a consequência de um conjunto declarado de premissas.
O que precisa ser especificado
| Coordenada | O que deve ficar visível |
|---|---|
| Hipótese e universo | mecanismo esperado, instrumentos elegíveis e composição histórica |
| Dados | fonte, campos, ajustes, timestamp de disponibilidade, versões e missing |
| Sinal e posição | fórmula, parâmetros, estado, sizing, restrições e rebalanceamento |
| Ordens | tipo, validade, latência, preço de referência, prioridade e fills parciais |
| Economia | comissões, spread, slippage, impacto, borrow, funding, rolagem e tributos pertinentes |
| Contabilidade | caixa, proventos, eventos corporativos, margem, marcação e moeda-base |
| Avaliação | período, benchmark, métricas, splits, tentativas e regra de seleção |
Uma regra como “comprar quando a média curta cruza a longa” deixa em aberto a barra usada, o primeiro preço negociável, o universo, os gaps, o tamanho, os custos e a saída. O motor precisa resolver cada ambiguidade; se ela não foi decidida antes, o pesquisador pode escolher retrospectivamente a versão mais favorável.
Causalidade: saber, decidir e executar
evento ≤ disponibilidade do dado ≤ cálculo do sinal ≤ envio da ordem ≤ primeiro fill possívelO timestamp econômico não é necessariamente o timestamp de disponibilidade. Um balanço se refere a um trimestre, mas é publicado depois; um índice anuncia e efetiva alterações em datas distintas; o close só pode ser definitivo após o leilão. Comprar no mesmo preço usado para produzir o sinal exige uma mecânica de mercado que torne isso possível, não apenas uma linha de código.
O estado também persiste entre eventos. Caixa, posição, ordens abertas, garantias e valores ainda não liquidados condicionam a próxima decisão. Um motor que recalcula cada barra como se começasse sem histórico pode ignorar restrições reais e contar duas vezes o mesmo capital.
Protocolo mínimo reproduzível
Antes do resultado final, documentam-se hipótese, dataset, universo, período, frequência, benchmark, métricas, custos, parâmetros candidatos e regra de decisão. Código, configuração, dependências, seed e snapshot ou hash dos dados identificam a execução. Um log dos testes inclui também configurações descartadas: escolher o melhor entre muitas alternativas altera a inferência.
O desenho separa desenvolvimento, seleção e teste. Um segmento consultado para ajustar a estratégia deixa de ser “não visto”. Walk-forward ou holdout não eliminam esse problema quando o pesquisador repete o processo até gostar do resultado final.
Custos e preços de referência
Resultado bruto e resultado líquido respondem a perguntas diferentes. Um modelo útil distingue comissão explícita, spread, slippage diante de um benchmark, impacto causado pela própria ordem, oportunidade perdida por não-fill, financiamento e custos específicos como borrow e rolagem.
O preço da barra não prova que a quantidade seria executada. High e low não revelam a sequência intrabar; volume total não garante prioridade; tocar uma ordem limitada não garante fill. Quanto mais a estratégia depende de baixa latência, fila ou liquidez passiva, mais dados e um simulador compatível são necessários.
Exemplo ilustrativo
Uma estratégia calcula o sinal após o fechamento de t e envia uma
ordem a mercado na abertura de t+1. O backtest usa o universo que
existia em t, mantém títulos posteriormente delistados, aplica o gap
da abertura, limita a participação no volume e registra comissão e spread. Se
o instrumento não negocia, a posição anterior permanece segundo uma regra de
exceção.
O exemplo não prescreve o uso da abertura seguinte. Mostra as coordenadas necessárias para que outra pessoa reconstrua a simulação.
Como ler o resultado
Retorno, drawdown, Sharpe ou profit factor são resumos condicionados ao período e ao caminho. A leitura pergunta quanto veio de poucas operações, quais exposições explicam o P&L, como o resultado muda após custos, qual é o número efetivo de observações e quantas configurações foram testadas. Resultados out-of-sample, robustez e teste prospectivo aumentam a informação; não convertem o passado em certeza.
Um relatório legível apresenta também posições, turnover, alavancagem, capacidade, distribuição dos fills, falhas, subperíodos e benchmark. A curva acumulada isolada esconde grande parte do mecanismo.
Limites
O backtest só observa regimes contidos nos dados e riscos representados pelo modelo. Não reproduz com certeza mudanças regulatórias, concorrência, impacto na escala futura, falhas operacionais ou eventos nunca observados. Dados corretos hoje podem não representar o que era conhecido no passado. Um bom backtest reduz erros evitáveis e torna a incerteza discutível; não valida por si só uma estratégia.
Fontes
- Halbert White, A Reality Check for Data Snooping, Econometrica, 2000 — inferência quando o melhor modelo emerge de muitas especificações exploradas.
- Robert D. Arnott, Campbell R. Harvey e Harry Markowitz, A Backtesting Protocol in the Era of Machine Learning — protocolo de pesquisa, seleção e escassez dos dados financeiros.
- Marcos López de Prado, What to Look for in a Backtest — número de testes, duração e características que devem ser divulgadas.
- André F. Perold, The Implementation Shortfall: Paper Versus Reality, The Journal of Portfolio Management, 1988 — comparação entre carteira teórica e execução efetiva.
- Comissão Europeia, Regulamento Delegado (UE) 2017/589, RTS 6 — metodologia, documentação e ambientes de teste dos sistemas algorítmicos em seu âmbito regulatório.