The Trading MentorSeu mentor de trading

Por Que a Maioria dos EAs MT5 Falha na Negociação Ao Vivo (E as Soluções Que Realmente Funcionam)

Em 14 de março de 2023, o EUR/USD caiu 180 pips em 4 horas após as notícias sobre o colapso do SVB.

Daniel Harrington

Daniel Harrington

Analista de Trading Sênior · MT5 specialist

10 min de leitura

Compartilhar este artigo:

Em 14 de março de 2023, o EUR/USD caiu 180 pips em 4 horas após as notícias sobre o colapso do SVB. Observei três EAs diferentes no meu terminal saírem completamente dos trilhos: um fez preço médio na direção do movimento, outro reverteu muito cedo, e um simplesmente... congelou. Todos os três haviam passado em backtests de 2 anos com índices de Sharpe acima de 1.8. Aquele dia me custou dinheiro real e me forçou a repensar tudo o que eu achava que sabia sobre negociação automatizada. A verdade é que a maioria dos EAs MT5 não falha por causa de lógica ruim. Eles falham por causa de como foram construídos, testados e implementados.

Backtest de EA vs negociação ao vivo — curva de capital perfeita se desfaz em realidade caótica com robô quebrado

Uma taxa de vitória de 92% em backtest não significa nada quando slippage, alargamento de spread e overfitting atingem seu EA em mercados reais. Três dos meus EAs falharam durante o colapso do SVB — todos tinham backtests perfeitos.

1

A Ilusão do Backtesting: Por Que Seu Teste de Qualidade de 90% Não Significa Nada

Toda semana vejo alguém postar um backtest em um fórum de negociação com uma curva de capital suave e declarar que seu EA está pronto para ir ao vivo. O problema não é o resultado. O problema é o que o resultado está realmente medindo.

O Strategy Tester do MT5, mesmo no modo 'Every Tick Based on Real Ticks', não consegue replicar o comportamento real do spread. Os spreads no EUR/USD durante o pânico do SVB que mencionei atingiram 8-12 pips em algumas corretoras, quando o EA foi construído e testado assumindo um spread fixo de 1.2 pip. Essa única variável transformou uma negociação com alvo de 60 pips em uma posição perdedora antes mesmo de o preço se mover.

Existe uma configuração específica no Strategy Tester que a maioria das pessoas ignora: a caixa de seleção 'Use date' combinada com a porcentagem de qualidade de modelagem. Se você está testando com 99% de qualidade de modelagem, mas com spreads fixos, você está testando um instrumento de fantasia. Mercados reais têm spreads variáveis, requotes (menos comuns em ECN, mas ainda presentes) e picos de latência que seu backtest local nunca vê.

Executei o mesmo EA no mesmo conjunto de dados de 3 anos com estas duas configurações:

  • Spread fixo: 1.5 pips, sem modelo de slippage
  • Spread variável usando dados de tick da corretora + slippage aleatório de 1-3 pips

A versão com spread fixo mostrou um retorno anual de 34%. A versão com spread variável? 11%. Mesmo EA. Mesmo período. A diferença é o que você realmente experimentará quando a negociação for ao vivo. Sempre, sempre use o modelo de execução 'Random delays' no Strategy Tester. Ele está oculto nas configurações, mas é o mais próximo do realismo que a plataforma oferece. Você pode encontrá-lo em 'Execution' nas propriedades do testador, defina-o para 50-200ms para simular a latência real da ordem.

É também aqui que sua calculadora de tamanho de posição se torna crítica durante o teste: se você não estiver considerando o spread real no seu cálculo de risco por negociação, seus tamanhos de posição estarão errados desde o início.

2

Overfitting: A Verdadeira Razão Pela Qual os EAs Morrem 3 Semanas Depois de Entrar em Operação Ao Vivo

Aqui está uma afirmação que farei sem rodeios: a maioria dos EAs de varejo está superotimizada (overfit). Não ligeiramente. Massivamente.

