Como fazer o Backtest de uma Estratégia de Trading
Página Inicial
Artigos
Como fazer o Backtest de uma Estratégia de Trading

Como fazer o Backtest de uma Estratégia de Trading

Intermediário
Publicado em Dec 17, 2020Atualizado em Jun 21, 2023
7m

TL;DR

Você acha que tem boas ideias sobre o mercado, mas não sabe como colocá-las à prova sem arriscar seus fundos? Para um bom trader, é essencial aprender como fazer o backtest de suas ideias de trades.

A ideia base do backtesting é que o que funcionou no passado pode funcionar no futuro. Mas como fazer isso sozinho? E como você deve avaliar os resultados? Vamos analisar um processo simples de backtesting.


Introdução

O backtesting é um dos principais componentes ao desenvolver sua própria estratégia de análise de gráficos e de trading. Ele é feito através da reconstrução de trades que teriam acontecido no passado com um sistema baseado em dados históricos. Os resultados do backtesting devem dar uma ideia geral sobre a eficácia de uma estratégia de investimento.

Antes de prosseguirmos, se você quiser fazer um backtest de suas próprias estratégias, a Binance Futures é o lugar perfeito. Se deseja obter acesso aos dados históricos da plataforma, por favor preencha este formulário.


O que é backtesting?

Caso queira informações mais detalhadas sobre o que é o backtesting, leia nosso artigo O que é Backtesting?

Resumidamente, o principal objetivo do backtesting é mostrar se suas ideias de trading são válidas. Você usa dados de mercado anteriores para ver qual seria o desempenho de uma estratégia. Se a estratégia parece ter potencial, pode ser que ela também seja eficaz em um ambiente de trading atual.


O que fazer antes do backtesting

Antes de começarmos com o exemplo de backtesting, você precisa determinar que tipo de profissional você é. Você é um trader discricionário ou sistemático?

O trading discricionário é baseado em decisões - os traders usam seu próprio julgamento para entrar e sair de uma posição. É uma estratégia relativamente flexível e aberta, em que a maioria das decisões depende da avaliação do trader sobre as condições e informações disponíveis. O backtesting é menos relevante quando se trata de trading discricionário, uma vez que a estratégia não é estritamente definida.

É claro que isso não significa que se você for um trader discricionário, não deve fazer backtesting ou paper trading. Significa apenas que os resultados podem não ser tão confiáveis.

O trading sistemático é mais aplicável ao nosso tópico. Os traders sistemáticos contam com um sistema de trading que define e diz exatamente quando entrar e sair. Enquanto eles têm controle total sobre qual é a estratégia, os sinais de entrada e saída são determinados pela própria estratégia. Podemos imaginar uma estratégia sistemática simples da seguinte forma:

  • Quando A e B ocorrerem ao mesmo tempo, entrar em um trade. 
  • Quando X ocorrer após, sair do trade.

Alguns traders preferem essa abordagem. Ela ajuda a eliminar decisões baseadas em emoções e fornece um grau razoável de garantia de que um sistema de trading é lucrativo. Claro que ainda assim, não há garantia absoluta.

É por isso que é importante garantir que você tenha regras específicas em seu sistema para entrada e saída de posições. Se a estratégia não for bem definida, os resultados também serão inconsistentes. Como você deve imaginar, esse tipo de trading é mais popular com trading algorítmico.

Existem softwares de backtesting disponíveis para compra, caso você queira usar o backtesting automático. Você pode inserir seus dados e o software fará o backtesting para você. No entanto, neste exemplo, vamos usar uma estratégia de backtesting manual. Vai dar um pouco mais de trabalho, mas é totalmente gratuito.


Como fazer o backtest de uma estratégia de trading

Você encontra um modelo de planilha do Google Sheets neste link. Este é um modelo rudimentar que você pode usar como ponto de partida para criar o seu próprio modelo. Dá para você ter uma ideia geral das informações contidas uma folha de backtesting. Alguns traders preferem usar Excel ou codificar em Python – não existem regras específicas. Você pode adicionar quantos dados julgar necessário.
Data
Mercado
Direção
Entrada
Stop LossTake ProfitRiscoRecompensaPnL

08/12

BTCUSD

Long

$18.000

$16.200

$21.600

10%

20%

3600

09/12

BTCUSD

Short

$19.000

$20.900

$13.300

10%

30%

-1900


