MT5: códigos de rejeição de ordem e como triar
Sumário
- Conclusão: primeiro veja se a falha ocorre "sempre" ou "às vezes"
- Como funciona: o retcode é a "resposta do servidor"
- Procedimento de verificação: investigue nesta ordem
- 1. 10018: primeiro olhe o relógio
- 2. 10030: ajuste o tipo de preenchimento
- 3. 10013: desconfie do conteúdo da ordem
- 4. 10004: slippage permitido e horário
- 5. 10006: às vezes só resta perguntar à corretora
- Limites e cuidados
- Resumo
Conclusão: primeiro veja se a falha ocorre "sempre" ou "às vezes"
Quando o MT5 rejeita a ordem de um EA, o log mostra algo como "retcode=10030". Recebemos muitas dúvidas sobre esses códigos de retorno.
Começo pela conclusão. A primeira coisa a observar é se a rejeição acontece sempre ou apenas de vez em quando.
- Falha sempre → suspeite de 10030, 10013 e 10018. O problema está na configuração ou no horário, então a ordem não passa por mais que você tente, a menos que você corrija a causa ou desista dela.
- Falha às vezes → suspeite de 10004 e 10006. Isso depende das condições de mercado ou de uma decisão da corretora, e esperar um pouco pode fazer a ordem passar.
Em qual dos dois casos você se encaixa define onde investigar e o grau de urgência.
Comparação de corretoras recomendadas →
🎁 Baixar EA grátis📧 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 funciona: o retcode é a "resposta do servidor"
Quando o EA envia uma ordem, o servidor da corretora decide se a aceita e devolve o resultado em forma de número. Em caso de sucesso, volta 10009 (executada) ou similar; em caso de falha, volta um número que indica o motivo da rejeição.
Um ponto importante: esse número é apenas a classificação devolvida pelo servidor. Às vezes ele não revela o motivo real da rejeição. O 10006, em especial, costuma ser um código em que o log não mostra o que a corretora avaliou.
| Código | Significado no MT5 | Como ocorre | Onde verificar | Passa se esperar? |
|---|---|---|---|---|
| 10018 | Mercado fechado | Sempre (depende do horário) | Horário de negociação e feriados | Passa quando o mercado abre |
| 10030 | Tipo de preenchimento (filling) não suportado | Sempre | Configuração do EA e especificação do símbolo | Não passa |
| 10013 | Requisição inválida | Geralmente sempre | Lote, preço, nome do símbolo | Não passa |
| 10004 | Requote (o preço mudou) | Às vezes | Slippage permitido e horário | Costuma passar |
| 10006 | Requisição rejeitada | De às vezes a sempre | Contato com a corretora | Não dá para saber |
Procedimento de verificação: investigue nesta ordem
1. 10018: primeiro olhe o relógio
É a verificação mais simples, por isso vem primeiro. Confirme se não caiu em fim de semana, feriado, virada de ano ou no intervalo de pausa de cada símbolo (muitas corretoras têm pausa durante o dia para ouro e índices de ações). Na Observação do Mercado, clique com o botão direito no símbolo e abra "Especificação" para ver o horário de negociação. Atenção também à diferença entre o horário do servidor e o horário do Japão. Se a causa for o horário, a ordem passa sozinha depois da abertura do mercado.
2. 10030: ajuste o tipo de preenchimento
Dependendo da corretora e do tipo de conta, os tipos de preenchimento aceitos (FOK, IOC, Return) são diferentes. Se o EA enviar a ordem com um tipo não suportado, ela será rejeitada todas as vezes. Se os parâmetros do EA tiverem um item como "Filling", ajuste-o para o tipo indicado no campo de execução da especificação do símbolo. Se não houver esse item, a correção precisa ser feita no próprio EA, então fale com quem o distribui. Isso ocorre com frequência logo após a mudança para uma nova corretora ou tipo de conta.
3. 10013: desconfie do conteúdo da ordem
Costuma aparecer por erros no conteúdo da ordem: lote menor que o lote mínimo, lote fora do passo permitido, sufixo do nome do símbolo diferente (".m", "#" etc.). Às vezes o log nem mostra o motivo detalhado, e a única saída é testar variando aos poucos o lote e o nome do símbolo. A revisão dos itens de configuração está reunida em Como configurar o EA.
4. 10004: slippage permitido e horário
É um código que aparece com mais facilidade quando o preço se move rápido, como logo após a divulgação de indicadores ou no início da manhã. Se o EA tiver os itens "Slippage" ou "Deviation", aumentá-los um pouco pode reduzir a ocorrência. Mas, se aumentar demais, você passa a aceitar execuções a preços desfavoráveis. Se houver também lentidão de conexão, um VPS pode ajudar.
5. 10006: às vezes só resta perguntar à corretora
É uma rejeição por decisão da corretora, e a causa não é visível para o usuário. Pode ser restrição de negociação na conta, suspensão temporária do símbolo ou limite por excesso de ordens, mas nem nós conseguimos afirmar qual é o caso. O mais seguro é anotar o horário do log e o conteúdo da ordem e contatar o suporte da corretora. Se ocorrer com frequência, trocar de corretora também é uma opção; veja a comparação de corretoras.
Limites e cuidados
- Pode não se reproduzir na conta demo. A forma de execução nem sempre é igual entre conta demo e conta real, e a frequência de requotes e rejeições pode variar. Mesmo que funcione bem na demo, não dá para garantir que as ordens passarão do mesmo jeito na conta real.
- Tentar repetidamente pode ser contraproducente. Com 10030 e 10013, reenviar a mesma ordem não adianta. Um EA que reenvia a cada rejeição concentra ordens em pouco tempo, o que pode inclusive levar a restrições por parte da corretora. Nos nossos EAs, a política é reenviar, com número de tentativas definido, apenas em códigos temporários como o 10004.
- Operações rejeitadas não ficam registradas. No backtest, esse tipo de rejeição quase não ocorre, então na operação real o desempenho se desvia nessa medida. É um dos motivos de o resultado não ser igual ao do testador.
- Além dos cinco tratados aqui, existem outros retcodes, como lote inválido, preço inválido e margem insuficiente. Este artigo é uma organização focada nos cinco que mais geram dúvidas.
Resumo
- Primeiro veja se a falha ocorre "sempre" ou "às vezes"
- Se falha sempre, investigue na ordem 10018 (horário) → 10030 (tipo de preenchimento) → 10013 (conteúdo da ordem)
- Se falha às vezes, verifique o 10004 (slippage e horário) e consulte a corretora sobre o 10006
- 10030 e 10013 não passam por mais que você reenvie, então corrija a configuração
- A causa real do 10006 pode não ser visível para o usuário, e nem nós conseguimos afirmá-la
- Passar na conta demo não garante que passará do mesmo jeito na conta real
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 ↗