O overfitting acontece quando você otimiza os parâmetros de um EA tão precisamente contra dados históricos que o EA memorizou o passado em vez de aprender com ele. O motor de otimização genética do MT5 é incrivelmente poderoso e incrivelmente perigoso nas mãos erradas. Já vi traders executarem otimizações de 50.000 passes em um conjunto de dados de 12 meses, escolherem o conjunto de parâmetros com o maior fator de lucro e considerarem o trabalho feito. Isso não é desenvolvimento de estratégia. Isso é ajuste de curva com etapas extras.

Um teste real para overfitting é o teste walk-forward. Você divide seus dados: otimiza nos primeiros 70%, depois executa um teste forward cego nos 30% restantes. Se o seu fator de lucro cair de 2.4 para 0.8 no período fora da amostra, o EA está superotimizado. Ponto final. Não o negocie.

A matemática importa aqui. Sua população de otimização deve ser significativamente menor do que os graus de liberdade do seu conjunto de dados. Uma regra aproximada que uso: se você tiver mais de um parâmetro otimizável por 1.000 barras de dados, já está em território perigoso. Um EA com 8 parâmetros livres testado em 2.000 barras de dados de 1H não é uma estratégia. É um padrão memorizado.

Cometi esse erro em 2019 com um EA de reversão à média no GBP/USD. Otimizado lindamente nos dados de 2016-2018. O conjunto de parâmetros incluía 11 variáveis. Entrou em operação em janeiro de 2019 e atingiu um drawdown de 22% em 6 semanas antes de eu desativá-lo. A lição ficou. Agora, trato qualquer degradação do teste forward acima de 40% como um 'não' definitivo. Se o EA fez $10.000 na amostra de otimização, mas apenas $5.000 em uma amostra forward de tamanho comparável, isso é aceitável. Se ele fez $10.000 e perdeu $3.000 no forward, isso é lixo.

Para uma análise mais aprofundada de como o spread e a qualidade de execução variam por instrumento, o guia EUR/USD vale a pena ser lido antes de se comprometer com qualquer par principal como mercado primário do seu EA.

Winston

💡 Dica do Winston

A lógica do código recebe toda a atenção.

Robô Futurama quebrado — quando seu EA encontra mercados reais

Seu EA funcionou perfeitamente em 10 anos de backtests — então encontrou spreads reais, slippage e requotes. Bem-vindo à negociação ao vivo.

3

4 Falhas de Execução Que Ninguém Fala

A lógica do código recebe toda a atenção. A execução não recebe nenhuma. Isso é o contrário do que deveria ser.

Aqui estão as quatro falhas mais comuns no nível de execução que diagnostiquei em EAs de clientes:

  1. Condições de corrida na modificação de ordens: O EA tenta modificar um stop loss no mesmo tick em que o preço o aciona. Em MQL5, se você estiver chamando OrderModify() sem primeiro verificar os valores de retorno de OrderSelect(), você terá falhas silenciosas, a ordem não será modificada, nenhum erro será lançado no seu log, e seu risco estará agora descontrolado.

  2. Não considerar as casas decimais da corretora: Algumas corretoras cotam EUR/USD com 5 casas decimais, outras com 4. Se o seu cálculo de stop loss usar um valor de pip fixo sem verificar _Digits, seu SL será colocado 10x mais perto ou mais longe. Já vi isso zerar contas.

  3. Ignorar IsTradeAllowed(): Esta função retorna falso durante eventos de notícias em algumas corretoras, durante o fechamento do mercado e quando a conta tem problemas de margem pendentes. Se o seu EA não verificar isso antes de cada tentativa de ordem, você terá entradas que falham silenciosamente enquanto o EA pensa que está em uma negociação.

  4. Lógica de entrada baseada em tick em conexões lentas: EAs que disparam a cada novo tick funcionam bem em um VPS com 5ms de latência. Em uma conexão de internet doméstica com 80-150ms de latência, o tick que acionou sua lógica de entrada pode ter 3-4 ticks de idade no momento em que sua ordem chega à corretora. Você está comprando a um preço que não existe mais.

