← Todos os artigos

Ordem pendente no MT5: limit, stop e stop-limit no robô

Por Jackson Jordão · 25 de outubro de 2026 · 6 min

Notebook aberto mostrando um gráfico de linha verde com volume numa plataforma escura
Foto: Tech Daily/Unsplash

Ordem limit espera o preço vir até o seu nível; ordem stop espera o preço romper o seu nível; ordem stop-limit combina as duas: o rompimento ativa uma ordem limit. No MetaTrader 5 são seis tipos pendentes (Buy Limit, Sell Limit, Buy Stop, Sell Stop, Buy Stop Limit e Sell Stop Limit), e escolher o errado faz o robô entrar no ponto oposto ao que a estratégia pedia.

Neste artigo você vê a regra de posição de cada tipo em relação ao preço atual, quando cada um serve numa estratégia automatizada e quais funções do MQL5 entram na programação, com os cuidados que evitam rejeição e ordens esquecidas no book.

Ordem a mercado e ordem pendente

Uma ordem a mercado (ORDER_TYPE_BUY ou ORDER_TYPE_SELL) é executada na hora, ao preço disponível. Já uma ordem pendente fica registrada no servidor e só vira posição quando o preço atinge a condição definida. Segundo a documentação do MQL5, os tipos pendentes da enumeração ENUM_ORDER_TYPE são ORDER_TYPE_BUY_LIMIT, ORDER_TYPE_SELL_LIMIT, ORDER_TYPE_BUY_STOP, ORDER_TYPE_SELL_STOP, ORDER_TYPE_BUY_STOP_LIMIT e ORDER_TYPE_SELL_STOP_LIMIT.

A vantagem da pendente é que o robô não precisa vigiar cada tick: o preço da entrada fica definido de antemão. O custo é que a ordem pode nunca ser executada, ou ser executada num momento em que o cenário já mudou. Por isso o robô precisa também gerenciar a ordem enquanto ela espera.

Limit: comprar mais barato, vender mais caro

A ordem limit entra a favor de um recuo. A Buy Limit é colocada abaixo do preço atual: o trader quer comprar se o preço cair até aquele nível. A Sell Limit é colocada acima do preço atual: ele quer vender se o preço subir até lá.

  • Uso típico: entrada em pullback, no retorno a uma média móvel, a uma região de suporte ou resistência ou a um nível de Fibonacci.
  • Vantagem: preço de entrada melhor ou igual ao definido, sem correr atrás do movimento.
  • Risco: se o mercado não recuar e seguir na direção da tendência, a ordem não executa e a operação não acontece.

Stop: entrar no rompimento

A ordem stop entra a favor do movimento. A Buy Stop fica acima do preço atual: o trader compra se o preço romper uma máxima. A Sell Stop fica abaixo: ele vende se o preço perder uma mínima. É a ordem natural de estratégias de rompimento, como a máxima da barra anterior ou o topo de uma faixa de consolidação.

  • Uso típico: rompimento de máxima ou mínima, de canal ou de abertura.
  • Vantagem: só entra quando o mercado confirma força na direção esperada.
  • Risco: o preço executado pode ser pior que o da ordem, porque a Buy Stop vira uma ordem a mercado no rompimento. Em mercado rápido, há slippage.

Esse efeito é parte do que muda entre o backtest e a conta real. Veja o artigo sobre slippage, spread e requote, em /blog/slippage-spread-requote-robo-conta-real-mt5.

Stop-limit: rompimento com preço máximo definido

A ordem stop-limit tem dois preços. Segundo a documentação do MQL5, ao alcançar o preço da ordem, uma ordem pendente limit é colocada no preço StopLimit. Ou seja, o rompimento apenas ativa a ordem; ela só executa se o preço permitir o valor limitado.

Isso resolve o problema da Buy Stop comum: você aceita entrar no rompimento, mas não a qualquer preço. O custo é o oposto: se o mercado romper e disparar, passando do limite, a ordem limit fica esperando e você perde o movimento.

