Códigos de erro MT5: 10027, 10030, 10016 e mais
Sumário (7)
Sumário
Códigos de erro do MT5 / MQL5: retcodes 10004–10031 e erros de execução
O MT5 informa dois tipos de erro: os retcodes de negociação de 5 dígitos (por exemplo, 10027 AutoTrading desativado, 10030 modo de preenchimento não suportado, 10016 stops inválidos, 10019 saldo insuficiente) e os erros de execução de 4 dígitos do GetLastError() (por exemplo, 4401, 4756) — a tabela abaixo relaciona cada um à sua correção.
Consulta rápida: código → significado → correção
Os números e os nomes das constantes seguem a referência oficial do MQL5 (códigos de retorno do servidor de negociação e erros de execução).
Retcodes de negociação (MqlTradeResult.retcode)
| Código | Constante | Significado | Correção | Detalhes |
|---|---|---|---|---|
| 10004 | TRADE_RETCODE_REQUOTE | Requote — o preço se moveu antes da execução | Aumente o desvio permitido ou reenvie a ordem ao preço atualizado | Off quotes e requotes |
| 10006 | TRADE_RETCODE_REJECT | Solicitação rejeitada | Geralmente é spread amplo ou mercado rápido; deixe o EA tentar novamente em um tick posterior | — |
| 10013 | TRADE_RETCODE_INVALID | Solicitação inválida | Um campo da solicitação (ação, tipo de ordem, símbolo) está errado; valide-a com OrderCheck() antes de enviar | — |
| 10014 | TRADE_RETCODE_INVALID_VOLUME | Volume inválido na solicitação | Arredonde o lote para o mínimo, o máximo e o passo do símbolo (SYMBOL_VOLUME_MIN / MAX / STEP) | — |
| 10015 | TRADE_RETCODE_INVALID_PRICE | Preço inválido na solicitação | Normalize o preço conforme os dígitos e o tamanho do tick do símbolo; confirme que a ordem pendente está do lado correto do mercado | — |
| 10016 | TRADE_RETCODE_INVALID_STOPS | Stops inválidos na solicitação | Mantenha o SL/TP mais distante que o stops level do broker e do lado correto do preço | Invalid stops |
| 10017 | TRADE_RETCODE_TRADE_DISABLED | A negociação está desabilitada | Verifique o modo de negociação do símbolo em Especificação e se você entrou com a senha de negociação (não a de investidor); caso contrário, consulte o broker | — |
| 10018 | TRADE_RETCODE_MARKET_CLOSED | O mercado está fechado | Aguarde a abertura da sessão de negociação do símbolo | Mercado fechado |
| 10019 | TRADE_RETCODE_NO_MONEY | Saldo insuficiente para concluir a solicitação | Reduza o tamanho do lote, feche posições ou deposite fundos | Saldo insuficiente |
| 10021 | TRADE_RETCODE_PRICE_OFF | Sem cotações para processar a solicitação | Verifique a conexão e se o símbolo está sendo cotado no momento e tente novamente | Off quotes e requotes |
| 10026 | TRADE_RETCODE_SERVER_DISABLES_AT | Autotrading desabilitado pelo servidor | O broker bloqueia a negociação algorítmica nesta conta; entre em contato com o broker | AutoTrading desativado |
| 10027 | TRADE_RETCODE_CLIENT_DISABLES_AT | Autotrading desabilitado pelo terminal cliente | Ative o botão Algo Trading e permita o algo trading em Opções e nas propriedades do EA | AutoTrading desativado |
| 10030 | TRADE_RETCODE_INVALID_FILL | Tipo de preenchimento da ordem inválido | Defina type_filling com um modo que o símbolo suporte (FOK / IOC / Return) | Modo de preenchimento não suportado |
| 10031 | TRADE_RETCODE_CONNECTION | Sem conexão com o servidor de negociação | Verifique a barra de status da conexão, a rede do VPS e o status do servidor do broker | — |
Erros de execução (GetLastError())
| Código | Constante | Significado | Correção | Detalhes |
|---|---|---|---|---|
| 4001 | ERR_INTERNAL_ERROR | Erro interno inesperado | Não é específico de uma única causa: chame ResetLastError() antes da função que você está verificando e, se persistir, reinicie ou atualize o terminal | — |
| 4401 | ERR_HISTORY_NOT_FOUND | Histórico solicitado não encontrado | Chame HistorySelect() para um período que contenha o negócio ou a ordem antes de lê-lo | — |
| 4752 | ERR_TRADE_DISABLED | Negociação por Expert Advisors proibida | Ative o Algo Trading e marque “Permitir Algo Trading” nas propriedades do EA | AutoTrading desativado |
| 4756 | ERR_TRADE_SEND_FAILED | Falha no envio da solicitação de negociação | OrderSend() retornou false; leia MqlTradeResult.retcode para saber o motivo real (geralmente 10027, 10030 ou 10016) | — |
Vindo do MT4? O MT4 usa números diferentes, na maioria de 3 dígitos, para as mesmas situações (134, 130, 132, 136, 4109 …). Cada seção abaixo traz o equivalente no MT4, extraído da referência oficial do MQL4. Observe que no MT5 o número 4109 significa ERR_CHART_WRONG_PROPERTY (um erro de gráfico), e não um erro de negociação.
Nossos 3 EAs principais (todos os números do backtest de longo prazo e do forward público)
📧 Curso gratuito por e-mail (8 e-mails) + pacote com 13 indicadores MT5 exclusivo para inscritos
* Privacidade rigorosamente protegida. Você pode cancelar a inscrição a qualquer momento.
Como acessar a aba Expert
Clique na aba Expert na parte inferior do MT5 para ver um log cronológico de toda a atividade dos EAs.
Formato do log:
2026.05.18 10:00:01.234 GOLD VIPER XAUUSD,M30: [ERROR] 10016
Data/Hora Nome do EA Símbolo Timeframe Mensagem
Quando um erro aparecer, use o número do código para encontrar a causa na tabela acima.
Códigos de erro mais comuns e como resolvê-los
10019 — Saldo insuficiente (TRADE_RETCODE_NO_MONEY)
Equivalente no MT4: 134 ERR_NOT_ENOUGH_MONEY. ERR_NO_MONEY é uma abreviação muito usada para a mesma situação.
Exemplos de mensagem: "Order failed: not enough money"
"No money"
Causa: Margem insuficiente — o EA não consegue abrir uma nova posição.
Como resolver:
- Verifique o nível de margem atual na aba Trade do MT5
- Se a margem estiver próxima ou abaixo de 100%, considere fazer um depósito adicional
- Reduza a configuração
RiskPercentdo EA para diminuir o tamanho da posição - Feche manualmente algumas posições abertas para liberar margem
📖 Para entender por que ele aparece mesmo quando o saldo parece suficiente, e o código MQL5 que o evita, veja Not enough money no MT5 — causas e soluções.
10027 — AutoTrading desabilitado pelo cliente (TRADE_RETCODE_CLIENT_DISABLES_AT)
Erro de execução do MT5 relacionado: 4752 ERR_TRADE_DISABLED. Equivalente no MT4: 4109 ERR_TRADE_NOT_ALLOWED.
Exemplos de mensagem: "AutoTrading disabled by client"
"Trade is not allowed"
Causa: A negociação automática está desativada no MT5.
Como resolver:
- Clique no botão Algo Trading na barra de ferramentas do MT5 para ativá-lo (ele deve ficar verde)
- Vá em Ferramentas → Opções → Expert Advisors → ative Permitir Algo Trading e reinicie o MT5
Este erro ocorre com frequência quando o MT5 inicia automaticamente após uma reinicialização do VPS.
📖 Para ver toda a cadeia de permissões (configurações de Opções, Permitir Algo Trading por gráfico, senha de investidor e a diferença entre 10027 e 10026), veja AutoTrading desativado no MT5 — a solução completa.
10018 — Mercado fechado (TRADE_RETCODE_MARKET_CLOSED)
Equivalente no MT4: 132 ERR_MARKET_CLOSED.
Exemplo de mensagem: "Market closed"
Causa: O EA tentou abrir uma operação fora do horário de mercado (fim de semana ou feriado).
Como resolver: Nenhuma ação é necessária. O mercado fica fechado durante o fim de semana, e qualquer tentativa de entrada nesse intervalo gera este erro; o EA retoma automaticamente quando o mercado reabre.
📖 Está aparecendo em dias úteis? Sessões de negociação do símbolo, horário do servidor e modo somente fechamento são explicados em Market closed (10018/132) — causas e soluções.
10016 — Stops inválidos (TRADE_RETCODE_INVALID_STOPS)
Equivalente no MT4: 130 ERR_INVALID_STOPS.
Exemplo de mensagem: "Invalid stops"
Causa: O valor do SL (stop loss) ou do TP (take profit) viola a exigência de stop level mínimo do broker.
Como resolver:
- Verifique o stop level do broker (distância mínima do SL): clique com o botão direito no símbolo no MT5 → Especificação → procure o campo Stops level
- Confirme que a distância do SL do EA é maior que o stop level
- Este erro é mais comum em períodos de baixa volatilidade, quando os valores de ATR são muito pequenos
📖 Para entender como os stop levels realmente funcionam, a diferença entre 10016 e 130 e o código MQL5 que evita o erro de vez, veja Invalid stops (10016/130) — a solução completa.
10021 — Sem cotações (TRADE_RETCODE_PRICE_OFF)
Equivalente no MT4: 136 ERR_OFF_QUOTES.
Exemplo de mensagem: "Off quotes"
Causa: Nenhuma cotação recebida do servidor do broker — um problema de conectividade.
Como resolver:
- Verifique o status da conexão na barra de status do MT5, na parte inferior da tela
- Se estiver desconectado, reinicie o MT5
- Consulte a página de status dos servidores do seu broker para verificar se há instabilidade
- Verifique a conexão de rede do seu VPS
📖 Para ver a diferença em relação aos requotes (10004/138), o ajuste do desvio e uma implementação de novas tentativas, veja Off quotes e requotes (10021/10004) — a solução completa.
📖 Recebendo Unsupported filling mode (10030) logo depois de trocar de broker? É um problema diferente — veja Unsupported filling mode (10030) — como corrigir.
10012 — Tempo limite da solicitação esgotado (TRADE_RETCODE_TIMEOUT)
Equivalente no MT4: 128 ERR_TRADE_TIMEOUT.
Exemplo de mensagem: "Request canceled by timeout"
Causa: A ordem expirou por congestionamento do servidor ou latência de rede.
Como resolver:
- É mais comum logo após notícias importantes, quando a carga do servidor está alta
- Em geral, o EA tenta novamente no próximo tick — nenhuma ação é necessária
- Se acontecer com frequência, revise o ambiente de rede do seu VPS ou considere outro broker
10006 — Solicitação rejeitada (TRADE_RETCODE_REJECT)
Exemplo de mensagem: "Request rejected"
Causa: O broker rejeitou a ordem — normalmente porque o spread ultrapassou os limites ou o preço se moveu rápido demais.
Como resolver:
- Revise a configuração
MaxSpreadPoints; este erro é comum quando os spreads se ampliam de forma significativa - Durante as notícias e logo depois delas, esse é o comportamento esperado — você pode ignorá-lo
- Se ocorrer com frequência, aumente ligeiramente o valor de
MaxSpreadPoints
"Margin level too low"
Exemplo de mensagem: "Margin level too low. Skip signal."
Causa: A configuração UseMarginCheck = true do EA detectou que o nível de margem caiu abaixo de MinMarginLevel (por exemplo, 200%), então as novas entradas são bloqueadas automaticamente.
Como resolver:
- Este é um comportamento de proteção normal — não é um erro
- As entradas serão retomadas automaticamente quando o nível de margem se recuperar
- Solução definitiva: deposite mais fundos ou reduza o
RiskPercent
"No signal on this bar" ou "Wait for next bar"
Não são erros — são registros de depuração do log.
"No signal. ATR=1245, EMA(50)=1998.23"
O EA avalia o gráfico a cada candle e registra quando as condições de entrada não são atendidas. É o funcionamento normal.
Classificação dos erros por prioridade
| Prioridade | Erro | Ação |
|---|---|---|
| Crítico | 10019 Saldo insuficiente (MT4: 134) | Deposite fundos ou reduza o tamanho do lote imediatamente |
| Crítico | 10027 AutoTrading desativado / 4752 (MT4: 4109) | Ative o Algo Trading |
| Alerta | 10016 Stops inválidos (MT4: 130) | Revise as configurações de SL |
| Alerta | 10030 Tipo de preenchimento inválido | Defina um modo de preenchimento que o símbolo suporte |
| Alerta | 10021 Sem cotações (MT4: 136) recorrente | Verifique a conexão |
| Normal | 10018 Mercado fechado (MT4: 132) apenas no fim de semana | Nenhuma ação necessária |
| Normal | 10012 Tempo limite (MT4: 128) ocasional | Nenhuma ação necessária |
| Normal | Margin level too low | Proteção normal com margem baixa |
Como ler a aba Expert com eficiência
Filtrar o log
Clique com o botão direito dentro da aba Expert e selecione Filter para exibir apenas os logs de um EA ou de um tipo de erro específico.
Localização dos arquivos de log
Os arquivos de log do MT5 são salvos aqui:
C:\Users\[NomeDeUsuário]\AppData\Roaming\MetaQuotes\Terminal\[ID]\MQL5\Logs\
Os arquivos são criados automaticamente por data. Abra esta pasta ao investigar erros.
Resumo
A maioria dos erros de EA se enquadra em quatro categorias:
- Margem insuficiente (10019) — Deposite mais fundos ou reduza o tamanho do lote
- AutoTrading desligado (10027 / 4752) — Clique no botão Algo Trading para ativá-lo
- Problemas de conexão (10021 / 10031) — Reinicie o MT5 ou verifique a rede do VPS
- Comportamento normal — Nenhuma ação necessária (mercado fechado no fim de semana, espera para evitar spread amplo, etc.)
Crie o hábito de verificar a aba Expert diariamente para identificar rapidamente os erros críticos (10019 e 10027) antes que causem problemas.
Perguntas Frequentes
P: Onde posso consultar os códigos de erro?
A referência oficial do MQL5 lista todos os códigos: códigos de retorno do servidor de negociação para a faixa 10004–10046 e erros de execução para a faixa 4xxx. Você também pode pesquisar na ajuda integrada do MT5 (pressione F1).
P: Qual é a diferença entre um retcode e GetLastError()?
Um retcode (10004–10046) é a resposta do servidor de negociação a uma ordem e fica armazenado em MqlTradeResult.retcode. GetLastError() retorna um erro de execução do próprio programa MQL5 (4xxx e 5xxx). Quando OrderSend() falha, você geralmente recebe os dois: 4756 do GetLastError() mais um retcode que informa o motivo real.
P: Devo parar o EA se os erros aparecerem com frequência?
Se 10018 (mercado fechado) ou 10012 (tempo limite) aparecerem ocasionalmente, não é necessário parar o EA. No entanto, se 10019 (saldo insuficiente) se repetir, pause o EA, revise a situação da margem e reinicie-o depois de resolver.
P: Está aparecendo o erro “Invalid account”.
Suas credenciais de login do MT5 (nome do servidor, ID de login ou senha) podem estar incorretas. Vá em Arquivo → Abrir uma Conta para fazer login novamente.
P: Nenhum erro aparece, mas o EA não abre operações.
Se não há erros nem entradas, o EA está simplesmente aguardando que suas condições de entrada sejam atendidas — isso é perfeitamente normal. Os EAs não entram em todo candle; eles entram apenas quando todas as condições se alinham. Dê um tempo a ele. Um EA de H1 que entra de uma a três vezes por dia está operando normalmente.
Relacionados
📧 Curso gratuito por e-mail (8 e-mails) + pacote com 13 indicadores MT5 exclusivo para inscritos
* Privacidade rigorosamente protegida. Você pode cancelar a inscrição a qualquer momento.
Tem alguma dúvida sobre EAs ou Forex?
Você pode publicá-la no fórum de trading da Nattzy (cadastro gratuito). Dúvidas além deste artigo também são bem-vindas — configuração de EAs, escolha de corretora e mais.
Perguntar na Nattzy ↗