Backtesting & verificação beginner 13 min de leitura

Como fazer backtest no MT5 (e em qual dos dois números de drawdown do relatório acreditar)

Backtest no MT5, do primeiro clique à leitura do relatório: quais dados e ajustes decidem a resposta antes de você apertar Start, e o número que quase ninguém confere — nas 23 execuções publicadas aqui, o drawdown de capital foi mais fundo que o de saldo nas 23 vezes.

Publicado · Revisado

Você roda um backtest no MT5 abrindo o Strategy Tester (o testador de estratégias) em View > Strategy Tester (ou Ctrl+R), escolhendo o Expert Advisor, o símbolo, o tempo gráfico, o intervalo de datas e o modo de modelagem, e então pressionando Start. Cinco minutos depois você tem um relatório. A pergunta que pesa não é como chegar até ali — é quais dos números daquele relatório significam o que você acha que significam.

Este guia faz as duas metades: o procedimento e a leitura. É da leitura que vem a evidência desta página, porque temos 23 execuções concluídas em arquivo e os relatórios delas discordam de si mesmos de um jeito que quase ninguém confere.

O que você tem em mãos ao fim de uma execução

O artefato é um relatório com duas metades: um bloco de resultado (operações, fator de lucro, drawdown, líquido) e a lista de operações por trás dele. As duas importam, e só a primeira é citada.

O que você deve conseguir dizer ao final não é “rendeu 3.023 USD”. É: este conjunto de regras, neste símbolo e tempo gráfico, ao longo desta janela, com este modelo de ticks, em uma conta de 10.000 USD, produziu esta quantidade de operações, com este fator de lucro, tendo estado tão submerso quanto isto no pior momento. Cada oração dessa frase é um ajuste que você escolheu, e mudar qualquer um deles muda a resposta. É por isso que aqui os ajustes vêm antes do procedimento.

Preparação: os dados e ajustes que decidem a resposta

Segue uma execução real que rodamos e publicamos, citada para você segurar as entradas e a saída lado a lado. É o registro por trás do Stillwater, uma estratégia somente comprada de USD/JPY no gráfico de 5 minutos.

AjusteEsta execuçãoPor que está assim
ExpertStillwater (19 entradas)Cada entrada que o relatório foi verificado como carregando — a superfície que você teria de digitar de novo para reproduzi-la
SímboloUSDJPY_DUKAUm símbolo dedicado a histórico de ticks, mantido separado do cotado ao vivo para que a execução seja repetível
PeríodoM5O gráfico em que as regras são avaliadas; o filtro de tendência lê M30 de dentro do EA
Intervalo de datas2019-01-01 → 2026-07-017,5 anos, longo o bastante para conter mais de um regime
ModellingEvery tick based on real ticks (Model 4)Qualquer coisa que opere dentro do dia precisa do caminho intrabarra medido, não interpolado
Deposit10.000 USDFixo em todas as execuções daqui, para que os percentuais de drawdown continuem comparáveis
AlavancagemPedida 1:500 — rodou a 1:100Veja abaixo. Esta não é o que aparenta ser
OptimisationDesativadaUma passagem única. Buscar parâmetros é outro trabalho, com outras armadilhas

Duas dessas linhas merecem mais do que uma célula de tabela.

A qualidade dos dados é o ajuste sobre o qual o resultado se apoia. Todos os outros números do relatório são calculados em cima da série de preços que o testador usou, então o número de qualidade de modelagem delimita o quanto do resto do relatório fala da sua estratégia. O registro publicado da execução acima informa 100% de qualidade de histórico sobre 229 milhões de ticks reais, lidos direto do relatório do testador. Uma execução sobre dados de barra interpolados teria produzido um conjunto de operações diferente, e não apenas preços de execução diferentes — o testador supõe um caminho suave entre os preços que conhece, e uma estratégia de stop curto negocia justamente essa suposição. Se você ainda não leu quais dados de tick o seu terminal de fato guarda para o símbolo, é a primeira coisa a conferir, antes da estratégia.

