A otimização de parâmetros no MetaTrader 5 é uma busca: você declara uma faixa para cada entrada, o Strategy Tester roda todas as combinações e devolve uma tabela ordenada pela métrica que você escolheu. O difícil não é rodar. O difícil é que a tabela sempre tem uma primeira linha, e a primeira linha quase sempre está errada.
O que você leva deste artigo é um procedimento que produz uma decisão em vez de um número: uma busca que você consegue defender, uma leitura da grade de passagens que sobrevive ao contato com um segundo período, e uma regra de parada.
| Condições do teste | |
|---|---|
| ID do experimento | EXP-PARAM-SEARCH-OUTCOMES-001 |
| Experimento pai | EXP-BUILDER-TEMPLATE-BASELINE-001 |
| Fonte | ea-templates-manifest.js → bt.explored |
| População | 8 recorded searches of the 53 measured templates |
| Símbolo / tempo gráfico | USDJPYm, M5 and H1 |
| Modelo | M1 OHLC (Model=1), Exness MT5, measured 2026-06-18 |
| Parâmetros variados | stop loss and take profit only |
| Última verificação | 2026-08-25 |
Preparação: a grade, a divisão e os dados
Três ajustes decidem se a busca vale a pena ser rodada. Erre neles e a grade de passagens vira um gerador de números aleatórios caríssimo.
| Campo | Onde | O que definir | Por quê |
|---|---|---|---|
| Optimisation | Aba Settings | Slow complete algorithm para uma grade pequena | O modo genético amostra o espaço; para 12–32 combinações você pode se dar ao luxo de ver tudo |
| Start / Step / Stop | Aba Inputs, por entrada | Dois parâmetros, passos grossos | Cada entrada que você marca multiplica a grade. As nossas moveram duas |
| Forward | Aba Settings | 1/2, 1/3 ou 1/4 | Divide o intervalo para que o testador pontue a metade final separadamente — esta é a verificação para a qual você está rodando a busca |
| Optimisation criterion | Aba Settings | Decida antes de olhar a grade | É a métrica pela qual o testador ordena as passagens, então é ela que decide qual linha é a primeira |
| Modelling | Aba Settings | Um modo grosseiro para varrer, e depois rode de novo o sobrevivente sobre ticks reais | Modos de varredura servem para ordenar candidatos, nunca para um número publicado |
| Period | Aba Settings | Longo o bastante para conter mais de um regime | Uma busca dentro de uma única tendência encontra o ajuste que a cavalgou |
O critério merece uma decisão, e não um valor padrão. Ordenar por lucro líquido premia a passagem que mais arriscou, e ordenar por uma medida baseada em drawdown premia a que menos operou — o fator de recuperação existe porque essas duas respostas discordam. Nossas próprias buscas não foram julgadas pela ordenação do testador em momento algum: cada sobrevivente foi pontuado pelo fator de lucro em três janelas separadas, e a ordenação dentro de qualquer uma delas nunca decidiu nada.
A qualidade dos dados vem primeiro: uma busca sobre ticks ruins otimiza as lacunas. A versão curta é que uma qualidade de modelagem abaixo de 90% torna inutilizáveis as grades de passagens intradiárias, e que uma execução construída a partir de dados de tick interpolados não consegue resolver um stop que fica dentro de uma barra.
- Rode primeiro um único backtest, com os valores padrão, e guarde o relatório. Sem uma referência, a grade de passagens não tem nada para superar — como fazer um backtest cobre essa passagem de ponta a ponta.
- Na aba Settings, coloque Optimisation em uma passagem completa para uma grade pequena, e ponha Forward em
1/3para que o testador reserve o último terço do intervalo. - Na aba Inputs, marque apenas os parâmetros que você está de fato testando, e dê a cada um um Start, um Step e um Stop. Duas entradas com passos grossos ganham de quatro com passos finos.
- Pressione Start e deixe terminar. Leia a aba Optimisation Results como uma tabela, e o Optimisation Graph como uma forma — um pico isolado é um aviso, um platô é um achado.
- Pegue os sobreviventes — não o vencedor — e rode cada um de novo como um backtest único sobre um período anterior à janela de otimização. Este é o passo que produziu todos os veredictos negativos do nosso conjunto, e é o que as pessoas pulam.
Lendo os resultados: três períodos, não um
Aqui está o nosso registro inteiro, ordenado pelo melhor fator de lucro dentro da amostra que cada busca alcançou. IS é o período em que o ajuste foi calibrado, OOS é a amostra reservada, e “anterior” é uma janela mais antiga que a busca nunca viu.
| Modelo | Grade explorada | Melhor IS | OOS | Anterior | Veredicto |
|---|---|---|---|---|---|
ichimoku | 12 combinações × 3 janelas | 1,37 | 0,89 | 0,80 | no_robust_edge |
ma_crossover | 20 + 12 combinações, dois tempos gráficos | 1,23 | 0,89–0,94 | 0,78 | no_robust_edge |
cci_level | 12 combinações × 3 janelas | 1,07 | 1,05 | 0,92 | no_robust_edge |
adx_trend | 12 combinações × 3 janelas | 1,04 | 0,91 | 0,80 | no_robust_edge |
breakout | 12 combinações × 3 janelas | 1,04 | 0,79–0,89 | 0,64–0,84 | no_robust_edge |
macd_signal | 12 combinações × 3 janelas | — | 1,14–1,15 | 0,74–0,77 | no_robust_edge |
rsi_reversal | 12 combinações × 3 janelas | 0,91 | — | — | no_robust_edge |
bb_bounce | 12 combinações × 3 janelas | 0,91 | — | — | no_robust_edge |
Leia a primeira coluna numérica de cima a baixo, e depois na horizontal. O maior resultado dentro da amostra do conjunto produziu o maior colapso: o 1,37 do ichimoku caiu para 0,89 e depois para 0,80. Essa ordem não é coincidência — o ajuste que melhor encaixa em uma janela é, por construção, o que mais absorveu o ruído daquela janela.
Agora olhe o ajuste que de fato chegou mais perto. Ele não está na tabela acima, porque nunca foi a primeira linha de coisa alguma: na mesma grade do ichimoku, SL50/TP150 marcou 1,18 dentro da amostra, 0,99 fora da amostra e 1,00 na janela anterior. Três períodos, todos mais ou menos no zero a zero. Foi registrado como o candidato mais próximo e ainda assim não foi adotado, porque ficar no ponto de equilíbrio ao longo de três janelas não é uma vantagem — é a ausência de uma, medida com cuidado.
Contra isso, as referências que essas buscas tentavam superar ficam entre 0,92 e 1,03. Nenhuma busca chegou a mover um valor padrão publicado.
Armadilhas a evitar
O modo de falha por baixo das cinco é o mesmo. O sobreajuste não é um erro que você comete no fim de uma busca — é o desfecho padrão de rodar uma, e a disciplina dos três períodos existe para torná-lo visível antes que você aja com base nele.
Melhore e itere: o que mudar, e quando parar
Mude uma coisa, rode de novo, compare contra a referência que você guardou. A ordem que menos desperdiça tempo:
- Alargue o período antes de alargar a grade. Mais regimes ganha de mais combinações. Uma busca que cobre uma única tendência vai encontrar o ajuste que a cavalgou, seja qual for a resolução.
- Depois engrosse os passos, em vez de refiná-los. Se um resultado só existe em
SL47, ele não existe. - E então, e só então, acrescente um parâmetro. As nossas nunca chegaram até aqui, porque dois parâmetros já reprovavam no critério dos três períodos.
Pare quando uma destas for verdadeira, e anote qual:
- Um sobrevivente passa nos três períodos. Publique-o, e registre toda a grade que você buscou — não apenas a passagem que você guardou.
- O melhor resultado dentro da amostra está abaixo de 1,0. Você tem uma resposta de verdade: duas das nossas oito buscas terminaram aqui, e terminar aqui depois de 36 avaliações sai barato.
- Os sobreviventes vivem passando em uma janela e falhando em outra. A regra depende do regime. Buscar mais produz mais ajustes dependentes do regime.
- Você começou a explicar por que a janela anterior “não conta”. Esse é o momento em que a busca deixou de ser um teste.
O registro honesto de uma busca é a faixa que você cobriu e o veredicto, juntos. Cada uma das nossas oito está guardada assim, e é por isso que este artigo pôde ser escrito a partir delas — um vencedor guardado sozinho não teria provado nada.
Próximos passos: forward test e então decida
A otimização é o segundo passo de quatro. A sequência é backtest → otimização → walk-forward → demo, e cada um remove uma forma diferente de estar errado.
- Pratique o ciclo em algo que você controla: monte uma estratégia no Builder e busque você mesmo o stop e o alvo dela, porque uma grade que você declarou é muito mais fácil de ler com honestidade do que uma herdada.
- A versão formal da verificação de três períodos é a análise walk-forward, que vai rolando a divisão para frente em vez de fixá-la em um único lugar.
- Seja lá o que a busca devolver, o relatório em que ela devolve ainda precisa ser lido: a leitura de um relatório de backtest do MT5 cobre sobre qual população cada número principal é, de fato, uma afirmação.
- Para ver como é um registro terminado quando os números sobreviveram, cada um dos EAs publicados traz a lista completa de operações fechadas e o manifesto de execução por trás dela.
- Como testamos, pontuamos e registramos tudo isso está descrito na nossa metodologia de testes.