Por Que Um Único Backtest Pode Enganar
Um backtest com ótima aparência e uma estratégia que realmente funciona não são a mesma coisa. Veja como diferenciá-los — com qualquer ferramenta, inclusive a nossa.
Teste combinações suficientes, e algo vai parecer brilhante
Jogue uma moeda dez vezes e você provavelmente terá uma mistura sem graça. Peça para mil pessoas fazerem isso, e alguém vai tirar dez caras seguidas. Ninguém chama essa pessoa de gênio em jogar moedas — mas, no backtesting, traders cometem exatamente esse erro todos os dias.
Toda otimização de parâmetros, em qualquer ferramenta, funciona da mesma forma: testar muitas combinações, destacar as melhores. Isso é genuinamente útil — mas traz uma pegadinha embutida. Algumas combinações vão parecer ótimas por pura sorte, porque o ruído aleatório nos dados históricos às vezes se alinha com uma configuração específica e produz uma curva de patrimônio bonita que não significa nada.
E quanto mais combinações você testa, maior a chance de que seu "melhor" resultado seja um desses acasos de sorte. Isso não é uma falha de um otimizador específico — é uma propriedade matemática de escolher o melhor entre muitos. Isso só significa que o topo de qualquer tabela de resultados deve ser lido com uma pergunta em mente: isto é uma vantagem real, ou o ganhador da loteria desta execução?
Três sinais que vale a pena verificar antes de confiar em qualquer resultado
Você não precisa da nossa ferramenta para isso. Eles são independentes de ferramenta e funcionam até em uma planilha.
Em quantos trades ele se baseia?
Um retorno de 300% em 14 trades é uma anedota, não uma evidência. Amostras pequenas produzem resultados extremos em ambas as direções — e sorte extrema parece idêntica a habilidade extrema. Quanto menos trades, menos um backtest pode te dizer.
Os vizinhos concordam?
Se o período 14 dá lucro, mas 13 e 15 dão prejuízo, você não encontrou uma vantagem — encontrou um pico isolado. Um valor de parâmetro que vale a pena confiar geralmente está dentro de uma região inteira de resultados decentes, porque uma vantagem real não desaparece quando uma configuração muda um passo. Picos isolados são a assinatura clássica do overfitting.
O quão ampla foi a busca?
O melhor resultado entre 20 combinações e o melhor entre 2.000 não têm o mesmo peso. Quanto mais ampla a busca, mais chances a sorte teve de produzir um vencedor — então mais impressionante um resultado precisa ser para superar a barreira do "pode ser só sorte".
Verificar os três manualmente, em cada execução, é tedioso. É por isso que quase ninguém faz isso. Esse é o verdadeiro problema que nos propusemos a resolver.
Como o RunOpti reporta isso — automaticamente, em cada execução
O RunOpti automatiza a varredura de parâmetros — mas a parte que mais nos importa é o que acontece depois que os backtests terminam. Cada resultado é pontuado contra os três sinais acima:
- check_circle
Sinalização de amostra baixa. Resultados baseados em menos trades do que um limite mínimo são explicitamente marcados como de baixa confiança — não importa o quão espetaculares os números brutos pareçam.
- check_circle
Estabilidade de vizinhança. A pontuação de cada combinação reflete o quão consistentemente os valores de parâmetros vizinhos performam. Um pico isolado pontua menos do que uma região sólida, mesmo quando o retorno bruto do pico é maior.
- check_circle
Deflação pelo tamanho da busca. As pontuações são ajustadas de acordo com quantas combinações a execução testou. Um melhor-entre-2.000 precisa superar uma barreira mais alta do que um melhor-entre-50, porque teve quarenta vezes mais chances de ter sorte.
- check_circle
E quando nada passa, nós dizemos isso. Se nenhuma região de parâmetros sobrevive a essas verificações, o RunOpti te diz diretamente: nenhuma região confiável encontrada. Achamos que uma ferramenta incapaz de dizer "esta execução não produziu nada confiável" não está realmente medindo confiabilidade nenhuma.
Esse último é o recurso que você vai gostar menos no momento — e o que faz o resto do relatório valer a pena ler.
Uma observação sobre o que essas pontuações significam. A pontuação de robustez do RunOpti é uma classificação relativa dentro de uma única execução — ela identifica quais das combinações testadas são mais confiáveis em relação umas às outras. Não é uma garantia de performance futura. Resultados passados — por mais cuidadosamente validados que sejam — não garantem retornos futuros.
Veja como sua estratégia se sai sob uma pontuação honesta
Execute uma varredura completa de parâmetros na sua própria estratégia e veja o quadro completo — as regiões robustas, os picos de sorte e a diferença entre eles.
De qualquer forma, sem pressão. Se a resposta honesta for "nenhuma região confiável encontrada", você vai preferir ouvir isso do seu otimizador antes de ouvir do mercado.