Categoria
Plataforma
Nível
Iniciante
Usado em
Operação do MT5Avaliação de EA

Número mágico

Um inteiro que um Expert Advisor carimba em cada ordem que envia, para reconhecer as próprias posições e deixar todo o resto da conta em paz.

também: magic do EA, número mágico da ordem, MAGIC

Atualizado · Revisado

Em palavras simples

Uma etiqueta com nome em cada operação. O terminal não se importa com quem abriu uma posição, então cada EA escreve o próprio número no ticket e depois só mexe nos tickets que carregam esse número.

Por que importa

O MetaTrader dá a cada EA de uma conta a mesma visão de todas as posições. Sem etiqueta, um EA não consegue distinguir as próprias operações das suas nem das de outro EA — e um EA que gerencia a posição errada é um bug que custa dinheiro em vez de um que lança um erro.

  • É o que torna possível, para começar, rodar vários EAs em uma mesma conta.
  • Protege as operações manuais: elas carregam magic 0, e um EA bem escrito nunca as toca.
  • É como um histórico pode ser separado por estratégia depois — a etiqueta sobrevive no histórico de deals.

No MetaTrader 5

Onde aparece no MT5

  • Gráfico → propriedades do EA (F7) → Entradas — a própria entrada MagicNumber do EA
  • Testador de Estratégia → Entradas — a mesma entrada ao testar
  • Código MQL5: MqlTradeRequest.magic ao enviar, POSITION_MAGIC / ORDER_MAGIC / DEAL_MAGIC ao ler de volta

Como os EAs usam

  • Definido uma vez na inicialização — CTrade::SetExpertMagicNumber(MagicNumber) — e a partir daí toda ordem enviada pelo EA carrega a etiqueta.
  • Filtrado a cada passagem: o laço de posições pula qualquer ticket cujo POSITION_MAGIC não seja o dele antes de modificar, arrastar ou fechar qualquer coisa.
  • O histórico é filtrado do mesmo jeito, para que as estatísticas por EA sejam calculadas só com os deals daquele EA.
  • Todo EA gerado pelo Builder do mt5depot vem com uma entrada MagicNumber cujo valor deriva da estratégia, de modo que dois EAs gerados diferentes não colidem de saída.

Configurações típicas

Configuração Valor típico Observação
Operações manuais 0 O padrão do terminal. Um EA nunca deveria gerenciar magic 0.
Um EA, um símbolo qualquer inteiro único Serve qualquer um fácil de lembrar — 20260807, 1001.
O mesmo EA em vários símbolos um valor por gráfico Caso contrário, a instância do EURUSD fecha as posições da do GBPUSD.
EA de carteira rodando várias estratégias um valor por perna Cada perna precisa da própria etiqueta para ser arrastada e fechada de forma independente.

Problemas operacionais comuns

  • Duas instâncias deixadas no mesmo magic: cada uma vê as posições da outra como suas e as fecha na hora errada.
  • Mudar o magic com posições abertas as deixa órfãs — o EA não reconhece mais operações que abriu minutos antes, e nada as fechará automaticamente.
  • Deixar o magic em 0 coloca o EA no comando das suas operações manuais.
  • Reanexar um EA depois de reiniciar o terminal com o valor padrão em vez do configurado produz a mesma orfandade, silenciosamente.

Funções do MT5 relacionadas

CTrade::SetExpertMagicNumber()
Define a etiqueta que toda ordem seguinte desta instância vai carregar.
PositionGetInteger(POSITION_MAGIC)
Lê a etiqueta de uma posição aberta.
OrderGetInteger(ORDER_MAGIC)
Lê de uma ordem pendente.
HistoryDealGetInteger(ticket, DEAL_MAGIC)
Lê de um deal fechado, que é como o histórico é separado por EA.

Exemplo

Três EAs em uma conta. Cada um carimba o próprio número, então cada laço de posições toca apenas as próprias linhas mesmo que todos vejam as seis posições.

Um terminal, uma conta, três donos — a etiqueta é a única coisa que os separa.
EA de tendência no EURUSD
20260101
EA de reversão à média no USDJPY
20260102
Suas operações manuais
0
Nenhum EA reivindica esta etiqueta, então nada automático vai fechá-las.

Cálculo if (PositionGetInteger(POSITION_MAGIC) != MagicNumber) continue;

