Categoria
Plataforma
Nível
Iniciante
Usado em
Operação do MT5Avaliação de EADesenho de estratégia

Expert Advisor

Programa de trading automatizado escrito em MQL5 que roda dentro do MetaTrader 5 e abre, modifica e fecha ordens de acordo com regras programadas, sem intervenção manual.

também: EA, robô de trading, bot de trading, operador algorítmico

Atualizado

Em palavras simples

Um programa que opera por você dentro do MetaTrader. Ele não tem discernimento nem memória além do que você lhe deu: acorda quando a plataforma o chama, olha as poucas coisas para as quais foi escrito e age.

Por que importa

Backtests, números de drawdown, magic numbers, disponibilidade de VPS — tudo isso existe porque quem envia as ordens é um programa, e não uma pessoa. Saber o que a plataforma entrega a um EA, e o que ela lhe sonega, é a diferença entre ler um resultado corretamente e ser surpreendido por ele.

  • Ele executa sem hesitar, e aí está todo o seu valor e todo o seu risco. O mesmo conjunto de regras que nunca deixa passar um sinal válido também nunca percebe que hoje está diferente.
  • Ele enxerga uma fatia estreita: os preços do seu símbolo, os valores dos indicadores que solicita, as posições e o saldo da própria conta. Notícias, cotações de outras corretoras e suas demais contas ficam fora dessa janela a menos que o código vá buscá-las.
  • Ele é distribuído compilado. Um arquivo .ex5 roda, mas não pode ser lido, então a confiança de quem compra precisa vir de evidências de teste publicadas, e não do código-fonte.
  • Ele só roda enquanto o terminal rodar. Um EA em um notebook adormecido é um EA que não está operando — é esse o argumento inteiro a favor de um VPS.

No MetaTrader 5

Onde aparece no MT5

  • Navegador → Expert Advisors — os EAs compilados que o terminal consegue enxergar
  • Arquivo → Abrir pasta de dados → MQL5/Experts — é onde o arquivo .ex5 precisa estar para aparecer
  • Barra de ferramentas → Algo Trading — a chave geral; um EA com uma carinha triste no gráfico é um EA que este botão está bloqueando
  • Gráfico → Propriedades do EA (F7) → Parâmetros de entrada / Comum — parâmetros e permissões por EA
  • Exibir → Testador de Estratégia (Ctrl+R) — o mesmo EA rodando sobre dados históricos

Como os EAs usam

  • O terminal chama OnInit() uma vez ao anexar, OnTick() a cada cotação recebida para o símbolo do gráfico e OnDeinit() na remoção.
  • O trabalho costuma acontecer em barras fechadas, e não a cada tick: o EA compara o horário de abertura da barra atual com o que guardou e retorna imediatamente quando nada novo se formou.
  • As ordens saem como uma MqlTradeRequest preenchida, ou pelo wrapper CTrade, que preenche a maior parte dela por você.
  • Cada instância marca suas ordens com um magic number para administrar apenas as próprias posições — sem ele, dois EAs brigam pelos mesmos tickets.

Configurações típicas

Configuração Valor típico Observação
Algo Trading (terminal) ativado Vem desligado após a instalação. Nada opera até que seja ligado.
Permitir Algo Trading (por EA, F7 → Comum) ativado É uma permissão separada da chave geral do terminal.
Permitir WebRequest para a URL listada desligado, a menos que o EA precise Só EAs que buscam dados externos precisam disso; conceda por URL, nunca de forma ampla.
Tempo gráfico do gráfico o tempo gráfico para o qual o EA foi projetado Uma estratégia de M15 em um gráfico de H1 é outra estratégia — OnTick dispara por tick, mas a lógica de barras lê o período do gráfico.
MagicNumber único por instância em execução Não por produto: dois gráficos rodando o mesmo EA precisam de dois valores.

Problemas operacionais comuns

  • O terminal está fechado, suspenso ou reiniciando para atualizar — o EA simplesmente não está rodando, e nenhum erro é registrado.
  • Divergência de nome de símbolo entre corretora e configuração (EURUSD contra EURUSD.m) deixa o EA anexado e mudo.
  • Margem livre insuficiente: OrderSend falha a cada tentativa e o EA segue tentando, então o log enche enquanto a conta não faz nada.
  • O contexto de negociação fica ocupado quando vários EAs enviam ao mesmo tempo — falhas intermitentes e difíceis de reproduzir.
  • O EA foi testado em uma corretora com outro modelo de execução ou outro tamanho de contrato, e se comporta de forma diferente no real sem nenhuma mudança de código.

Funções do MT5 relacionadas

OnInit() / OnDeinit()
Chamadas uma vez ao anexar e uma vez na remoção — é onde os parâmetros são validados e os handles criados.
OnTick()
Chamada a cada cotação recebida para o símbolo do gráfico; é o ponto de entrada principal.
OnTimer()
Chamada em intervalo fixo definido por EventSetTimer(), para o trabalho que não deve depender da chegada de ticks.
OrderSend(request, result)
A única chamada que envia toda operação de negociação; a estrutura da requisição decide de que tipo ela é.
CTrade (Trade/Trade.mqh)
O wrapper da biblioteca padrão que a maioria dos EAs usa em vez de preencher MqlTradeRequest na mão.

