Ola gostaria de saber se existe algum comando ou algum scripty que delete todas as ordens pendentes?
- DÚVIDA: Inserir ordens pendentes usando CTRL ou ALT
- Ordens pendentes executando fora do preço determinado
- EA fecha ordem pendente ?
// remove todas as ordens pendentes do ativo
for(int i = OrdersTotal() - 1; i >= 0; i--) {
if(OrderGetTicket(i) > 0) {
//if((OrderGetString(ORDER_SYMBOL) == m_symbol.Name())
//&& (OrderGetInteger(ORDER_MAGIC) == m_magic)) {
MqlTradeRequest request = {0};
MqlTradeResult result = {0};
request.action = TRADE_ACTION_REMOVE;
request.order = OrderGetTicket(i);
if(!OrderSend(request, result)) {
PrintFormat("CheckCloseAll - remove order - ",
__FUNCTION__, ": OrderSend error %d", GetLastError());
}
ZeroMemory(request);
ZeroMemory(result);
}
}
}
oufor(int i = OrdersTotal() - 1; i >= 0; i--) {
if(OrderGetTicket(i) > 0) {
//if((OrderGetString(ORDER_SYMBOL) == m_symbol.Name())
//&& (OrderGetInteger(ORDER_MAGIC) == m_magic)) {
MqlTradeRequest request = {0};
MqlTradeResult result = {0};
request.action = TRADE_ACTION_REMOVE;
request.order = OrderGetTicket(i);
if(!OrderSend(request, result)) {
PrintFormat("CheckCloseAll - remove order - ",
__FUNCTION__, ": OrderSend error %d", GetLastError());
}
ZeroMemory(request);
ZeroMemory(result);
}
}
}
#include <Trade\Trade.mqh>
CTrade trade;
for(int i = OrdersTotal() - 1; i >= 0; i--) {
if(OrderGetTicket(i) > 0) {
trade.OrderDelete(OrderGetTicket(i));
}
}
CTrade trade;
for(int i = OrdersTotal() - 1; i >= 0; i--) {
if(OrderGetTicket(i) > 0) {
trade.OrderDelete(OrderGetTicket(i));
}
}
Não funciona.
valeu!!
livio1975:
Não funciona.
valeu!!
Hello!
Bora deletar todas as ordens pendentes!
//Chamada da biblioteca (No inicio do código) #include <Trade\Trade.mqh> #include <Trade\OrderInfo.mqh> CTrade m_trade; COrderInfo m_order; //No escopo for(int i=OrdersTotal()-1;i>=0;i--) //Gire as ordens num bloco FOR { if(m_order.SelectByIndex(i)) //Select { if(m_order.Magic()==m_magic && m_order.Symbol() == Symbol()) //MAGIC { m_trade.OrderDelete(m_order.Ticket()); //DELETE } } } //=======================( ^.^ )========================
Té Mais!
Olá!
Eu implementei essas duas formas no meu código, mas nenhuma funciona.
Ele chega a deletar a primeira ordem, mas aí trava dentro da função OrderDelete(). Não retorna nada, nem executa nada que estiver depois da primeira chamada dessa função.
Não consegui identificar o porquê disso.
Alguém já passou por isso?
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se