how can open many orders whenenver meet trading condition

 

I want to open orders whenever meet trade condition.I mean I dont want to open multiple orders in same price.

Example  price will open whenever previous highest or lowest condition meet.

I get problem in overlapping orders

here my codes

Can someone help me.

I will thanks for your help.


void OnTick()
  {
 //---
    upper=iHigh(Symbol(),Period(),iHighest(Symbol(),Period(),MODE_HIGH,periods,0));
    lower=iLow(Symbol(),Period(),iLowest(Symbol(),Period(),MODE_LOW,periods,0)); 
     
  
   Comment("Upper: ",upper,"\nLower: ",lower);
     PosCounter();
   if( bb ==0 || ss == 0 ) 
 
    {
           OrderSend(Symbol(), OP_SELLLIMIT,1,Ask+(upper-Ask), 3,0,0,"Sub Buy", MAGIC,0, Blue);
           OrderSend(Symbol(), OP_BUYLIMIT,1,Ask-(Bid-lower), 3,0,0,"Sub Buy", MAGIC,0, Blue);
    }
   
    if(b > 0 && bb >0 )
     
      {
           OrderSend(Symbol(), OP_SELLLIMIT,1,Ask+(upper-Ask), 3,0,0,"Sub Buy", MAGIC,0, Blue);
           OrderSend(Symbol(), OP_BUYLIMIT,1,Ask-(Bid-lower), 3,0,0,"Sub Buy", MAGIC,0, Blue);
    }
    
    if(s > 0 && ss >0 )
     
      {
           OrderSend(Symbol(), OP_SELLLIMIT,1,Ask+(upper-Ask), 3,0,0,"Sub Buy", MAGIC,0, Blue);
           OrderSend(Symbol(), OP_BUYLIMIT,1,Ask-(Bid-lower), 3,0,0,"Sub Buy", MAGIC,0, Blue);
    }
   
  }//+------------------------------------------------------------------+



void PosCounter() {
   b=0;s=0;bb=0;ss=0;
   for(int cnt=0;cnt<=OrdersTotal();cnt++)   {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC) {
         if(OrderType()==OP_SELL)      s++;
         if(OrderType()==OP_SELLLIMIT)  ss++;
         if(OrderType()==OP_BUY)       b++;
         if(OrderType()==OP_BUYLIMIT)   bb++;}}}



 
LONNV: I want to open orders whenever meet trade condition.I mean I dont want to open multiple orders in same price.

So test if you already have an open order before (possibly) opening more.