O campo de alavancagem é um pedido, não um ajuste. Nas 23 execuções em arquivo pediu-se 1:500 ao testador e o teste rodou a 1:100 — 0 de 23 vezes o número pedido teve efeito. Isso não é um palpite de quem releu o campo: foi fixado medindo-se a margem que uma posição realmente consumiu dentro do teste, 126,39 USD, que bate com o cálculo de alavancagem 100 e não com o de 500. A consequência prática é que um projeto sensível à margem — um grid, um martingale, qualquer coisa que empilhe posições — pode passar num backtest com uma alavancagem que nunca verá, ou reprovar em uma que não teria usado. Confira o número de margem do relatório contra a sua própria aritmética, em vez de confiar na caixa que você preencheu.

Passo a passo: rode o teste no MT5

  1. Abra View > Strategy Tester (Ctrl+R). O painel se encaixa na parte de baixo do terminal, com Settings, Inputs, Agents e Journal como abas.
  2. Na aba Settings, escolha o Expert Advisor e depois o Symbol e o Period. Escolha o símbolo que você vai realmente operar — a especificação, e não só o preço, vem dele, e o tamanho do contrato e as regras de margem diferem entre as variantes que uma corretora oferece do mesmo par.
  3. Defina o intervalo de datas. Use um período personalizado com datas De e Até explícitas, em vez de “último mês”, para que a execução seja reproduzível por quem só ler o seu relatório.
  4. Escolha o modo Modelling. Every tick based on real ticks para qualquer coisa intradiária; Every tick gerado a partir de barras M1 para sistemas mais lentos; os modos mais grosseiros servem para varrer parâmetros, nunca para um número que você vai publicar.
  5. Defina Deposit, moeda e alavancagem, e deixe Optimisation desativada na primeira passagem. Anote a alavancagem que você pediu — você vai verificá-la contra os números de margem do relatório, em vez de supô-la.
  6. Abra a aba Inputs e leia cada valor. É a aba que carrega em silêncio as edições da execução anterior, e é por isso que nossos registros verificam as entradas contra o relatório concluído, e não contra o arquivo que achávamos ter carregado. Uma execução deste conjunto carrega 362 delas.
  7. Pressione Start. Deixe o Visual mode desligado, a menos que esteja depurando a lógica de entrada — ele é muito mais lento e tenta você a assistir em vez de medir.
  8. Quando terminar, abra as abas Results, Graph e Backtest, clique com o botão direito dentro do relatório e salve-o. O relatório salvo, e não uma captura de tela da curva de capital, é a coisa que você vai comparar mais tarde.
  9. Registre o build do terminal junto com o resultado. Nossas 23 execuções abrangem os builds 6090 e 6140; duas execuções da mesma estratégia sob builds diferentes não são automaticamente o mesmo experimento.
  • Confira que histórico o símbolo realmente guarda
  • Escolha o modo de modelagem à altura do tempo de permanência
  • Defina símbolo, período e um intervalo de datas explícito
  • Leia cada valor da aba Inputs
  • Rode uma passagem com a otimização desativada
  • Salve o relatório, não uma captura de tela
  • Leia as duas linhas de drawdown antes da linha de lucro
A ordem em que as decisões precisam ser tomadas — dados antes dos ajustes, ajustes antes da execução

Lendo os resultados: o que os números do relatório realmente querem dizer

Pegue a saída da mesma execução. Foi isto que voltou:

ResultadoValorO que ele precisa superar antes de você continuar
Total de operações416O bastante para que a média descreva uma amostra, e não um caso isolado
Fator de lucro1,28Acima de 1,0 por uma margem que sobreviva a custos que você não modelou
Lucro líquido3.023,01 USDSobre um depósito de 10.000 — um retorno, não uma nota
Drawdown de saldo5,82% (747,57)A pior queda considerando operações fechadas
Drawdown de capital6,11% (787,60)A pior queda incluindo posições abertas — a que você teria assistido
Taxa de acerto60,82%Sozinha não diz nada; leia-a contra o stop e o alvo, aqui de 100 e 200 pips
Condições do teste
ID do experimentoEXP-BACKTEST-RUNBOOK-001
ID da execuçãostillwater__gate_v2_duka_realticks__2019-01-01_2026-07-01
Build do MT56140
Especificação de contratoExness-MT5Trial5
Símbolo / tempo gráficoUSDJPY_DUKA M5
Período2019-01-01 – 2026-07-01
ModeloEvery tick based on real ticks (Model 4)
Depósito10,000 USD
Alavancagem pedida1:500
Alavancagem efetiva1:100
Medido em2026-08-23
Última verificação2026-08-25