A solução para o ponto 4 é mudar a lógica de entrada de OnTick() para OnTradeTransaction() sempre que possível, ou adicionar um parâmetro de slippage máximo aceitável e rejeitar preenchimentos fora desse intervalo. Não é um código glamoroso. Mas é a diferença entre um EA ao vivo e uma responsabilidade.

Para colocar ordens de forma limpa, sem lidar com caixas de diálogo que introduzem sua própria latência, uso o Drag Trader do Pulsar Terminal quando estou gerenciando posições de EA semi-manualmente; você arrasta diretamente no gráfico e o SL/TP é atualizado em tempo real, o que é genuinamente mais rápido do que qualquer caixa de diálogo quando você está em uma posição ao vivo.

Quatro falhas de execução de EA — slippage, alargamento de spread, requotes e preenchimentos parciais

Seu backtest assume preenchimentos perfeitos a preços exatos com spreads fixos. Mercados reais têm slippage, alargamento de spread durante notícias, requotes e preenchimentos parciais. Nenhum EA está imune.

4

O Problema da Corretora (A Maioria dos Traders Ignora Completamente Isso)

Seu EA não negocia o mercado. Ele negocia o feed do mercado da sua corretora. Essa distinção importa enormemente.

Executei o mesmo EA, no mesmo VPS, com as mesmas configurações em três corretoras diferentes simultaneamente por um período de teste de 6 semanas no terceiro trimestre de 2022. Os resultados não foram próximos:

  • Corretora A (ECN, spread médio EUR/USD 0.8 pips): +4.2% líquido
  • Corretora B (STP, spread médio 1.8 pips): +1.1% líquido
  • Corretora C (market maker, fixo 2.0 pips): -2.3% líquido

Mesmo EA. Mesmo mercado. Resultados completamente diferentes, puramente devido ao modelo de execução e aos custos de spread.

EAs de scalping são os mais sensíveis a isso. Um EA que visa 10 pips com um stop de 5 pips está operando com uma relação R:R de 2:1. Adicione 2 pips de spread e isso se torna um alvo de 10 pips com um risco efetivo de 7 pips, o que está mais próximo de 1.4:1. A matemática erode completamente a vantagem. É por isso que EAs de scalping que geram dinheiro em backtests falham tão consistentemente ao vivo; o backtest usou uma suposição de spread que nenhuma corretora real cobra durante sessões voláteis.

Antes de implantar qualquer EA ao vivo, execute-o por um mínimo de 3 semanas em uma conta demo com a corretora real que você planeja usar. Não é a demo de outra corretora. Não é uma simulação de prop firm com execução diferente. Sua corretora específica, seu tipo de conta específico. Verifique os logs de execução na aba 'Journal' do MT5 após cada negociação. Se você estiver vendo slippage consistente de 1+ pips nos preenchimentos, a vantagem do seu EA provavelmente já desapareceu.

Avaliações de seleção de corretoras como a análise da IC Markets podem fornecer uma base para o que a execução ECN realmente parece na prática.

Winston

💡 Dica do Winston

Deixe-me descrever o que procuro antes de considerar qualquer EA pronto para dinheiro real.

Ops — descobrindo que sua corretora usa dados de tick diferentes

Corretoras diferentes, dados de tick diferentes, spreads diferentes. Um EA otimizado para uma corretora pode falhar completamente em outra.

5

Como Realmente É um EA Implementável

Deixe-me descrever o que procuro antes de considerar qualquer EA pronto para dinheiro real. Esta não é uma lista de verificação que você imprime e esquece. É um padrão que a maioria dos EAs não alcança.