Vamos fazer o backtest de uma estratégia de trading simples. Aqui está nossa ideia:

  • Compramos um Bitcoin no primeiro fechamento diário depois de um golden cross. Consideramos um golden cross quando a média móvel de 50 dias cruza por cima da média móvel de 200 dias.
  • Vendemos um Bitcoin no primeiro fechamento diário após um death cross. Consideramos um death cross quando a média móvel de 200 dias cruza abaixo da média móvel de 50 dias.

Como você pode ver, também definimos o período de tempo em que a estratégia é válida. Isso significa que não iremos considerar um sinal de trade se um golden cross ocorrer no gráfico de 4 horas.

Para este exemplo, vamos considerar apenas para o período até o início de 2019. No entanto, se você quiser obter resultados mais precisos e confiáveis, usar preços anteriores do Bitcoin.

Vamos ver quais os sinais de trading que o sistema produziu para o período considerado:

  • Comprar a ~$5.400
  • Vender a ~$9.200
  • Comprar a ~$9.600
  • Vender a ~$6.700
  • Comprar a ~$9.000


Abaixo, podemos visualizar a sobreposição dos sinais no gráfico:

Estratégia Golden Cross-Death Cross. Fonte: TradingView.


Nosso primeiro trade teria gerado um lucro de cerca de $3.800, enquanto o segundo resultou em uma perda de aproximadamente $2.900. Isso significa que nosso PnL realizado é de $900 até o momento. 

Também temos um trade ativo que, em dezembro de 2020, tinha cerca de $9.000 de lucro não realizado. Se mantivermos nossa estratégia definida inicialmente, fecharemos a posição quando ocorrer o próximo death cross. 



Avaliando os resultados do backtesting

Então, o que esses resultados mostram? Nossa estratégia teria dado um retorno razoável, mas não mostra nada tão impressionante até o momento. Poderíamos concluir o trade atualmente em aberto para aumentar drasticamente nosso PnL realizado, mas isso anularia o propósito do backtesting. Se não seguirmos o plano, os resultados também não serão confiáveis.

Embora seja uma estratégia sistemática, também vale a pena considerar o contexto. O trade não lucrativo de $9.600 a $6.700 ocorreu em março de 2020, no período do surto de COVID-19. É provável que esse evento de black swan tenha enorme influência sobre qualquer sistema de trading. Esse é outro motivo pelo qual vale a pena voltar mais no tempo e avaliar se essa perda é um ponto fora da curva ou apenas consequência da estratégia.
De qualquer forma, é assim funciona um processo simples de backtesting. Essa estratégia pode ser promissora se voltarmos e a testarmos com mais dados ou incluirmos outros indicadores técnicos para potencialmente produzir sinais mais fortes.

Quais outras informações os resultados de backtesting proporcionam?

  • Medidas de volatilidade: seu máximo potencial de subida ou queda (upside/drawdown).
  • Exposição: a quantidade de capital que você precisa alocar para a estratégia de todo o seu portfólio.
  • Retorno anualizado: a porcentagem de retorno da estratégia no período de um ano.
  • Proporção de ganhos e perdas: quantos trades no sistema resultaram em vitória e quantos resultaram em perdas.
Estes são apenas alguns exemplos e não representam uma lista exaustiva de forma alguma. Você decide quais métricas gostaria de acompanhar. De qualquer forma, quanto mais detalhes você registrar sobre as configurações, mais oportunidades terá de aprender com os resultados. Alguns traders são muito rigorosos em seus backtesting e isso também pode refletir em seus resultados.
Um último fator que devemos considerar é a otimização. Se você leu nosso artigo de backtesting, deve saber a diferença entre backtesting e forward testing, ou paper trading. Pode ser interessante testar e otimizar suas ideias em um ambiente de trading em tempo real, como a testnet (rede de testes) da Binance Futures.


Considerações finais

Passamos pelo processo básico de como fazer um backtest manual de uma estratégia de trading. Lembre-se de que o desempenho anterior não é uma garantia de desempenho futuro. 

Os ambientes de mercado mudam e você precisará se adaptar as mudanças para melhorar seus resultados de trades. Geralmente, é melhor não confiar cegamente nos dados. O bom senso pode ser uma ferramenta surpreendentemente útil quando se trata de avaliação de resultados. 

Ainda tem dúvidas sobre backtesting? Confira nossa plataforma de perguntas e respostas, Ask Academy, onde a comunidade Binance responde as suas perguntas.