Aprenda a avaliar sua estratégia: Backtest

Prezados leitores, essa é a segunda publicação da série: “Aprenda a avaliar sua estratégia”. No primeiro post apresentei os conceitos que serão abordados ao longo da sequência. Já nesse iremos entender as maneiras de se avaliar uma estratégia e como as utilizaremos para a nossa análise.

Existem basicamente três formas de avaliarmos uma estratégia:

1) Backtest
2) Tempo real em modo simulado
3) Tempo real com dinheiro real

É importante ressaltar que a única maneira que representa fielmente o desempenho de uma estratégia é a última. Tanto o backtest quanto a simulação em tempo real possuem limitações, mas continuam sendo ótimas opções para saber se sua estratégia tem potencial para trazer bons resultados. Vamos entender um pouco melhor cada uma delas.

1) Backtest

Um backtest nada mais é do que uma simulação histórica de perfomance de uma estratégia através de dados históricos, sendo uma maneira fácil e rápida de testar uma estratégia por um longo período de tempo. Para ser realizado, é necessário uma base de dados confiável e a definição objetiva de como funciona a estratégia a ser testada. Até alguns anos atrás, era preciso possuir alguma habilidade em programação de computadores para realizar um backtest confiável. Felizmente, hoje em dia já existem sites e softwares disponíveis para isso, facilitando a vida de qualquer investidor.

No entanto, é importante observar algumas limitações e possíveis armadilhas de um backtest:

– Base de dados: o backtest é extremamente sensível à qualidade dos dados utilizados. Poucos erros nos dados geram resultados extremamente incorretos, podendo iludir o investidor que possui uma estratégia ruim ou então fazer o investidor eliminar uma boa estratégia.

– Número de trades utilizado: simular todos os trades realizados exige um processamento computacional enorme, fazendo com que um backtest referente a um dia demore horas para ser realizado. Para contornar esse problema os simuladores de backtest utilizam alguns tratamentos nos dados, reduzindo o número de trades ocorridos. Aqui temos que avaliar um tradeoff: quanto mais rápido um backtest, menos ele representa o que realmente ocorreu no mercado.

– Prioridade no book: em geral, os backtests não consideram prioridade no book de ofertas. Em outras palavras, se uma estratégia envia uma ordem de compra num preço determinado e ocorrer um trade naquele nível de preço, o backtest considera como executada a ordem enviada. Porém, no mercado nem sempre isso irá acontecer, pois a ordem pode não ser executada. Ou seja, no backtest a estratégia está sendo avaliada como se a compra tivesse ocorrido naquele momento, mas, no mercado real, essa compra não teria acontecido, alterando toda a sequência futura de trades.

– Spread e Slippage: Spread é a diferença entre o preço da melhor oferta de compra e da melhor oferta de venda. Imagine que uma estratégia envie uma ordem de compra a mercado quando um trade for realizado no preço de R$100,00. Suponhamos que o melhor preço de compra seja R$100,00 e o melhor preço de venda seja R$102,00. Quando ocorrer o primeiro trade com o preço de R$100,00, será enviado um sinal de compra a mercado que será executado no preço de 102, pois é o melhor preço de venda existente. Reparem que o gatilho foi ativado com o preço de 100, mas a ordem foi executada no preço de 102, com um spread de 2 reais. Muitos backtests irão considerar que a ordem foi executada a 100 ou 101, gerando o problema conhecido como slippage, não condizendo com o valor que a ordem realmente seria executada.

– Um bom desempenho passado não garante um bom desempenho futuro: muitos softwares realizam “otimizações” de parâmetros de uma estratégia indicando qual foi a melhor combinação em determinado período. De posse desses valores, o investidor investe com a certeza que aquela estratégia é infalível, e acaba se decepcionando com o resultado real.

Apesar das limitações e armadilhas de um backtest, devemos usar e abusar dessa ferramenta antes de utilizarmos uma estratégia no modo real. O que devemos fazer, então? Primeiramente, escolher uma plataforma que ofereça o backtest mais confiável possível. Em segundo lugar, precisamos saber como analisar os resultados gerados pelo backtest. E é exatamente aqui que essa série entra: vamos ensinar como avaliar os resultados de um backtest sem cair em suas armadilhas.

2) Tempo real em modo simulado

Após a identificação de uma boa estratégia através do backtest devemos testar a estratégia em tempo real, no modo simulado. Aqui o teste fica mais próximo do que aconteceria no modo real, pois não é mais necessário se preocupar com a base de dados nem com o tratamento do número de trades: os dados utilizados são os da própria bolsa em tempo real. Porém, ainda existem algumas limitações, como prioridade no book e spread em alguns casos.

3) Tempo real com dinheiro real

Agora é a hora de saber se realmente a estratégia vai funcionar. Se após uma análise completa (que será ensinada na série!) os resultados das duas primeiras etapas tiverem sido consistentes, tudo indica que aqui os resultados poderão ser promissores. Lembre-se que nenhuma estratégia é vencedora o tempo todo: não se pode desistir no primeiro dia de perda.

Agora chega de enrolação e de conceitos! A partir do próximo post começaremos efetivamente a análise de estratégias. A cada post será escolhido um indicador da análise técnica para o estudo. De acordo com os pedidos por e-mail o primeiro indicador analisado será o cruzamento de médias móveis. Serão apresentados os resultados e as análises de diversas estratégias utilizando médias móveis: através de backtests e também no modo simulado em tempo real.

Todos os testes serão realizados na plataforma SmarttBot, que possui diversos robôs já programados, sem a necessidade de nenhum conhecimento em programação. Além disso, a plataforma permite em sua conta free a simulação em tempo real de robôs com diversos indicadores da análise técnica e diferentes setups de gerenciamento de risco. Os backtests também serão realizados utilizando a plataforma, pois ela apresenta uma grande confiabilidade e soluções alternativas para as limitações dos resultados. De acordo com a plataforma, o serviço ainda é utilizado apenas internamente mas será disponibilizado em breve para os clientes.

Preparados? Não percam o próximo post: dia 28 de agosto, com a análise real de estratégias utilizando cruzamento de médias.

Grande abraço e até a próxima!

Bruno Barroso

Bruno Barroso é engenheiro, mestre e doutorando em modelagem matemática computacional aplicada ao mercado financeiro pelo CEFET MG. Trabalha como desenvolvedor de estratégias automatizadas de investimentos. Além de finanças, também é apaixonado por matemática, jogos e esportes.