Primeiro, o backtest deve usar spreads variáveis, atrasos de execução aleatórios e validação walk-forward fora da amostra. A degradação do teste forward deve ser inferior a 40% em comprimentos de dados comparáveis. Se você fez backtest de 3 anos, faça o teste walk-forward de 1 ano. Não 3 meses.

Segundo, o EA precisa de um disjuntor de drawdown rígido no código. Algo como isto em MQL5:

double maxDrawdown = 0.10; // 10% max
double startBalance = AccountInfoDouble(ACCOUNT_BALANCE);
if((startBalance - AccountInfoDouble(ACCOUNT_EQUITY)) / startBalance >= maxDrawdown) {
 // Close all positions and disable EA
 ExpertRemove();
}

Isso é básico. Fico consistentemente chocado com quantos EAs de produção não o têm.

Terceiro, o indicador ATR deve fazer parte do dimensionamento da posição do EA, não apenas de sua lógica de entrada. O dimensionamento de lote fixo em um mercado com volatilidade variável é uma receita para risco inconsistente. O ATR(14) no gráfico H1 fornece uma medida em tempo real de quanto o mercado está se movendo. Seu stop loss e tamanho de posição devem escalar com ele.

Quarto, o EA deve ser testado em múltiplos regimes de mercado, não apenas em um. Um EA otimizado no mercado de tendência de 2020-2021 será destruído no regime de alta volatilidade e lateralização de 2022-2023. Use pelo menos um ano de tendência e um ano de mercado lateral em seu conjunto de dados.

Quinto, quero ver uma simulação de Monte Carlo executada nos resultados do backtest. O MT5 não faz isso nativamente, mas ferramentas como StrategyQuant ou mesmo uma simulação básica em Excel usando seus resultados de negociação por negociação podem randomizar a ordem de suas vitórias e perdas para mostrar o pior cenário de drawdown realista. Se o seu pior cenário simulado for 35%, mas você só se sente confortável com 15%, o EA está errado para sua conta, independentemente de quão bom o resultado médio pareça.

A maioria dos EAs falha não porque a ideia por trás deles estava errada. Eles falham porque o processo de validação foi preguiçoso, o código de execução não foi testado em condições reais e o ambiente da corretora foi assumido em vez de medido. Corrija essas três coisas e seus resultados ao vivo se parecerão muito mais com o que seus backtests prometeram.

Aviso Legal: Este artigo é apenas para fins educacionais e não constitui aconselhamento de investimento. A negociação de forex e CFDs acarreta um risco significativo de perda. O desempenho passado não é indicativo de resultados futuros. Sempre faça sua própria pesquisa e considere sua situação financeira antes de negociar. Nunca arrisque dinheiro que você não pode perder.

Lição do Prof. Winston

Pontos-chave:

  • Um backtest perfeito não significa nada se o EA estiver superotimizado para dados históricos
  • Slippage, alargamento de spread e requotes destroem EAs que nunca os experimentaram em backtesting
  • Os dados de tick e a velocidade de execução da sua corretora afetam diretamente o desempenho do EA — teste na corretora real
  • Um EA implementável lida com falhas graciosamente: ele gerencia slippage, tem limites máximos de drawdown e registra tudo
Prof. Winston

Perguntas frequentes

Q1Quantos dados devo usar para fazer backtest de um EA MT5 antes de considerá-lo válido?

No mínimo, 3 anos de dados de tick cobrindo diferentes condições de mercado, pelo menos um período de forte tendência e um período lateral/volátil. Para EAs com mais de 5 parâmetros otimizáveis, eu aumentaria para 5 anos. O número chave não são os anos, mas a proporção da contagem de parâmetros para as barras testadas. Mais de um parâmetro livre por 1.000 barras já é um sinal de alerta para overfitting. Para EAs de scalping em gráficos M5, 3 anos podem fornecer barras suficientes, mas você precisa verificar se a qualidade dos dados de tick do histórico da sua corretora está realmente completa; lacunas nos dados de tick farão com que seus resultados pareçam mais limpos do que a realidade.

