Se você é trader, já deve ter ouvido falar das Ordens Pendentes. Elas são ordens que serão executadas automaticamente quando o preço atingir um ponto específico que definimos. Em outras palavras, ao abrir uma ordem pendente, estamos ordenando a abertura de uma posição em um nível de preço determinado. Assim, se o preço alcançar esse nível previamente estabelecido, teremos automaticamente uma posição de negociação aberta.
No MetaTrader, temos 6 tipos de ordens:
- Tipo 0 = Compra
- Tipo 1 = Venda
- Tipo 2 = Compra Limite
- Tipo 3 = Venda Limite
- Tipo 4 = Compra Stop
- Tipo 5 = Venda Stop
Dentre esses 6 tipos, existem quatro tipos de ordens pendentes disponíveis. Vamos discutir cada uma delas em detalhes e logo em seguida, como utilizá-las no nosso EA (Expert Advisor).
1. Compra Limite
A ordem de compra limite é uma ordem que será executada quando o preço estiver abaixo do preço atual. Isso significa que estamos esperando que o preço caia até um certo nível antes de comprar.
Exemplo de código para uma ordem de compra limite:
OrderSend(Symbol(), 2, start_lot, Ask - Distance * Point, 3, Ask - Distance * Point - SL * Point, Ask - Distance * Point + TP * Point, "", Magic, 0, Blue);
2. Venda Limite
A ordem de venda limite é o oposto da compra limite. Ela é colocada acima do preço atual, esperando que o preço suba até um certo ponto antes de vender.
Exemplo de código para uma ordem de venda limite:
OrderSend(Symbol(), 3, start_lot, Bid + Distance * Point, 3, Bid + Distance * Point + SL * Point, Bid + Distance * Point - TP * Point, "", Magic, 0, Red);
3. Compra Stop
A ordem de compra stop é uma ordem que será executada quando o preço estiver acima do preço atual. Isso é útil quando acreditamos que o preço continuará subindo após atingir um certo nível.
Exemplo de código para uma ordem de compra stop:
OrderSend(Symbol(), 4, start_lot, Ask + Distance * Point, 3, Ask + Distance * Point - SL * Point, Ask + Distance * Point + TP * Point, "", Magic, 0, Blue);
4. Venda Stop
Por fim, a ordem de venda stop será executada quando o preço cair abaixo do nível atual. Utilizamos essa ordem quando acreditamos que o preço seguirá caindo após atingir um determinado ponto.
Exemplo de código para uma ordem de venda stop:
OrderSend(Symbol(), 5, start_lot, Bid - Distance * Point, 3, Bid - Distance * Point + SL * Point, Bid - Distance * Point - TP * Point, "", Magic, 0, Red);
Como prometido, vamos simplificar o nosso EA utilizando todas essas quatro ordens pendentes.
Antes de começarmos, precisamos ter um controle do número de ordens de cada tipo. Aqui está uma função para calcular o tipo de ordem:
int totalorder(int m) { ... }
Essa função nos ajudará a assegurar que não estamos sobrecarregando nossa conta com ordens repetidas.
Para implementar isso, basta chamar a função conforme a ordem desejada:
if (totalorder(OP_BUYLIMIT) == 0) { ... }
Assim, conseguimos manter nosso EA organizado e funcional.

Espero que essas dicas tenham sido úteis para você! Deixe seu comentário e compartilhe suas experiências. Bons lucros e boa sorte nas suas negociações!
Comentário 0