Um expert advisor está sobreajustado quando seus parâmetros foram ajustados tão de perto ao passado que o resultado do backtest já não diz nada sobre o futuro. O sinal mais claro é um Sharpe alto que não sobrevive a três testes: descontar o número de configurações que o otimizador testou, dobrar os custos e rodar o robô em um trecho de dados que ninguém tocou. Aqui você vê como fazer cada teste com o relatório do tester e o XML de otimização que já tem.
O que o otimizador faz
O otimizador do MT4 e do MT5 percorre milhares de combinações de parâmetros e guarda o resultado de cada uma. Um intervalo de 1 a 50 no período de uma média móvel e outro de 1 a 100 no stop já dá cinco mil combinações. O otimizador não entende o mercado: ele só mede qual combinação teria dado o melhor resultado naquele histórico exato.
Esse histórico contém ruído: movimentos que não vão se repetir. Quando você testa combinações suficientes, alguma encaixa no ruído por acaso e fica em primeiro na tabela. O vendedor publica essa linha e você só vê essa.
Por que a melhor de muitas parece boa por sorte
Dá para colocar um número nesse efeito. Com três anos de retornos diários e nenhuma vantagem real, a melhor de 10 configurações mostra um Sharpe perto de 0.9. A melhor de 100 chega a 1.5, a melhor de 200 a 1.6 e a melhor de mil a 1.9. Nada disso é habilidade: é o resultado esperado de escolher o máximo.
Um histórico curto piora tudo. Com um ano de dados, a melhor de 200 configurações fica perto de um Sharpe de 2.8; com dois anos, a melhor de 500 fica perto de 2.2. Com cinco anos, a melhor de 50 cai para 1.0.
Pico isolado ou platô
Abra o XML de otimização e ordene as passagens pelo resultado. Pegue a configuração escolhida e olhe as vizinhas: a mesma com um parâmetro um passo acima ou abaixo, todo o resto igual. Se o stop vai de 40 para 45 e o resultado cai pela metade, você está em cima de um pico isolado.
Uma estratégia que capta algo real se sustenta em um platô: as vizinhas conservam a maior parte do resultado. Conte quantas vizinhas continuam positivas e que parte do resultado a mediana delas conserva; esse número diz mais do que a curva de capital.
Custos em dobro
Muitos robôs vivem de operações pequenas e frequentes, em que o custo pesa mais do que o sinal. Rode o backtest de novo com o dobro do custo por operação que o vendedor declara. Se o resultado fica negativo, o EA não tinha margem, só custos otimistas.
Faça o mesmo teste com o triplo e anote em qual custo o resultado chega a zero. Esse custo de equilíbrio é o número que você deve comparar com o spread real da sua corretora nas horas em que o robô opera, não com a média do dia.
Um trecho que você nunca tocou
Antes de otimizar, separe o último trecho do histórico e não o abra até o final. O otimizador não deve vê-lo, e você também não. Quando tiver a configuração final, rode-a uma única vez nesse trecho e compare o Sharpe com o do trecho de otimização.
Se você volta ao otimizador depois de ver o resultado e ajusta algo, o trecho já está contaminado e conta como mais uma passagem. Um trecho fora da amostra serve uma vez. Por isso importa que o vendedor diga quais datas usou para otimizar e quais não.
O que perguntar ao vendedor
Pergunte quantas passagens o otimizador rodou no total, não só quantas versões foram publicadas. Peça o XML de otimização completo, não a captura de tela da melhor linha. Pergunte quais datas ficaram fora da otimização e qual custo por operação o backtest usou.
Peça também o relatório do Strategy Tester com os parâmetros impressos, para conferir se batem com a passagem que ele vende. Sem essas quatro respostas você não tem como medir o que compra.
Como medir isso no XML real
O XML de otimização do MT5 guarda cada passagem com seus parâmetros e seu resultado, e o número de configurações testadas vira um dado medido, não uma declaração. Com esse número e os anos do backtest, a calculadora do Rigor diz qual Sharpe a pura sorte daria e quanto sobra depois do desconto. É gratuita e não pede cadastro.
Se você envia o relatório e o XML para uma auditoria, o Rigor conta as configurações testadas, calcula o Sharpe deflacionado, roda de novo os custos a 1x, 2x e 3x com o custo de equilíbrio e revisa o trecho fora da amostra que você declarar. Cada número sai marcado como Medido, Declarado ou Não medido, para você saber o que vem do arquivo e o que vem do vendedor.
Perguntas frequentes
Quantos anos de dados eu preciso para confiar em um Sharpe de 1.8?
Depende de quantas configurações foram testadas. Com mil tentativas, são necessários cerca de 3.3 anos de retornos diários para que a pura sorte fique abaixo de 1.8. Com menos histórico, esse Sharpe cabe dentro do que o acaso explica.
Um forward test do MT5 substitui o trecho que você nunca tocou?
Só se você o rodou uma vez e não otimizou de novo depois de vê-lo. Se o vendedor repetiu o ciclo várias vezes até o forward parecer bom, o forward é só mais uma configuração, escolhida pelo resultado.
A otimização genética muda alguma coisa?
Sim: o algoritmo genético não testa todas as vizinhas da configuração escolhida, então podem faltar no XML as passagens que mostram o platô. Quando faltarem, rode uma otimização completa em um intervalo estreito ao redor da configuração final.