Três coisas desse relatório são mal lidas rotineiramente.

As duas linhas de drawdown são perguntas diferentes. O drawdown de saldo mede a curva de capital de operações fechadas; o drawdown de capital inclui o flutuante das posições que ainda estavam abertas. Nas nossas 23 execuções a linha de capital foi a mais funda todas as vezes, e o tamanho da diferença não é previsível a partir da descrição da estratégia: a mais estreita foi de 0,04 ponto (0,67% contra 0,71%) e a mais larga foi de 11,10 pontos (14,52% contra 25,62%, uma razão de 1,76). Uma estratégia que fecha rápido tem uma diferença pequena. Uma que se senta em cima do movimento adverso tem uma grande — e é exatamente a estratégia cujo drawdown você mais precisa conhecer antes de colocar dinheiro nela.

23 de 23Execuções publicadas em que o drawdown de capital foi mais fundo que o de saldo
11,10 pontosMaior diferença entre as duas linhas de drawdown em uma execução — 14,52% contra 25,62%
0 de 23Execuções em que a alavancagem pedida ao testador é a alavancagem com que o teste rodou

O MT5 imprime cada drawdown duas vezes, sob duas definições. O drawdown Maximal é medido no momento em que o valor foi maior; o Relative, no momento em que o percentual foi maior. São instantes diferentes da mesma execução, então os dois números não são duas vistas de um mesmo evento. Das nossas execuções, 16 estão registradas na definição Maximal e 5 na Relative — e o processo que escreve esses registros se recusa a parear um número Maximal de saldo com um Relative de capital, porque uma página mostrando os dois estaria comparando dois instantes distintos. Quando citar um drawdown, diga junto qual é a definição.

Os totais do próprio relatório são arredondados, e a janela dele pode não ser a janela que você quer dizer. Recalculado a partir da lista de operações publicada, o fator de lucro da mesma execução é 1,2843, e não o 1,28 do relatório — inofensivo aqui, e nada inofensivo quando você compara dois candidatos separados por três casas decimais. Mais importante: aquela execução de 416 operações se divide em 404 operações até a data de corte de publicação, 2026-04-01, e 12 depois dela. As 12 posteriores devolveram um fator de lucro de 2,3317. Nenhum dos dois números está errado; eles respondem a perguntas diferentes, e o corte é uma data que um humano escolheu, não algo que o testador imprimiu. Se você vai dividir uma execução em “a parte em que ajustei” e “a parte em que não”, anote onde fica a linha antes de olhar a segunda metade. A leitura de um relatório de backtest do MT5 faz essa divisão nas 23 execuções e mostra o quanto o número principal se move.

Armadilhas que invalidam uma execução em silêncio

Melhore: mude uma coisa, rode de novo, compare

O ciclo é deliberadamente sem graça. Mude uma variável, rode de novo e anote os dois resultados. Duas variáveis de uma vez e você não consegue atribuir a diferença a nenhuma delas.

A ordem que rende mais informação por execução é:

  1. Varie a janela antes de variar a estratégia. Rode 2019–2022 e 2022–2026 separadamente. Se as duas metades discordarem, os parâmetros estão descrevendo um período, e nenhuma dose de ajuste conserta isso.
  2. Varie o símbolo. Uma regra que só funciona em um par é um fato sobre aquele par. Nosso conjunto inclui as mesmas abordagens gerais em USD/JPY, EUR/GBP, AUD/CAD, NZD/USD, um índice e um par de cripto exatamente por esse motivo.
  3. Varie o modo de modelagem. Rode de novo o candidato sobrevivente com um modelo mais grosseiro. Se o resultado desmoronar, a vantagem morava dentro da barra, e o caminho intrabarra é a parte menos confiável de qualquer simulação.
  4. Só então varie parâmetros — e trate qualquer ajuste que você teve de procurar como uma afirmação mais fraca do que um que você escolheu de antemão.

Pare de iterar quando uma mudança deixar de mover o resultado para fora do ruído das execuções anteriores, ou quando você perceber que está escolhendo ajustes por causa do que o último relatório disse. Essa segunda é a verdadeira condição de parada, e ela chega mais cedo do que as pessoas esperam. O analisador de backtest ajuda aqui porque relê os números principais de um relatório salvo, o que transforma a comparação de duas execuções em aritmética, e não em memória.

