AnáliseLiçãoIntermediário

Armadilhas do backtest: overfitting, viés de sobrevivência e look-ahead

Por que backtests parecem melhores que a operação real: overfitting, viés de sobrevivência, erros de look-ahead e custos ignorados, com checklist para testar com honestidade.

9 min de leituraFatos verificadosPublicado em 16 de nov. de 2024

Principais conclusões

  • Um backtest apenas responde o que as regras teriam feito sob as hipóteses que você escolheu.
  • O overfitting cresce a cada configuração ajustável; prefira regras simples e platôs estáveis.
  • Erros de sobrevivência e de look-ahead inflam os resultados sem nenhum aviso visível.
  • Inclua custos realistas, use dados out-of-sample e faça um forward test antes de comprometer capital real.

Um backtest reproduz uma regra de trading sobre dados históricos para ver como ela teria se saído. É um filtro útil, mas também é surpreendentemente fácil de se enganar com ele. Muitas curvas de capital impressionantes vêm da configuração do teste, e não da ideia. Conhecer as armadilhas mais comuns ajuda a distinguir um resultado promissor de um resultado lisonjeiro.

O que um backtest pode e não pode dizer

Um backtest responde a uma pergunta estreita: dadas estas regras, estes dados e estas hipóteses sobre custos e execuções, o que teria acontecido? Ele não diz o que vai acontecer. No máximo, consegue descartar ideias fracas a baixo custo e dar uma noção aproximada de com que frequência um método perde, quão profundos foram seus drawdowns e quão sensível ele é às configurações.

Como você escolhe os dados, as regras e as hipóteses, cada escolha é uma chance de o viés se infiltrar. As cinco armadilhas abaixo explicam a maior parte da diferença entre os resultados do backtest e os resultados reais.

ArmadilhaO que dá erradoUma checagem rápida
OverfittingAs regras são ajustadas até coincidir com o ruído do passadoUma pequena mudança nas configurações destrói o resultado?
Viés de sobrevivênciaOs dados só incluem ativos que ainda existemO conjunto de dados inclui instrumentos que saíram de negociação ou foram incorporados?
Viés de look-aheadO teste usa informações ainda não disponíveisEsse valor poderia ser conhecido no momento da operação?
Custos ignoradosSpread, comissão, derrapagem (slippage) e swap ficam de foraO resultado continua positivo com custos realistas dobrados?
Data snoopingMuitas ideias são testadas e só a melhor é mantidaQuantas variações foram testadas antes desta?

Overfitting: ajustar-se ao ruído

Overfitting, também chamado de curve fitting, significa moldar uma estratégia tão de perto aos dados passados que ela captura peculiaridades aleatórias em vez de comportamentos repetíveis. Quanto mais configurações ajustáveis uma regra tem, mais fácil é cair nisso.

Veja um exemplo de escala. Digamos que você teste períodos de média móvel de 5 a 100 em passos de 5 (20 valores), tamanhos de stop em 20 passos e 10 take profits diferentes. São 20 × 20 × 10 = 4.000 combinações. Mesmo que cada uma delas fosse um cara ou coroa sem vantagem real, algumas pareceriam excelentes só por sorte. Escolher o vencedor entre 4.000 tentativas aleatórias mostra qual foi o mais sortudo, não qual é o melhor.

Procure platôs, não picosUma ideia robusta tende a funcionar, com resultados parecidos, em uma vizinhança de configurações. Se a configuração de 20 períodos é ótima, mas 18 e 22 são ruins, você provavelmente encontrou um pico de ruído. Prefira configurações no meio de uma região ampla e estável.

Viés de sobrevivência: os perdedores ausentes

O viés de sobrevivência aparece quando o conjunto de dados contém apenas os ativos que sobreviveram até hoje. Empresas que faliram, saíram de negociação ou foram adquiridas com prejuízo ficam discretamente ausentes, e suas perdas também. Testar uma regra de seleção de ações usando a lista atual de membros de um índice é um caso clássico.

Números ilustrativos mostram o efeito. Suponha que 100 ações estivessem disponíveis no início de um período de dez anos. Oitenta sobreviveram e renderam em média 10% ao ano. Vinte saíram de negociação e perderam em média 15% ao ano. O grupo todo teve média de (80 × 10 + 20 × −15) ÷ 100 = 5% ao ano. Um teste que use apenas as sobreviventes reporta 10%, o dobro da realidade. O mesmo problema pode afetar fundos, sistemas de trading com históricos publicados e até pares de moedas que foram retirados de uma plataforma.

Viés de look-ahead: conhecer o futuro por acidente

