Открытие ордера по паре с проверкой того, что по нему нет открытых ордеров

 

Здравствуйте уважаемые. Честно долго пытался сам это сделать, но не получается. Необходимо, чтобы происходила проверка по открытым ордерам на определенную валютную пару (в данном случае пытаюсь проверить по EURUSD) и если открытого  ордера по этой паре нет, то открыть его. Вот написал, но не работает. Подскажите, что не правильно делаю?

int start()

 {

 int i= OrdersTotal(); 

    for(i=OrdersTotal()-1;i>=0;i--)   

        if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && (OrderSymbol() == "EURUSD"))

    break;

      else 

   OrderSend("EURUSD",OP_BUY,0.1,Ask,3,Bid-50*Point,Bid+50*Point);    

     return(0);

  }

 
Virgin1976:

Здравствуйте уважаемые. Честно долго пытался сам это сделать, но не получается. Необходимо, чтобы происходила проверка по открытым ордерам на определенную валютную пару (в данном случае пытаюсь проверить по EURUSD) и если открытого  ордера по этой паре нет, то открыть его. Вот написал, но не работает. Подскажите, что не правильно делаю?

int start()

 {

 int i= OrdersTotal(); 

    for(i=OrdersTotal()-1;i>=0;i--)   

        if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) && (OrderSymbol() == "EURUSD"))

    break;

      else 

   OrderSend("EURUSD",OP_BUY,0.1,Ask,3,Bid-50*Point,Bid+50*Point);    

     return(0);

  }

Попробуй так

int start()

 {

 int i, Total = OrdersTotal()-1; 

    for(i = Total; i >= 0; i--)   
     {
      if(OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == "EURUSD")// По умолчанию ордер выбирается из открытых
      return(0);
     }

   OrderSend("EURUSD",OP_BUY,0.1,Ask,3,Bid-50*Point,Bid+50*Point);    

     return(0);

  }
 
Спасибо. Работает.