Próximos passos: faça o forward test antes de ir para o real

Um único backtest limpo é o primeiro de quatro passos, não a linha de chegada.

Otimize, se a regra tiver parâmetros que valham a busca. Registre toda a faixa de busca, e não a passagem vencedora — um resultado que você teve de procurar é evidência sobre a busca, e é a faixa que diz ao leitor com que afinco você procurou. A otimização de parâmetros percorre essa passagem e lê as nossas oito buscas registradas: 116 combinações, e nenhum ajuste que estivéssemos dispostos a publicar.

Depois caminhe adiante. Ajuste em um segmento, meça no seguinte e repita. É o único dos quatro passos que ataca o sobreajuste diretamente, e é por isso que vale mais do que um backtest mais longo.

Depois faça o forward test em conta demo. É aqui que latência, requotes e o alargamento real do spread finalmente entram no experimento. Rode por tempo suficiente para ver a estratégia perder e se recuperar, porque o número de que você realmente precisa não é o retorno — é se você aguenta sentar em cima do drawdown que mediu acima.

Depois decida. Anote, com antecedência, a perda que faria você desligá-la. Um limite definido antes de investir é uma decisão; um definido durante o drawdown é uma reação.

Se quiser uma referência trabalhada antes de rodar a sua, cada anúncio do catálogo de EAs publicados traz a lista completa de operações fechadas, as duas linhas de drawdown e o manifesto de execução por trás delas, e como testamos descreve o padrão a que esses registros são submetidos. O resto dos guias de backtesting aprofunda os passos de otimização e walk-forward que esta página apenas aponta. Nada aqui promete um resultado: todo número desta página descreve execuções que já aconteceram.

Perguntas frequentes

Qual deve ser a duração do período de backtest?
Longa o bastante para que a estratégia tenha operado em condições que voltará a encontrar, o que é uma pergunta sobre contagem de operações, e não sobre calendário. Das 23 execuções publicadas aqui, 22 começam em 2019-01-01 e a janela mediana é de 7,5 anos — mas a taxa de amostragem dentro dessas janelas vai de 14,2 operações por ano a 945,1. Uma janela de sete anos em uma estratégia lenta ainda pode ser uma amostra de cem operações, e cem operações é um número pequeno para se tirar uma conclusão. Leia a contagem de operações primeiro e o intervalo de datas depois.
Por que os resultados do meu backtest mudam quando rodo o mesmo teste de novo?
Quase sempre porque o histórico de preços mudou, e não a estratégia. O testador baixa e guarda o histórico por símbolo, então uma primeira execução sobre uma janela cujos primeiros anos ainda não estavam armazenados produz uma série de ticks diferente da de uma segunda execução, depois que as lacunas foram preenchidas. O modo de modelagem faz a mesma coisa de forma mais visível: alternar entre Every tick based on real ticks e Every tick generated from M1 bars muda quais operações chegam a disparar, e não apenas os preços de execução delas. Registre o modo e o build do terminal junto com o resultado, ou duas execuções suas se tornam incomparáveis.
O Strategy Tester inclui spread, comissão e swap?
Ele aplica aquilo que os dados de preço e a especificação do símbolo carregarem, o que não é a mesma coisa que você escolher esses custos. Nas 23 execuções publicadas aqui a comissão saiu zerada em todas, e apenas uma execução consegue declarar o próprio spread médio — 19,14 pontos, e só porque um EA gravador rodou dentro do teste, ao lado da estratégia. Todo o resto herdou o spread que o histórico carregava, sem registrá-lo. Se um custo importa para o seu resultado, meça-o dentro do teste em vez de supor que o testador o modelou.
Um bom backtest basta para rodar um EA em conta real?
Não. Um backtest delimita o que um conjunto de regras teria feito sobre preços registrados, sob um modelo de execução simulado. Ele não contém latência, nem requotes, nem o alargamento de spread que chega exatamente no momento em que um sinal dispara. A ordem que funciona é backtest, depois otimização se a regra tiver parâmetros que valham a busca, depois uma verificação walk-forward em dados que a busca nunca viu, e então uma conta demo por tempo suficiente para ver a estratégia perder e se recuperar. Resultados passados descrevem o passado, e nada nesta página é previsão.