Resultado Cada EA gerencia apenas as posições que abriu

Valores ilustrativos — não são o histórico de nenhum EA listado.

Como é usado

Trate o número mágico como configuração de conta, não como ajuste de estratégia: anote-o antes de o EA ir para o real e nunca o mude com posições abertas.

  • Atribua um valor por instância em execução, não por produto EA — o mesmo EA em dois gráficos precisa de dois valores.
  • Mantenha uma lista. Assim que quatro ou cinco instâncias estiverem rodando, uma etiqueta não anotada é indistinguível de uma duplicada.
  • Nunca reutilize uma etiqueta que ainda tenha posições abertas atreladas, nem mesmo de um EA que você removeu.
  • Confira depois de cada reinstalação do terminal ou restauração de perfil, que é onde os padrões voltam.

O valor em si não significa nada para o MetaTrader — qualquer inteiro serve. O que importa é que seja único entre as coisas rodando naquela conta.

Erros comuns

Achar que o número mágico afeta a execução

Ele não muda nada em como uma ordem é preenchida. É metadado: a corretora não age com base nele e ele não tem efeito sobre preço, spread ou slippage.

Usar um número mágico para um EA em muitos gráficos

A identidade que importa é a instância em execução, não o produto. Dois gráficos compartilhando uma etiqueta significam duas instâncias gerenciando um mesmo conjunto de posições.

Mudá-lo para «resetar» um EA que está se comportando mal

As posições abertas mantêm a etiqueta antiga. Mudar a entrada as abandona: o EA para de reconhecê-las e elas ficam abertas até serem fechadas à mão ou por um stop out.

Supor que um número mágico separa o extrato da conta

A aba Negociação do terminal não o mostra. Separar resultados por EA exige ler DEAL_MAGIC do histórico, que é o que as ferramentas de relatório fazem — não algo que o extrato padrão entrega.

Em detalhe

O que a etiqueta não compra, contado nesta prateleira

Sobre os 14 EAs publicados aquiValor
Anúncios com uma entrada MagicNumber10
Anúncios que exigem mudá-la durante a instalação0
Anúncios que pedem rodá-los onde nada mais opere aquele símbolo8
Destes, anúncios que carregam mesmo assim uma entrada MagicNumber6
Símbolos reivindicados por mais de um anúncio7 de 15
Pares de EA que não podem dividir uma conta15 de 91

Leia as linhas três e quatro juntas. Etiquetar ordens é um trabalho; decidir se um novo sinal é permitido é outro, e um EA que se limita a uma posição aberta precisa contar primeiro. Se conta com PositionsTotal() e uma checagem de símbolo, uma posição alheia entra no total; se filtra antes por POSITION_MAGIC, não entra. Seis anúncios daqui carregam a entrada e ainda assim imprimem o aviso, o que lhe diz qual das duas a contagem de posições deles usa.

Então a pergunta do emparelhamento é uma pergunta de símbolo, e dá para respondê-la antes de comprar. USD/JPY é reivindicado por quatro anúncios ao mesmo tempo — Iridescence, Kestrel Hover, Lanternfish e Tessera —, então nenhum par entre eles combina. O EUR/GBP agora carrega dois, Ballast e Thunderhead. Só Orrery, Peregrine e Zerqon não se sobrepõem a ninguém. Onde dois se sobrepõem, separar contas resolve o que uma etiqueta não resolve: cada EA passa a contar um conjunto que contém apenas as próprias operações. Nossa metodologia registra cada execução publicada por símbolo, que é a mesma distinção vista do lado da medição.

Perguntas frequentes

Que número mágico devo usar?
Qualquer inteiro que ainda não esteja em uso naquela conta, e que não seja 0 — esse valor pertence às operações manuais. Um valor em forma de data como 20260807 é fácil de acompanhar quando várias instâncias estão rodando.
Dois EAs podem compartilhar o mesmo número mágico?
Tecnicamente sim, e é uma causa comum de prejuízos difíceis de diagnosticar: cada instância trata as posições da outra como suas e pode fechá-las ou arrastá-las na hora errada. Dê a cada instância em execução o próprio valor.
O número mágico importa no Testador de Estratégia?
Num teste com um único EA não, porque nada mais está operando na conta de teste. Importa assim que mais de um EA roda na mesma conta real ou demo.