Exemplo

Quase todo EA, reduzido à ordem em que a plataforma o chama. Nada disso é estratégia — é a moldura dentro da qual uma estratégia se encaixa.

1. OnInit()
uma vez, ao anexar
Validar os parâmetros, criar os handles de indicadores, definir o magic number.
2. OnTick()
a cada cotação
Retornar imediatamente enquanto não se formar uma barra nova, e então avaliar as regras.
3. OrderSend()
quando uma regra dispara
Uma MqlTradeRequest preenchida por operação — abrir, modificar ou fechar.
4. OnDeinit()
uma vez, na remoção
Liberar os handles. As posições abertas não são fechadas por isso — elas permanecem.

Remover um EA do gráfico não fecha o que ele abriu. As posições continuam lá, e nada mais as administra.

Cálculo if (iTime(_Symbol, PERIOD_CURRENT, 0) == lastBarTime) return;

Resultado Um EA de fechamento de barra que ignora os milhares de ticks entre duas decisões

Como é usado

Julgar um EA que você não escreveu é uma questão de evidência: o arquivo compilado não diz nada. Abaixo está o que pedir.

  • Pergunte quais dados o backtest usou e como foi modelado. Ticks reais e um número de qualidade de modelagem significam algo; uma curva de capital sem legenda, não.
  • Pergunte a quantidade de operações e a janela. O EA mediano publicado aqui encerrou 362 operações ao longo de vários anos; quarenta operações em quatro meses são uma anedota.
  • Verifique se a estratégia mantém as perdedoras abertas. Preço médio e recuperação em grade produzem curvas lindas até a cesta que não se recupera, e nenhuma razão calculada sobre operações encerradas avisa você.
  • Rode em demo na sua própria corretora antes de colocar dinheiro. Modelo de execução, spread, tamanho de contrato e nomenclatura de símbolos são todos diferentes, e todos mudam os resultados.
  • Dê a cada instância o seu próprio magic number e registre qual é qual antes de rodar mais de duas.

Todo EA listado aqui publica a janela testada, a fonte de dados, a qualidade de modelagem e o registro completo de operações, de modo que essas evidências podem ser conferidas em vez de solicitadas.

Erros comuns

Tratar um EA como um trader com discernimento

Ele é um conjunto de regras que a plataforma chama a cada tick. Não consegue perceber que o mercado mudou, que um banco central fala em dez minutos ou que os próprios resultados dele pioraram — a menos que alguém tenha escrito uma regra exatamente para isso.

Supor que um resultado de backtest se transfere para a sua conta

Spread, comissão, modelo de execução, tamanho de contrato e conjunto de símbolos fazem parte do resultado. Um teste em uma corretora é evidência sobre aquela corretora; uma rodada em demo na sua é a forma mais barata de ver quanto se transfere.

Remover o EA para pará-lo e achar que as operações pararam também

Desanexar um EA deixa as posições abertas dele onde estão. Nada mais as acompanha nem as fecha depois; elas ficam até tocar um stop, um alvo ou um stop out.

Rodar vários EAs em uma conta sem separá-los

Sem magic numbers distintos, cada EA trata toda posição como sua para administrar, e eles fecham as operações uns dos outros. A falha é silenciosa — nenhum erro, apenas resultados que não correspondem a estratégia alguma isoladamente.

Em detalhe

Como é um registro real de um EA

Uma definição descreve o mecanismo; um registro descreve a experiência. Os catorze EAs publicados aqui trazem a lista completa de operações encerradas — 9.702 operações desde 2019.

Nos 14 EAs publicadosValor
Operações encerradas9.702
Operações por EA (mediana)362, de 108 a 4.725
Fator de lucro (mediana)1,39, de 1,27 a 1,52
Pior sequência de perdas (mediana)6 operações, a pior 14
Período mais longo sem nova máxima de capital (mediana)423 dias, o pior 775
Execuções reais verificadas0

Expert advisors são lucrativos percorre esse registro EA a EA, e EA versus trading manual reproduz as mesmas operações sob as regras de parada que uma pessoa realmente aplica.

Perguntas frequentes

O que é um Expert Advisor no MetaTrader 5?
Um programa escrito em MQL5 e compilado em um arquivo .ex5 que roda dentro do terminal e opera pelas suas regras. A plataforma o chama a cada cotação recebida para o gráfico ao qual está anexado, e ele abre, modifica e fecha ordens sem ninguém ao teclado.
Preciso deixar o computador ligado para um EA funcionar?
Sim — um EA roda dentro do terminal, então ele só opera enquanto o terminal estiver rodando e conectado. É por isso que EAs sem supervisão costumam viver em um VPS, e não em um computador que suspende ou reinicia.
Consigo ler a estratégia dentro de um EA que comprei?
Pelo arquivo .ex5, não. EAs compilados rodam sem expor a lógica, e é exatamente por isso que os vendedores os entregam assim. A estratégia precisa ser descrita com honestidade no anúncio e sustentada por evidências de teste publicadas.
Posso rodar mais de um EA na mesma conta?
Sim, e é comum. Cada instância precisa do próprio magic number para administrar apenas as posições que ela abriu, e a conta precisa de margem livre para todas ao mesmo tempo — as estratégias não sabem umas das outras.