counting buy oeders

Back to topics list To post a new topic, please log in or register
avatar
7
rafal85 2016.06.27 20:08
 

Hello everyone.

I am trying to close remaining pending orders when OP_BUY==0

void Check3()
{

bool result;
int cmd,error;
int OpenBuyOrders=0;



cmd=OrderType();

int total = OrdersTotal();

  for (int i5 = OrdersTotal() - 1; i5 >= 0 ; i5--)
{
    if((OrderSelect(i5,SELECT_BY_POS,MODE_TRADES))&&OrdersTotal()<14 )
{
//+------------------------------------------------------------------+
if (OrderType()==OP_BUY) OpenBuyOrders++ ;
if (OpenBuyOrders==0)
{

     
if((OrderType()==OP_SELLLIMIT) || (OrderType()==OP_BUYSTOP))
{
      while(true)
    {
           result=OrderDelete(OrderTicket());
           
      if(result!=TRUE) { error=GetLastError(); Alert("LastError = ",error); }
      else break;
    }
}



}
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
}
else { Print( "Error when order select ", GetLastError()); break; }
}

}

using that code but it dose not work and closes orders when op buy is greater than 0. could someone help me on that.

avatar
12985
WHRoeder 2016.06.28 13:48 #
 
rafal85: I am trying to close remaining pending orders when OP_BUY==0
  1. OP_BUY is defined as zero. OP_BUY==0 will always be true.
  2. if (OrderType()==OP_BUY) OpenBuyOrders++ ;
    if (OpenBuyOrders==0){
         if((OrderType()==OP_SELLLIMIT) || (OrderType()==OP_BUYSTOP))
    You need to loop through all orders and then if there is an open buy, loop and close all pendings. Code as written only works when the buy is in the highest order position.
Back to topics list  

To add comments, please log in or register