OrderType() return a wrong value

Back to topics list To post a new topic, please log in or register
avatar
2
monitor81 2016.02.18 11:16
 

I placed a BUYSTOP and a SELLSTOP; but after selecting the order, OrderType() return 0 or 1 instead of 4 or 6 (no other order type  placed)

 result=OrderSend(symbol,OP_BUYSTOP,lot,NormalizeDouble(Ask+2*boxSize,Digits),slippage,0,0,"",MAGICMA,0,CLR_NONE);

   for(int TradeNumber=(OrdersTotal()-1); TradeNumber>=0; TradeNumber--)
     {
      bool selected=OrderSelect(TradeNumber,SELECT_BY_POS,MODE_TRADES);

      if(Bid<slBuy && OrderType()==OP_BUY &&  OrderSymbol()==Symbol())
        {
         result=OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Green);
         //HERE CLOSE THE BUYSTOP ORDER!!!!! WHY????
        }

      if(Ask>slSell && OrdeType()==OP_SELL &&  OrderSymbol()==Symbol())
        {
         result=OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Green);
         //HERE CLOSE THE SELLSTOP ORDER!!!!! WHY????
        }
     }


avatar
Moderator
3408
GumRai 2016.02.18 12:55 #
 

Maybe because the pending orders had been triggered and were no longer stop orders.

Pending orders have to be deleted, not closed, so your code should not delete a pending order.

avatar
2
monitor81 2016.02.18 13:34 #
 
No, no pending orders triggered. Return wrong value immeditely, when orders are already pending. I don't want delete pending orders.
avatar
Moderator
3408
GumRai 2016.02.18 13:51 #
 
Use Ctrl+f and search for OrderDelete in your code as the order is probably being deleted elsewhere.
avatar
12988
WHRoeder 2016.02.18 14:19 #
 
  1. Print your variable values used in your if statements.
  2. Check your return codes (OrderSend and OrderSelect) What are Function return values ? How do I use them ? - MQL4 forum and Common Errors in MQL4 Programs and How to Avoid Them - MQL4 Articles
Back to topics list  

To add comments, please log in or register