Neste artigo
Depois deste artigo, saberá…
- Identificar denominadores diferentes de cobertura temporal e contagem de ticks.
- Ler corretamente último fecho completo conforme direção do array e contagem devolvida.
- Testar fronteiras UTC sem inferir fuso histórico pela igualdade de relógios simulados.
Conceitos sem sair do artigo
Backtesting: teste histórico de regras Bid e Ask Spread Bid/Ask Comissão Drawdown — queda a partir de um máximo Taxa de acerto (win rate)Um backtest lucrativo pode divergir de negociação real por dados, execução ou seleção irrealistas. O nome do modo e uma percentagem de qualidade não resolvem essas diferenças. Conserve versão, parâmetros, dados, custos e decisões para poder explicar um resultado, em vez de tratar a curva como validação automática.
MT4 e MT5: capacidades específicas
Ambos testam Expert Advisors. MT5 permite múltiplos símbolos e distribui passagens de otimização por agentes; um teste único não usa automaticamente todos os núcleos. MT4 também tem otimizador genético, mas o teste normal não executa operações em símbolos diferentes do testado. Somar relatórios separados não reproduz capital partilhado de uma carteira.
Guarde build, EA compilado, inputs, especificação e pressupostos da conta. Dados descarregados no History Center MT4 podem diferir do histórico da corretora. Duração ou rótulo de período não determina adequação. Escolha ferramenta pela regra concreta e pelos inputs que consegue representar, mantendo a hipótese em vez de a alterar só para caber no programa.
Muitos ticks não são muitos minutos com ticks
Modelo inteiramente fictício: três minutos igualmente longos têm barra de minuto disponível. Primeiro e segundo contêm dez ticks reais cada; terceiro nenhum. Para esse terceiro minuto, estipulamos 80 registos gerados. O conjunto final tem 100 registos: 20 reais e 80 gerados.
Cobertura real 2/3≈66,67%; parcela de registos reais 20%. Não são Modelling Quality.
- Minutos 1/2
- 10+10 reais – Dois intervalos com dados reais
- Minuto 3
- 80 gerados – Um intervalo sem ticks reais
- Comparação
- 2/3 vs 20/100 – Métricas próprias, não relatório de tester
A cobertura de minutos com ticks reais é 2/3≈66,67%. A parcela de registos reais é 20/100=20%. São duas métricas próprias, não Modelling Quality nem relatório real de tester. Acrescentar registos ao mesmo minuto aumenta o denominador de registos, sem criar outro minuto com origem real.
Como controlo adicional, suponha 160 gerados no mesmo terceiro minuto. Os reais continuam 20, total 180, parcela real 11,11%; cobertura temporal real continua 2/3. A alteração da segunda percentagem não demonstra perda de minutos nem mudança da regra. Identifique o denominador antes de comparar qualidade de dados.
Modelação e origem do histórico
MT4 oferece Open prices only, Control points e Every tick, construídos a partir de barras e trajetórias geradas; Control points é estimativa preliminar grosseira. MT5 acrescenta ticks registados e 1 minute OHLC. Um sinal diário pode ter stop intrabar; simplificar para aberturas exige que o procedimento e a execução representada o permitam.
No MT5, pode haver geração quando existe barra de minuto sem ticks. Spreads reais podem variar dentro do minuto; a geração usa spread atribuído à barra. O número 80 do exemplo foi inventado, não é contagem típica. Confira cobertura e logs. Importar ticks externos no MT4 exige processo compatível; barras HST sozinhas não demonstram modelação genuína de ticks.
Modelling Quality descreve modelação, não percentagem de previsões certas. Uma indicação 90% ou 99% de ferramenta externa requer definições próprias e inspeção de preparação. Nenhum valor verifica seleção de estratégia, custos históricos ou execuções reais. Dados pagos também podem ser inadequados à pergunta.
Custos, pontos e cenários de execução
O MT4 normal acrescenta spread escolhido ao histórico Bid; por omissão usa o spread atual no início do teste, não percurso histórico completo. Com EUR/USD fictício de cinco casas, 12 pontos de 0,00001 equivalem a 0,00012, ou 1,2 pips de 0,0001. Confundir 12 pontos com 12 pips multiplicaria o custo de preço por dez.
No MT5, confirme comissões da conta ou personalizadas, entrada/saída e base por negócio ou volume. Reconcilie uma operação fechada. O modo de lucro em pips elimina comissão, swap e controlo de margem; serve uma estimativa simplificada. A simulação de atraso é cenário, não reprodução integral de liquidez ou execução real. Não aplique 7 USD ou penalização fixa em pips como tarifa universal.
Disponibilidade temporal e índices são problemas distintos
Antecipação usa informação que não existia no momento simulado. Às 10:15, o máximo já alcançado pela barra H1 iniciada 10:00 é conhecido; o máximo final da hora não. Uma regra que exige hora completa precisa de esperar. Não troque todos os índices zero por um: deteção de nova barra e regra de preço atual também mudariam.
No exemplo CopyRates bem-sucedido há quatro fechos, do mais antigo ao atual: 100; 101; 102; 103. Num array dinâmico as_series=false, rates[1].close vale 101; último fecho completo é rates[2].close=102. Com as_series=true, rates[1].close vale 102. A regra «último completo>101,5» é verdadeira, mas a leitura errada do índice 1 no array normal rejeita.
É erro de identificação de barra antiga, não prova de usar futuro. Verifique contagem devolvida e horas antes de indexar como se existissem quatro elementos. Histórico parcial não deve ser preenchido silenciosamente com zero. Conserve situação de dados em falta como tal, sem a transformar em sinal válido.
Sobreajustamento decorre de seleção em pesquisas repetidas; taxa de acerto ou profit factor altos não o diagnosticam sozinhos. Viés de sobrevivência omite instrumentos/contas antes elegíveis que desapareceram. Use universo disponível a cada data, sem inventar inflação universal de 30–50% no resultado.
Ler saldo, capital próprio e avaliação futura
No modelo original de conta PLN, 10000 iniciais e ganhos fechados 500 dão saldo 10500; perda aberta 700 deixa equity 9800, sem outros encargos ou mudanças. O saldo esconde exposição. Num exemplo separado em EUR, 5000 iniciais, ganho realizado 200 e perda aberta 350 dão saldo 5200 e capital próprio 4850. A avaliação fica 150 abaixo do início, apesar de saldo 200 acima. Não são conversão cambial nem dados reais.
Profit factor ou Sharpe acima de um limiar não certifica estratégia. Reveja resultados líquidos, contagem, drawdown, custos e sensibilidade. Walk-forward aplica escolhas congeladas a períodos posteriores; compare retornos anualizados consistentes e série cronológica fora da amostra. WFE sozinho não prova robustez ou sobreajustamento; retorno de desenvolvimento zero ou negativo dificulta interpretação.
Quatro anos de escolha e ano seguinte de avaliação são um desenho possível, se adequado, não regra obrigatória. WFE abaixo de 0,5 não identifica automaticamente causa. Os testes posteriores continuam simulações, com pressupostos de dados e execução, não desempenho real futuro verificado. Conserve uma avaliação final não usada para escolher regras.
Limites da ferramenta e relógios do tester
Julgamento discricionário pode ser estudado por critérios registados e replay; não é automaticamente impossível de testar. Escolha outra ferramenta se um input ou mecanismo necessário não cabe no modelo e confira documentação atual. A metodologia de backtest começa por regra, dados e execução, independentemente da marca.
Relógios iguais não validam conversão UTC
A documentação MQL5 diz que TimeGMT no tester é igual a TimeTradeServer simulado. Comparar essas funções não reconstrói offsets históricos do servidor. O modelo fictício aceita 12:00 UTC inclusive até 13:00 exclusive. Um instante 12:00 UTC está dentro; sob offset explicitado UTC+2 lê 14:00 no servidor. Interpretar 14 como UTC rejeita incorretamente.
12:00 UTC=14:00 servidor dentro; 13:00 UTC=15:00 servidor fora.
- Início
- 12:00 UTC→14:00 – Inclusivo
- Fim
- 13:00 UTC→15:00 – Exclusivo
- Igualdade no tester
- TimeGMT=TimeTradeServer – Não prova offset histórico
O +2 pertence apenas ao exemplo. Teste limite final exato, passagem de data e cada mudança de offset do calendário documentado. Num teste adicional, 13:00 UTC corresponde 15:00 sob +2 e fica fora pela fronteira exclusiva. Igualdade de funções na simulação não garante que o mesmo filtro se comporta igual ao vivo. Não adicione Z à hora sem converter.
Confira exportação antes da corrida seguinte
No verificador CSV local, use timestamp, open, high, low, close com offsets explícitos e informe primeiras/últimas aberturas e intervalo esperado. O exemplo M1 de 08:00 a 08:11 tem 12 linhas, mas só oito instantes válidos distintos, quatro posições vazias, duas linhas repetidas e um grupo OHLC conflitante.
Guarde relatório e investigue lacunas contra sessões do produto. OHLC completo não demonstra ticks registados completos. O verificador não insere preços nem valida execução. O estudo do calendário BCE (em inglês) mostra 2560 publicações e 49 dias úteis sem publicação no snapshot 2016–2025, coincidentes com encerramentos TARGET; taxa de referência diária não simula stops.
Quatro ações para a próxima corrida
- Identifique produto, dados, fuso, período e modo; arquive cobertura e substituições geradas, sem confiar apenas no rótulo.
- Configure custos e atraso disponíveis, conferindo um negócio e condições menos favoráveis coerentes com o modelo.
- Separe escolha e avaliação cronológica conforme a hipótese; preserve relatórios e logs, incluindo resultados desfavoráveis.
- Verifique hora, contagem e índices de cada input. Compare sinais e negócios; mudança de 30% no resultado, por si, não diagnostica antecipação.
Abra um teste único com otimização desligada antes de pesquisar parâmetros. Guarde símbolo, período, datas, depósito/moeda, modelo da conta, margem, comissão, swap e atraso. Nem histórico de cinco anos nem prazo de download universal garantem adequação. Milhares de simulações não criam independência estatística.
Verifique o que aprendeu
Aprox. 2 minutos de prática.
Ver resposta e explicação
Não foi acrescentado outro minuto com origem real. Esta métrica conta intervalos, não registos.
Mais perguntas
O que significa 90% ou 99% de qualidade?
O campo MT4 descreve modelação, não percentagem de previsões ou lucros. Ferramentas externas têm definições próprias. Inspecione dados intrabar, lados, custos e seleção; MT5 real ticks também pode precisar de substituição quando falta minuto de ticks.
Como configurar primeiro teste MT5?
Escolha EA compilado, salve inputs/build, símbolo, período, datas, depósito/moeda, modelo/margem e modo. Confira custos/atraso. Faça teste único sem otimização, reconcilie operações e arquive diário. Não há mínimo universal de anos nem download de duração fixa.
Índice zero é sempre antecipação?
Não. Barra atual contém informação disponível até ao instante. Usar valor final antes de existir é o problema. Verifique contagem, horas e direção do array; CopyRates start_pos e índice de destino são conceitos distintos.
Manual ou automático para testar?
Replay documenta critérios discricionários, mas pode ser contaminado por conhecer futuro. Código reproduz regras sob dados/versões/estado controlados. Compare sinais e execução iguais; contagem elevada não demonstra independência ou significância.
Fontes e verificação
- MetaQuotes — MT5 Strategy Testing
Múltiplos símbolos, otimização por agentes, custos e modo pips sem swap/comissão/margem.
- MetaQuotes — MT4 Tester Setup
Modos de barras/geração, otimizador genético, FXT e spread escolhido aplicado a históricoBid.
- MQL4 — Operation of Programs in Tester
Operações do tester normal só no símbolo testado; limites específicosMT 4, não carteira multiativa por soma de relatórios.
- MetaQuotes — Real and Generated Ticks
Barras de minuto sem ticks e geração; dois denominadores de 80 registos são invenção didática.
- MetaQuotes — CopyRates
Contagem devolvida, start_pos e disposição física/as_series dos dados.
- MetaQuotes — TimeGMT
Igualdade TimeGMT e TimeTradeServer simulado não documenta offset histórico do servidor.
Os cálculos usam pressupostos explícitos. Não substituem os dados atuais do mercado nem as condições do prestador.
