Como solucionar o erro 130 do EA no MT4? Método de quatro etapas, da distância do stop loss aos limites dinâmicos
Use um fluxograma original em azul-claro para solucionar passo a passo o ERR_INVALID_STOPS do EA no MT4: logs, precisão da cotação, MODE_STOPLEVEL e limites dinâmicos, evitando mascarar riscos ao afrouxar o stop loss.
Autor: Thomas|Prática de EA e MT4|20 de outubro de 2026
O EA já está anexado ao gráfico e o trading automático já está ativado, mas ao enviar a ordem aparece “130”, o que geralmente leva a pensar que o programa está completamente quebrado. A documentação de referência do MQL4 lista o 130 como ERR_INVALID_STOPS: o stop loss, take profit, preço da ordem pendente ou sua forma de normalização na solicitação não foi aceito pelo servidor de trading. É uma pista de localização, não um motivo para afrouxar o stop loss às cegas. Este artigo usa um método de solução em quatro etapas para explicar quais registros devem ser observados.
Primeira etapa: primeiro determine qual solicitação falhou
Abra o terminal MT4 ou os logs relevantes do programa e registre o horário do servidor em que ocorreu o erro, o símbolo, a direção da ordem, se a operação foi OrderSend ou OrderModify e o código de erro retornado. Se o log tiver apenas as palavras “falha ao enviar ordem”, primeiro faça o EA registrar o preço da solicitação, stop loss, take profit e valor de retorno, sem exibir dados sensíveis como senhas. Primeiro diferencie falha de abertura de posição, falha de modificação de stop loss e falha de ordem pendente; as relações de preço verificadas nos três casos são diferentes.
Não tente “tentar a sorte” em uma conta real enviando repetidamente a mesma solicitação com falha. Tentativas repetidas podem gerar carga adicional e também podem, após mudanças no mercado, de repente ter sucesso e criar uma posição inesperada. Primeiro reproduza no ambiente de simulação e preserve a versão dos parâmetros e a cotação da plataforma naquele momento.
Segunda etapa: verifique Bid, Ask, Point e Digits
O MarketInfo do MQL4 pode ler Bid, Ask, Point e Digits do símbolo atual. Point representa uma das menores unidades de exibição da cotação, Digits indica o número de casas decimais; quantos dólares “10 pontos” valem deve ser calculado com base no Point real do símbolo, e não se deve confundir códigos de ouro e precisões de corretoras diferentes. Antes de passar o preço, ele também deve ser normalizado conforme o número correspondente de casas.
O exemplo é apenas uma ilustração matemática: se um símbolo simulado tiver Point 0,01 e distância mínima de 50 points, a distância calculada é 0,50 unidade de cotação; se for um símbolo com Point 0,001, será 0,05. Os números não representam as regras contratuais reais de nenhuma plataforma hoje. Ao verificar os logs, salve também os preços de compra e venda, evitando usar o preço de venda para verificar o lado que deveria consultar o preço de compra, ou vice-versa.
Terceira etapa: verifique MODE_STOPLEVEL e o tipo de ordem
A documentação oficial do OrderSend explica que stop loss e take profit não podem ficar muito próximos do preço de mercado; o preço de abertura predeterminado de uma ordem pendente também não pode ficar muito próximo do mercado atual. Pode-se usar MarketInfo(Symbol(),MODE_STOPLEVEL) para consultar a distância mínima pública, em points. Em seguida, conforme a ordem seja compra, venda ou qualquer tipo de ordem pendente, verifique separadamente a direção do preço, a distância e a normalização, em vez de aplicar um deslocamento fixo a todas as ordens.

A imagem acima é um esquema original de fluxo, sem cotações reais ou dados de conta. A distância mínima é apenas o limite técnico para o servidor aceitar a ordem, não equivale a uma distância de stop loss racional para a estratégia. Se, para contornar o 130, o stop loss for afastado, o risco planejado por operação aumentará; deve-se primeiro recalcular o tamanho da posição e, se necessário, abandonar essa operação.
Quarta etapa: retornar 0 também não permite afirmar que não há limite
A explicação oficial do MQL4 sobre MODE_STOPLEVEL alerta especialmente: retornar 0 pode significar que não há distância mínima fixa, ou que o servidor adota um limite dinâmico que o terminal não consegue representar diretamente. Neste último caso, ainda pode retornar 130. Portanto, “se consultar 0, coloque o stop loss colado ao preço” não é válido. Quando o mercado muda drasticamente, atualizações de cotação, mudanças no spread e regras do lado do servidor também podem invalidar distâncias calculadas anteriormente.
Se a fórmula do código corresponder ao log daquele momento e ainda ocorrer 130, preserve o horário da falha, símbolo, parâmetros da ordem e versão da plataforma, consulte as especificações do símbolo e as restrições de ordem da corretora e verifique com o suporte técnico da plataforma. Não inferir as regras desta conta a partir do Point e StopLevel de outra plataforma, e menos ainda mascarar a verdadeira causa da falha removendo o stop loss.
Ordem de verificação após a correção
Primeiro execute no ambiente de simulação o menor caso reproduzível: registre os quatro parâmetros de cotação e o StopLevel com o mesmo símbolo, envie uma única solicitação de teste e verifique o retorno do servidor e o estado da ordem. Depois teste o comportamento com mudanças rápidas de preço ou em diferentes sessões de negociação. Confirme que o programa tem mecanismo de parada ou resfriamento após falha e que não abrirá posições repetidamente ao tentar novamente. Por fim, verifique se o orçamento de risco, o spread e a perda aceitável ainda correspondem ao plano original.
O foco da solução do erro 130 é “por que a solicitação foi rejeitada”, não “como forçá-la a ser executada”. Os resultados de execução do EA também são afetados pela lógica da estratégia, pela rede e pela execução da plataforma; nenhuma correção garante lucro ou evita perdas. O trading com alavancagem pode causar perdas significativas.