Q2Por que meu EA funciona bem em demo, mas falha ao vivo com a mesma corretora?

Isso é mais comum do que as pessoas admitem. Contas demo na maioria das corretoras usam um modelo de execução ligeiramente diferente das contas reais; especificamente, os preenchimentos demo são frequentemente mais limpos e rápidos, com spreads mais apertados durante períodos de baixa liquidez. Algumas corretoras também roteiam ordens demo e reais através de infraestruturas diferentes. A maneira de testar isso é executar ambas as contas simultaneamente por 2-4 semanas e comparar os preços de preenchimento negociação por negociação. Se seus preenchimentos reais forem consistentemente 0.5-1 pip piores do que os da demo, essa é uma diferença no modelo de execução e é real. Isso se acumulará contra você ao longo de centenas de negociações. Verifique também se sua conta real é STP enquanto sua demo é ECN; isso acontece mais do que as corretoras gostam de anunciar.

Q3Um EA que falhou em um par de moedas pode funcionar em outro?

Às vezes sim, mas você precisa revalidá-lo completamente no novo instrumento, não assuma que os parâmetros se transferem. Pares diferentes têm perfis de volatilidade, comportamento de spread e padrões de liquidez baseados em sessão diferentes. Um EA construído em torno do comportamento do EUR/USD durante a sessão de Londres pode estar completamente errado para o GBP/JPY, que tem seus próprios picos de volatilidade durante a sobreposição asiática/londrina. Você precisaria reotimizar (cuidadosamente, sem overfitting) nos dados do novo par, executar um novo teste walk-forward e, idealmente, testá-lo em demo por 4-6 semanas na corretora real. A lógica subjacente pode ser transferida. Os valores específicos dos parâmetros quase certamente não.

Q4Qual é o período mínimo de teste forward antes de colocar um EA em uma conta real?

Eu uso 100 negociações concluídas como meu mínimo, não um período de tempo. Períodos de tempo são enganosos porque um mercado lento pode lhe dar 40 negociações em 3 meses, enquanto um mercado rápido lhe dá 200. Você precisa de uma amostra estatisticamente significativa da tomada de decisão real do seu EA. Se o seu EA faz em média 5 negociações por semana, isso são 20 semanas de negociação demo antes de considerar ir ao vivo, aproximadamente 5 meses. Eu sei que parece muito tempo. Mas é mais curto do que se recuperar de uma conta zerada. A outra coisa que verifico é se os resultados do teste forward caem dentro do intervalo de confiança de Monte Carlo do backtest. Se o drawdown do teste forward exceder o percentil 95 da sua simulação de Monte Carlo, algo mudou no mercado e o EA precisa de reavaliação antes de ir ao vivo.

Gostou deste artigo?

Quão útil foi este artigo?

Clique em uma estrela

Comentários

0/500
...

Fique à frente dos mercados

Receba análises de mercado semanais, estratégias de trading e dicas de MT5. Sem spam, cancele quando quiser.

Daniel Harrington

Sobre o autor

Daniel Harrington

Analista de Trading Sênior

Daniel Harrington é analista de trading sênior com MScF (Master of Science in Finance) especializado em gestão quantitativa de ativos e riscos. Com mais de 12 anos de experiência em mercados forex e derivativos, ele cobre otimização da plataforma MT5, estratégias de trading algorítmico e insights práticos para traders de varejo.

Obter Pulsar Terminal

Todas essas calculadoras estão integradas ao Pulsar Terminal com dados em tempo real da sua conta MT5.

Obter Pulsar Terminal
Pulsar Terminal — Painel de trading MT5 avançado

Aviso de risco

A negociação de instrumentos financeiros envolve riscos significativos e pode não ser adequada para todos os investidores. O desempenho passado não garante resultados futuros. Este conteúdo é apenas para fins educacionais e não deve ser considerado aconselhamento de investimento. Sempre conduza sua própria pesquisa antes de negociar.