Expert Advisor

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

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.

Expert Advisor — MT5 glossary overview

Num relance

Tipo de termo
Plataforma MT5
Nível
Iniciante
Usado em
Operação do MT5 · Avaliação de EA · Desenho de estratégia
Função MQL5
OnInit() / OnDeinit()

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.