Backtest Score
O backtest é uma técnica excelente para se analisar como uma determinada estratégia teria se comportado no passado. Porém, para um trader, muitas vezes isso não é o suficiente. Além de verificarmos as estatísticas da estratégia, queremos também saber se ela é a melhor disponível.
O problema é que nem sempre é fácil decidir qual o melhor conjunto de parâmetros para uma estratégia. No QuantBrasil, nós facilitamos essa análise gerando um Ranking de Backtests, e permitindo que cada usuário gere seu próprio ranking baseado em parâmetros customizados.
Ainda assim, muitas vezes não é claro qual backtest é o melhor. Considere o exemplo simplificado abaixo:
Backtest | EV | Drawdown |
---|---|---|
#1 | 0,50% | 5,67% |
#2 | 0,40% | 4,19% |
Embora o Backtest 1 possua um maior EV, ou seja, um maior valor esperado por trade, ele possui um drawdown maior, ou seja, um maior risco associado. Não é claro, pelos números, qual backtest é o melhor. No final, existe um grau de subjetividade onde cada trader valorizará aquilo que lhe é mais importante.
Por exemplo, nem sempre a estratégia que tem o melhor retorno percentual é preferível. Imagine esse outro exemplo:
Backtest | Retorno | Drawdown |
---|---|---|
#3 | 50% | 22,34% |
#4 | 44% | 7,90% |
Mesmo que o Backtest 3 tenha o maior retorno de todos, o risco que ele corre é 3x maior que o Backtest 4. Assim, dependendo da volatilidade aceita no portfólio, é perfeitamente natural que se opte pela estratégia mais estável.
Para mitigar esse problema nós desenvolvemos o nosso próprio score. O score é uma nota que atribuímos a cada backtest de modo que possamos comparar objetivamente duas ou mais estratégias.
O score do QuantBrasil está em constante aprimoramento, mas é uma função que leva em consideração as seguintes métricas e seus respectivos pesos:
Métrica | Peso | Preferência |
---|---|---|
EV (Valor Esperado) | 3 | Maior é melhor |
Drawdown | 2 | Menor é melhor |
Retorno Percentual | 2 | Maior é melhor |
Operações por Dia | 2 | Maior é melhor |
Porcentagem de Acerto | 1 | Maior é melhor |
Além disso, o score é indefinido se:
- O backtest tiver menos que 5 operações;
- O preço do ativo for menor que 3,00.
Excluímos estratégias com poucas operações para evitar distorções. Por exemplo, um backtest com 1 trade que resultou 5% de lucro vai ter 100% de acerto, um EV irreal, e drawdown zero. Retiramos ativos com valor de face muito pequeno pois o efeito do slippage é muito pronunciado, uma vez que 1 tick para cima ou para baixo já afeta o resultado do trade significativamente.
Importante!
Classificando um Backtest
O score nos ajuda a comparar dois backtests – podemos dizer que, baseado no algoritmo do QuantBrasil, o backtest X é superior ao backtest Y. No entanto, isso ainda não resolve o problema de não sabermos se o backtest X é de fato um bom backtest, ou se ele é somente melhor que a concorrência. Em outras palavras, não é porque uma estratégia é melhor que outra, que ela é instrinsicamente boa.
Para ajudar nesse problema nós calculamos, periodicamente, o score dos últimos 100.000 backtests para cada timeframe. Depois, calculamos o percentil das notas, gerando a seguinte classificação:
Score Percentil | Classificação |
---|---|
< 5% | Péssimo |
5% - 25% | Muito Ruim |
25% - 50% | Ruim |
50% - 75% | Bom |
75% - 95% | Muito Bom |
> 95% | Excelente |
Ou seja, sempre que o score de um backtest estiver no 95º percentil (significando que ele está no top 5% dos últimos 100.000 backtests computados para aquele timeframe) ele é classificado como Excelente.
Assim, temos uma abordagem qualitativa de um determinado backtest, e podemos compará-lo com todos seus pares para um determinado timeframe.
Importante!
Visualizando o Score
Para uma forma visual de comparação, o indicador de score abaixo está presente em todos os backtests que satisfaçam os requisitos mínimos.
Com ele, fica fácil visualizar o score do backtest, sua posição relativa aos outros, e sua classificação qualitativa. Note que o 5º e o 95º percentis, que marcam os extremos da classificação, estão sempre disponíveis.