Um sistema de backtesting utiliza dados históricos do mercado para simular a execução de estratégias de investimento em um período passado. Assim como em qualquer outra simulação, existem limitações do mundo real que são muito difíceis de incorporar a um backtest. Por exemplo: ao enviar uma ordem de compra a mercado estamos sujeitos não só à análise de risco das corretoras, mas também à situação do livro de ofertas e a flutuações no tempo de comunicação entre servidores. Dez robôs exatamente iguais podem enviar uma mesma ordem ao mesmo tempo, mas nada garante que todos eles terão o mesmo preço de execução.
Graças a essas limitações, qualquer sistema de backtesting oferece simulações aproximadas. Destacamos também que o simulador utilizado atualmente, no backtesting da SmarttBot, é o simulador otimista. Esse sistema deve ser visto como uma ferramenta de estudo, especialmente em relação à análise do risco a que uma estratégia está exposta. Um backtest pode ajudar a validar a robustez de estratégias, mostrando como elas se comportariam em determinados períodos do passado. Ainda assim, executar centenas de backtests no mesmo período até encontrar aquele com maior retorno financeiro pode não ser o melhor investimento do seu tempo. Uma estratégia que obteve um ótimo retorno pode dar prejuízos no mês seguinte.
O backtest tem o seu maior valor quando é utilizado para crescer e amadurecer enquanto trader. É uma ferramenta muito poderosa que lhe permite compreender melhor o seu perfil de investidor. Com ela podemos descobrir boas estratégias para tendências de alta, de queda ou com mercado lateralizado. É possível aprender inclusive quando não operar – o trader que sabe o melhor momento para ligar e desligar seu robô está muito à frente dos outros jogadores no mercado.
Atualmente, possuímos duas limitações relacionadas ao backtesting:
O ajuste de preço de ações decorrente de distribuição de proventos ainda não é suportada;
Em um backtest parametrizado com swing trade e contratos futuros (BM&F), caso o contrato futuro utilizado vença durante o período executado no backtest e o backtest esteja posicionado nesse momento, é necessária a troca do contrato vencido para o contrato com o vencimento seguinte. Essa troca ainda não é suportada.
Estamos trabalhando intensamente para que possamos suportar ambas as restrições e para trazer mais novidades para o sistema de backtesting.