Dica: Antes de programar stop-limit, confirme se o servidor da sua corretora aceita esse tipo de ordem para o ativo. O suporte depende do mercado e da corretora, e um teste em conta demo mostra rápido.

Como o robô envia uma ordem pendente no MQL5

Com a classe CTrade, da biblioteca padrão, existem métodos prontos: BuyLimit, SellLimit, BuyStop e SellStop. A assinatura do BuyStop, por exemplo, recebe volume, preço, símbolo, stop loss, take profit, tipo de validade (type_time) e horário de expiração. O retorno true só indica que a requisição foi montada e validada; para saber o que o servidor respondeu, o robô consulta ResultRetcode() e ResultOrder().

Quem usa OrderSend diretamente preenche a estrutura MqlTradeRequest com action igual a TRADE_ACTION_PENDING, além de symbol, volume, price, sl, tp, type, type_filling, type_time e expiration. Nas ordens stop-limit entra também o campo stoplimit. Para alterar uma ordem existente, usa-se TRADE_ACTION_MODIFY; para excluí-la, TRADE_ACTION_REMOVE.

O tipo de preenchimento também conta para pendentes. Veja o artigo sobre FOK, IOC e Return, em /blog/tipos-preenchimento-ordem-fok-ioc-return-mt5.

Cuidados que evitam dor de cabeça

  • Validade da ordem: por padrão, o CTrade usa ORDER_TIME_GTC, sem prazo. Uma pendente esquecida do dia anterior pode executar fora do horário planejado. Use ORDER_TIME_SPECIFIED com expiration, ou exclua a ordem por código no fim da janela.
  • Distância mínima: a corretora define um nível mínimo de distância para stops e pendentes (SYMBOL_TRADE_STOPS_LEVEL). Pedir uma ordem colada demais ao preço atual gera rejeição.
  • Ordens duplicadas: o robô deve checar se já existe uma pendente dele (por magic number) antes de enviar outra, principalmente depois de reiniciar ou trocar de gráfico.
  • Ordem cancelada pelo cenário: se a condição que justificou a entrada deixou de valer, o robô precisa excluir a pendente em vez de deixá-la armada.
  • Mercado fechado: pendentes ficam registradas, mas o preço pode abrir com gap, e a execução sai bem diferente do nível pedido.

A janela de operação também deve valer para as pendentes. Veja o artigo sobre horário de operação no robô, em /blog/horario-operacao-robo-metatrader-5.

Qual escolher para a sua estratégia

  1. Entra em recuo (pullback, retorno a média ou suporte)? Use limit.
  2. Entra no rompimento e aceita o preço do mercado? Use stop.
  3. Entra no rompimento mas só até um preço máximo? Use stop-limit.
  4. Quer entrada imediata assim que o sinal fechar? Use ordem a mercado e controle o desvio máximo aceito.

Nenhum tipo é melhor por si só: cada um troca certeza de execução por controle de preço. A escolha certa depende do comportamento do ativo e deve ser validada em backtest e em conta demo, antes de qualquer conta real.

Resumo

  • Limit entra no recuo; stop entra no rompimento; stop-limit entra no rompimento com preço limitado.
  • Buy Limit e Sell Stop ficam abaixo do preço atual; Sell Limit e Buy Stop ficam acima.
  • No MQL5, o CTrade tem BuyLimit, SellLimit, BuyStop e SellStop; com OrderSend, usa-se TRADE_ACTION_PENDING.
  • Defina sempre a validade da ordem e cheque a distância mínima da corretora.
  • Confira ResultRetcode() em vez de confiar só no retorno true do método.

Quer automatizar suas entradas pendentes no seu robô?

  1. Descreva a estratégia pelo Termo de Referência do site ou pelo WhatsApp, dizendo onde a ordem deve ser colocada e quando cancelada.
  2. A Digital Master12 analisa a regra e aponta o tipo de ordem mais adequado, com os riscos de cada um.
  3. Você recebe o robô testado em conta demo, com o código-fonte.

Orçamento pelo WhatsApp: (84) 99652-3661

Leia também