O viés de look-ahead significa que o teste usa dados que não estariam disponíveis no momento da decisão. Costuma ser sutil. Exemplos incluem comprar no preço de fechamento de um candle depois de o sinal ter sido calculado com esse mesmo fechamento, usar a máxima ou a mínima do dia para posicionar uma ordem mais cedo naquele dia, ou trabalhar com dados econômicos na versão revisada posteriormente, em vez da versão divulgada na época.

  • Opere na abertura do candle seguinte, e não no candle que gerou o sinal, a menos que você realmente consiga agir no fechamento.
  • Verifique se todo indicador usa apenas valores passados, especialmente indicadores personalizados ou que repintam, que alteram seus traçados históricos depois do fato.
  • Use dados point-in-time para fundamentos e para a composição de índices.
  • Desconfie de qualquer resultado que pareça suave demais. A operação real raramente produz curvas perfeitamente estáveis.

Custos, execuções e tamanho da amostra

Uma regra que rende uma pequena vantagem por operação pode desaparecer quando os custos são incluídos. Métodos intradiários com muitas operações são os mais expostos, porque cada operação paga o spread de novo. Modele os custos de forma conservadora, use spreads realistas para o horário do dia e acrescente derrapagem (slippage) nas ordens de stop, que costumam ser executadas a um preço pior que o do seu nível durante movimentos rápidos.

O tamanho da amostra importa tanto quanto. Um backtest com 25 operações é uma anedota. Muitos profissionais buscam pelo menos algumas centenas de operações, distribuídas em diferentes condições de mercado, antes de tratar as estatísticas com alguma confiança. As condições também importam: um teste feito apenas durante uma longa tendência de alta constante diz pouco sobre um mercado lateral ou em queda.

Um fluxo de validação mais honesto

  1. Escreva as regras antes de testar. Coloque a hipótese e as regras no papel, incluindo quantas configurações você vai variar. Isso limita o quanto você pode ajustar depois de ver os resultados.
  2. Divida os dados. Ajuste suas regras em um período anterior, chamado in-sample, e mantenha um período posterior, chamado out-of-sample, intocado. Uma divisão comum é cerca de 70% para construir e 30% para verificar.Dica: Olhe os dados reservados uma única vez. Espiar repetidamente os transforma em dados in-sample.
  3. Teste a sensibilidade das configurações. Mexa em cada parâmetro para cima e para baixo. Se os resultados mudarem drasticamente, a regra é frágil.
  4. Adicione custos realistas. Inclua spread, comissão, swap e derrapagem, depois dobre os custos e veja se sobra alguma coisa.
  5. Faça walk-forward. Reajuste em uma janela móvel e teste no trecho seguinte ainda não visto, repetindo ao longo dos dados. Isso imita como você realmente teria de adaptar as regras.
  6. Faça um forward test pequeno. Rode as regras em uma conta demo ou com tamanho mínimo por um número significativo de operações e compare o comportamento real com o backtest.
Um bom backtest é um motivo para testar mais, não para operar maiorMesmo um resultado cuidadosamente validado pode falhar na operação real, porque os mercados mudam e a sua própria execução difere do modelo. Produtos alavancados ampliam o dano quando uma vantagem do backtest se revela uma ilusão.

Perguntas frequentes

De quantas operações preciso em um backtest?

Não há um limite fixo, mas dezenas são poucas demais. Mais operações reduzem o ruído nas estatísticas, e cobrir diferentes condições de mercado importa tanto quanto a contagem bruta.

O teste out-of-sample basta para provar que uma estratégia funciona?

Não. Ele reduz o risco de overfitting, mas não o elimina, especialmente se você testa muitas ideias e fica com a que passa. Também não consegue capturar mudanças futuras no mercado.

Qual a diferença entre um backtest e um forward test?

O backtest usa dados passados, enquanto o forward test roda as regras sobre dados novos à medida que chegam, em uma conta demo ou com um tamanho real pequeno. Os forward tests revelam problemas de execução e de custos que o histórico esconde.

Posso confiar no backtest publicado por um fornecedor?

Trate-o como marketing até saber a fonte dos dados, os custos, o número de variações testadas e se os resultados são reais ou simulados. Um histórico real verificado e auditado de forma independente pesa mais do que qualquer simulação.

Sobre o autorEquipe editorial da Brokeli A equipe editorial da Brokeli escreve e revisa nossos guias educacionais. Os números sobre corretoras vêm de snapshots de pesquisa publicados, e os guias não trazem sinais de trading.Equipe editorial →
Armadilhas do backtest: overfitting, sobrevivência e look-ahead · Brokeli