открытие позиций... Нужна ПОМОЩЬ!

 

ситуация следующяя..

есть условия для открытия сделок

 // Проверка условий на BUY
      if( ........&& ........&&..........&&.....)
        {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,20,0,0,"test2",222222,0,Green);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
           }
         else Print("Error opening BUY order : ",GetLastError()); 
         return(0); 
        }
        
        
        
      // Проверка условий на SELL
      if(........&& ........&&..........&&..... )
        {
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,20,0,0,"test2",222222,0,Red);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
           }
         else Print("Error opening SELL order : ",GetLastError()); 
         return(0); 
        }
   
   
       
   
        
 //===============================================================================================================
 
 
        
        // Проверка условий на ПОКУПКУ BUY
      if( ........&& ........&&..........&&.....)
        {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,20,0,0,"test",111111,0,Green);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
           }
         else Print("Error opening BUY order : ",GetLastError()); 
         return(0); 
        }
        
      // Проверка условия на SELL 
      if( ........&& ........&&..........&&..... )
        {
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,20,0,0,"test",111111,0,Red);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
           }
         else Print("Error opening SELL order : ",GetLastError()); 
         return(0); 
        }

так вот..

нужно чтобы открывалить максимум 2 сделки с разными маджик номерами.

например если уже имееться открытая одна сделка на покупку с маджиком 222222 то сделку на продажу он уже с этим же маджиком не ставит а ставит максимум 1 из других условий с маджиком 111111.

мм надеюсь понятно будет...

 

кароче можно полегче...

нужна проверка..

ЕСЛИ ОТКРЫТОГО ОРДЕРА С маджиком (758576) НЕТ,то если определенное условие выполняеться открываем максимум 1 сделку.

а если есть то не чего не делаем..

 

Вот так можно попробовать, но подумайте над магиками, а то не очень понятно что вы хотите сотворить.

   bool OrderExist=false;
   for(int i=OrdersTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS)) if(OrderMagicNumber()==758576){OrderExist=true;break;}
   if(!OrderExist){
// Нету ордера с заданным магиком,делаем что нужно   
     }
 
да! спасибо !! это то что нужно!!
 
смотрел код, так бы не нашел в чем проблема..