MITOS E LENDAS DO BACKTEST

O  backtest, para quem não conhece, é um teste de estratégia, onde analisamos o histórico de cotações de um ativo, para ver como o setup teria se comportado no passado. É uma ferramenta imprescindível para quem trabalha com algoritmos, além de, é claro, ser também uma ferramenta poderosa na concepção e modelagem de uma estratégia. Apesar disso, é bastante comum vermos vários traders criticando a ferramenta. Nós acreditamos que, a grande maioria dos que criticam, o fazem por falta de conhecimento. O objetivo deste artigo, então, é colocar um pouco de luz sobre o assunto, e desmistificar a idéia de que o backtest não funciona.

arrow_forwardMais sobre

                O  backtest, para quem não conhece, é um teste de estratégia, onde analisamos o histórico de cotações de um ativo, para ver como o setup teria se comportado no passado. É uma ferramenta imprescindível para quem trabalha com algoritmos, além de, é claro, ser também uma ferramenta poderosa na concepção e modelagem de uma estratégia. Apesar disso, é bastante comum vermos vários traders criticando a ferramenta. Nós acreditamos que, a grande maioria dos que criticam, o fazem por falta de conhecimento. O objetivo deste artigo, então, é colocar um pouco de luz sobre o assunto, e desmistificar a idéia de que o backtest não funciona.

                A primeira questão que precisamos colocar é que o backtest tem sim limitações, afinal de contas, é um teste controlado, que analisa o passado. Nos testes não temos execuções reais, então não teremos também problemas com falta de liquidez, ou atraso no envio de ordens, etc. Por mais que o sistema possa simular essas situações, será sempre um algoritmo tentando reproduzir uma situação real, que, na prática, é imprevisível. Precisamos, aqui, dividir os nossos objetivos de teste. O backtest serve para testar o modelo, o setup que estamos estudando. Se o modelo for ruim, não vale a pena evoluir para testes em conta real para avaliar as questões de liquidez e latência. Muitas pessoas esperam que o backtest dê um resultado idêntico ao mercado real, e acabam se decepcionando por não entenderem a ferramenta.

                A segunda questão é a otimização. Para quem não conhece o termo, a otimização de uma estratégia acontece quando testamos literalmente milhões, ou bilhões de possibilidades, e selecionamos a que funcionou melhor no passado segundo os parâmetros definidos. Existe aqui uma chance enorme de acabar caindo no overfit, ou super-otimização, que é quando encontramos uma condição que se encaixa perfeitamente no passado, mas não necessariamente se repetirá no futuro. Existem várias técnicas para escapar desse problema. A mais óbvia delas é iniciar os testes com poucos parâmetros, para avaliar se o modelo realmente faz sentido. Por exemplo, se vamos testar um modelo que usa HiLo com filtro HMA, inicialmente rodamos a otimização apenas com esses indicadores. Se o modelo fizer sentido, e conseguirmos resultados satisfatórios, adicionamos outros parâmetros, como horários de operação, fechamento das posições, lucro máximo no dia, dentre outros. Adicionar parâmetros como esses em um bom modelo, pode tornar os resultados excepcionais. Otimizar, porém, dezenas de parâmetros de início, sem comprovar a viabilidade do modelo, leva quase que 100% dos casos ao overfit. Na prática, o que mais vemos no mercado são pessoas otimizando verdadeiros super-robôs, com centenas de parâmetros e indicadores, sem sequer se preocupar realmente com o funcionamento da estratégia. Esses super-robôs são verdadeiras “fábricas” de overfit, e, normalmente levam a resultados desastrosos.

PUBLICIDADE

                Finalmente, precisamos entender que o backtest é apenas o início de um processo, que normalmente leva meses (ou anos). Como já falei acima, depois de encontrar um modelo que faça sentido, adicionamos os filtros, e chegamos a um setup que funcionou bem no período estudado. Esse setup, então, está pronto para a próxima fase, que são os testes em conta Demo. Nesse período, analisamos como o modelo se comporta no mercado real em relação ao backtest. Aqui são avaliados principalmente a consistência dos resultados com os testes. Muitas vezes setups com resultados bons, mas diferentes dos obtidos nos testes, são  descartados, pois isso é um forte indício de aleatoriedade. Apenas depois desse período em conta Demo é que os resultados vão para conta real, com lote mínimo, para avaliar o impacto da liquidez, slippage, e latência. Se, após esse período, os resultados continuarem consistentes com os da conta Demo e do backtest, a estratégia estará pronta para entrar em “produção”, rodando em conta real com lotes maiores.

                Observem, então, que o backtest é apenas o início, e, na verdade, a menor parte de um longo processo de avaliação. Aqui na AlgoTrading nós descartamos aproximadamente 70% das estratégias que se comportam bem nos testes nas fases de conta Demo e conta real com lote mínimo. Rodar uma otimização num período curto, com muitos parâmetros, e ir direto para a conta real em “produção”, é então semelhante a atirar uma moeda para cima, e comprar se der “cara”. O problema do backtest, então, é mais relacionado as expectativas dos traders em relação ao que ele realmente pode entregar. Quando as pessoas o entenderem melhor, verão que é um aliado imprescindível, e uma poderosa ferramenta.

Fabiano Oliveira