Ordem pendente no MT5: limit, stop e stop-limit no robô
Por Jackson Jordão · 25 de outubro de 2026 · 6 min

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
- Entra em recuo (pullback, retorno a média ou suporte)? Use limit.
- Entra no rompimento e aceita o preço do mercado? Use stop.
- Entra no rompimento mas só até um preço máximo? Use stop-limit.
- 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ô?
- Descreva a estratégia pelo Termo de Referência do site ou pelo WhatsApp, dizendo onde a ordem deve ser colocada e quando cancelada.
- A Digital Master12 analisa a regra e aponta o tipo de ordem mais adequado, com os riscos de cada um.
- Você recebe o robô testado em conta demo, com o código-fonte.