22 Junho 2021 15:40

Backtesting

O que é backtesting?

O backtesting é o método geral para ver se uma estratégia ou modelo teria se saído bem a posteriori. O backtesting avalia a viabilidade de uma estratégia de negociação, descobrindo como ela funcionaria usando dados históricos. Se o backtesting funcionar, os traders e analistas podem ter a confiança para empregá-lo no futuro.

Principais vantagens

  • O backtesting avalia a viabilidade de uma estratégia de negociação ou modelo de precificação, descobrindo como teria funcionado retrospectivamente usando dados históricos.
  • A teoria subjacente é que qualquer estratégia que funcionou bem no passado provavelmente funcionará bem no futuro e, inversamente, qualquer estratégia que funcionou mal no passado provavelmente terá um desempenho ruim no futuro.
  • Ao testar uma ideia em dados históricos, é benéfico reservar um período de tempo de dados históricos para fins de teste. Se for bem-sucedido, testá-lo em períodos alternados ou dados fora da amostra pode ajudar a confirmar sua viabilidade potencial.

Noções básicas sobre backtesting

O backtesting permite que um trader simule uma estratégia de negociação usando dados históricos para gerar resultados e analisar o risco e a lucratividade antes de arriscar qualquer capital real.

Um backtest bem conduzido que produz resultados positivos garante aos traders que a estratégia é fundamentalmente sólida e que provavelmente produzirá lucros quando implementada na realidade. Em contraste, um backtest bem conduzido que produz resultados abaixo do ideal, fará com que os traders alterem ou rejeitem a estratégia.



Estratégias de negociação particularmente complicadas, como estratégias implementadas por sistemas de negociação automatizados, dependem fortemente de backtesting para provar seu valor, pois são muito misteriosas para avaliar o contrário.

Contanto que uma ideia de negociação possa ser quantificada, ela pode ser testada novamente. Alguns comerciantes e investidores podem buscar a experiência de um programador qualificado para desenvolver a ideia em uma forma testável. Normalmente, isso envolve um programador codificando a ideia na linguagem proprietária hospedada pela  plataforma de negociação.

O programador pode incorporar variáveis ​​de entrada definidas pelo usuário que permitem ao negociante “ajustar” o sistema. Um exemplo disso seria o  sistema de cruzamento de média móvel simples (SMA). O trader seria capaz de inserir (ou alterar) os comprimentos das duas médias móveis usadas no sistema. O trader poderia então fazer um backtest para determinar quais comprimentos de médias móveis teriam o melhor desempenho nos dados históricos.

O cenário de backtesting ideal

O backtest ideal escolhe dados de amostra de um período de tempo relevante de uma duração que reflete uma variedade de condições de mercado. Desta forma, pode-se julgar melhor se os resultados do backtest representam um acaso ou uma boa negociação.

O conjunto de dados históricos deve incluir uma amostra verdadeiramente representativa de ações, incluindo aquelas de empresas que faliram, foram vendidas ou liquidadas. A alternativa, incluindo apenas dados de ações históricas que ainda existem hoje, produzirá retornos artificialmente altos no backtesting.

Um backtest deve considerar todos os custos de negociação, por mais insignificantes, pois eles podem aumentar ao longo do período de backtesting e afetar drasticamente a aparência da lucratividade de uma estratégia. Os comerciantes devem garantir que seu software de backtesting contabilize esses custos.

O teste fora da amostra e o teste de desempenho direto fornecem confirmação adicional sobre a eficácia de um sistema e podem mostrar as verdadeiras cores do sistema antes que o dinheiro real esteja em jogo. Uma forte correlação  entre os resultados dos testes de desempenho backtesting, out-of-sample e forward é vital para determinar a viabilidade de um sistema de negociação. 

Backtesting vs. teste de desempenho avançado

O teste de desempenho para a frente, também conhecido como  negociação de papel, fornece aos negociantes outro conjunto de dados fora da amostra para avaliar um sistema. O teste de desempenho para a frente é uma simulação da negociação real e envolve seguir a lógica do sistema em um mercado ativo. É também chamada de negociação em papel, uma vez que todas as negociações são executadas apenas em papel; ou seja, as entradas e saídas de negociação são documentadas junto com qualquer lucro ou perda para o sistema, mas nenhuma negociação real é executada.

Um aspecto importante do teste de desempenho avançado é seguir exatamente a lógica do sistema; caso contrário, torna-se difícil, senão impossível, avaliar com precisão esta etapa do processo. Os comerciantes devem ser honestos sobre quaisquer entradas e saídas de negociação e evitar comportamentos como  a escolha seletiva de  negociações ou não incluir uma negociação no papel, racionalizando que “Eu nunca teria feito essa negociação.” Se a negociação ocorresse seguindo a lógica do sistema, ela deve ser documentada e avaliada.

Backtesting vs. Análise de cenário

Enquanto o backtesting usa dados históricos reais para testar o ajuste ou sucesso, a análise de cenário usa dados hipotéticos que simulam vários resultados possíveis. Por exemplo, a análise de cenário simulará mudanças específicas nos valores dos títulos da carteira ou fatores-chave que ocorrem, como uma mudança na taxa de juros.

A análise de cenário é comumente usada para estimar mudanças no valor de uma carteira em resposta a um evento desfavorável e pode ser usada para examinar o pior cenário teórico.

Algumas armadilhas do backtesting

Para que o backtesting forneça resultados significativos, os traders devem desenvolver suas estratégias e testá-las de boa fé, evitando preconceitos tanto quanto possível. Isso significa que a estratégia deve ser desenvolvida sem depender dos dados usados ​​no backtesting.

É mais difícil do que parece. Os comerciantes geralmente constroem estratégias com base em dados históricos. Eles devem ser rigorosos quanto aos testes com conjuntos de dados diferentes daqueles em que treinam seus modelos. Caso contrário, o backtest produzirá resultados brilhantes que não significam nada.

Da mesma forma, os traders devem evitar a dragagem de dados, na qual testam uma ampla gama de estratégias hipotéticas contra o mesmo conjunto de dados, o que também produzirá sucessos que falham em mercados em tempo real porque existem muitas estratégias inválidas que derrotariam o mercado em um período de tempo específico por acaso.

Uma maneira de compensar a tendência de dragar ou selecionar dados é usar uma estratégia que tenha sucesso no período de tempo relevante ou dentro da amostra e fazer um backtest com dados de um período de tempo diferente ou fora da amostra. Se os backtests dentro e fora da amostra produzirem resultados semelhantes, é mais provável que eles sejam comprovados como válidos.