Melhores Táticas de BackTest para Ações

A ideia de retroagir no mercado para simular operações não é nova; porém, só nas últimas décadas, dispomos dos recursos computacionais para fazer essa tarefa de forma automatizada. O nome dessa técnica é Backtest, justamente porque é um teste que ocorre em um período do passado, para trás (back em inglês) no tempo.

Com o tempo, as ferramentas para fazer esse tipo de teste ficaram cada vez mais acessíveis e, nos dias de hoje, há inclusive ferramentas que permitem fazer esse tipo de teste através de browsers.

No entanto, a famosa frase do mercado se faz mais que realidade: "retornos passados não garantem resultados futuros". Saber como uma técnica ou as entradas de um indicador funcionaram no passado não garante que exatamente a mesma técnica funcionará no futuro, e é por esse motivo que a quantidade de dados é fundamental na simulação. Quanto mais dados houver na simulação, isto é, mais tempo, mais a estratégia como um todo sofrerá o teste do tempo. Uma estratégia consistente, após um longo período, provavelmente é uma estratégia que não perde de maneira excessiva em períodos em que fracassa, e ganha de forma razoável quando funciona bem.

Utilizamos a técnica de simulação não só para simular e sanar a curiosidade de como seria operar em um dado dia, mas, frequentemente, esse tipo de teste é utilizado para otimizar parâmetros diferentes de indicadores de estratégias, filtros, combinações de indicadores, entre inúmeros aspectos de uma estratégia. Tomando sempre cuidados para que não haja problemas nos nossos testes, como a superotimização.

A superotimização acontece quando a estratégia funciona com seu melhor desempenho, porém apenas para aquele período de testes. Qualquer outro período de teste terá um desempenho razoavelmente pior. É quando se acham os parâmetros perfeitos para um dado período de negociação. Esse problema geralmente acontece quando se utilizam poucos dados, mas não é exclusividade dessas situações. De forma geral, a chave para uma otimização ser válida é utilizar períodos diferentes para otimização e teste de validação, se os resultados não forem significativamente diferentes, consideramos que a otimização é válida.

As superotimizações são comuns para aqueles que estão começando, e não se atentam a esse detalhe, por isso é importante ressaltar. No entanto, esse não é o único problema que pode acontecer nos Backtests, há pelo menos outros dois que são considerados muito relevantes, os enviesamentos do tipo: Look Ahead e Survivorship.

Comumente, não são traduzidos, mas a suas traduções são bem claras e explicativas: "olhar para a frente", e "sobrevivência", respectivamente.

O Look Ahead bias é quando, em um Backtest, de forma involuntária, utilizam-se informações que só estariam disponíveis no futuro. Um exemplo muito comum desse tipo de enviesamento é quando calculamos alguns indicadores e consideramos o preço de fechamento, pois só temos o valor final do indicador, uma vez que temos um candle fechado, e, ainda sim, é utilizada a informação do valor do indicador com o valor de fechamento daquele dado candle. Isso pode causar muitas atrocidades, desde saber qual o próximo fechamento do candle de cinco minutos até saber qual será o ajuste no fim do dia.

O Survivorship bias é mais comum quando trabalhamos com carteiras de ações. Acontece quando uma ou mais ações sobrevivem por um longo prazo devido à qualidade da empresa, portanto um investimento em um ativo que sobreviveu durante várias fases da economia e se mostrou consistente, provavelmente gerará lucros. Já, por outro lado, podemos ter empresas que faliram, ou foram compradas por outras empresas, ou mudaram de código, e por qualquer outro motivo deixaram de existir. Essas empresas, a longo prazo, serão um investimento ruim, o que é óbvio, pois a empresa não existe mais. Logo, acabamos selecionando no passado apenas as empresas que sobrevivem hoje; porém, na época do investimento, não necessariamente teríamos as informações para apontar que tais empresas triunfariam e as outras falhariam.

Esses são os três principais pontos que devemos ter em mente ao desenvolver ou utilizar uma ferramenta de Backtest, sempre garantir que: não há utilização de informação do futuro, haja dados o suficiente e não há influências que levem a escolher empresas ou ativos financeiros no passado apenas porque triunfaram no futuro.

Cada ativo ainda tem sua peculiaridade, e podemos discutir um pouco dessas diferenças. Lembrando sempre que algumas estratégias não são universais, podem funcionar em alguns ativos financeiros, e em outros não, ou a mesma estratégia possuir diferentes otimizações para um ou outro ativo financeiro.

Com ações há diferenças em relação aos contratos futuros! Não existem pontos, o financeiro é o valor do papel, isso facilita a mensuração de resultados financeiros. Não há vencimentos, ou seja, não há preocupação de mudança de contrato e movimento de liquidez. No entanto, é necessário se preocupar com o risco em si de liquidez.

Nem todos os papéis da bolsa possuem liquidez para serem negociados no intraday sem assumir um grande risco de liquidez. Para swing trade, existe uma boa quantidade de papéis que possui liquidez.

Além da liquidez, papéis de empresas sofrem ajustes de forma diferente dos contratos futuros. Nos futuros, o ajuste é diário e é um débito ou um crédito em conta, já para os papéis, é necessário ajustá-los retroativamente conforme a distribuição de dividendos, de juros sobre o capital próprio, split, inplit, direitos de subscrição, entre outros. Além de calcular e executar os ajustes apenas em datas precisas, alguns desses cálculos são extremamente trabalhosos e passíveis de erros até de provedores de dados, por isso é necessário se atentar para se seus dados estão bem ajustados. Caso os dados não estejam corretamente ajustados, mesmo que de uma perspectiva do day trade, esses ajustes não são necessários, alguns indicadores apontarão distorções devido à movimentação do preço atípica.