Closing only selected positions

 
total  = OrdersTotal();


    if(total<1)
      {
              if(isCrossed== 1  )//jezeli jeden to daje sygnal buy i zajmuje dluga pozycje
                    {  //1                                  //preferowana cena zamkniecia,roznica,stop loss,take profit
                        ticket1= OrderSend(Symbol(),0,Lots,NormalizeDouble(Ask,Digits),3,Ask-20*Point,Ask+3000*Point,
                                                         "", 12345, 0, Green);
                    }
                
                
               if(isCrossed== 2 )//jezeli dwa to daje sygnal sell i zajmuje krotka  pozycje
                    {//2
                       ticket1= OrderSend(Symbol(),1,Lots,NormalizeDouble(Bid,Digits),3,Bid+20*Point,Ask-2000*Point,
                                                          "", 12345, 0, Red);
                    }
   if(isCrossed== 1 )//przeciwna do Ask
                    {  //1                                  //preferowana cena zamkniecia,roznica,stop loss,take profit
                        ticket2= OrderSend(Symbol(),1,Lots,NormalizeDouble(Bid,Digits),3,Bid+20*Point,    Ask-20*Point,
                                                          "", 12345, 0, Green);
                  }
                  //2
               if(isCrossed== 2 )//przeciwna do Bid
                   {
                       ticket2= OrderSend(Symbol(),0,Lots,NormalizeDouble(Ask,Digits),3,Ask-20*Point,Ask+20*Point,
                                                          "", 12345, 0, Red);
                   }
 }
 
 
//zamykanie pozycji-----------------------------------------

int totalorders = OrdersTotal();
for(int i=OrdersTotal()-1;i>=0;i--)
{

OrderSelect(0, SELECT_BY_POS);     


      if (OrderType()==OP_SELL)
                     {
                      if(isCrossed==1)//zamykanie pozycji
              
                         { //4 zamknij sell
                       OrderClose(ticket1,OrderLots(),NormalizeDouble(Ask,Digits),3,Red);
                       } //4
                    }
           
                  if(OrderType() == OP_BUY)
                   { //2 zamknij BUY
                         if(isCrossed==2)//zamykanie pozycji
                      {//3
                      OrderClose(ticket1,OrderLots(),NormalizeDouble(Bid,Digits),3,Blue);
                      } //3
                  
                   }//2
                
            
    return(0);
    
      }//1










a need to close only ticket1 position, OrderClose should close this position but they close all of them,I don't know why?

please help me


ticket2 is closing after TP or SL

 
total  = OrdersTotal();
static int ticket1;

    if(total<1)
      {
              if(isCrossed== 1  )//jezeli jeden to daje sygnal buy i zajmuje dluga pozycje
                    {  //1                                  //preferowana cena zamkniecia,roznica,stop loss,take profit
                        ticket1= OrderSend(Symbol(),0,Lots,NormalizeDouble(Ask,Digits),3,Ask-20*Point,Ask+3000*Point,
                                                         "", 12345, 0, Green);
                    }
                
                
               if(isCrossed== 2 )//jezeli dwa to daje sygnal sell i zajmuje krotka  pozycje
                    {//2
                       ticket1= OrderSend(Symbol(),1,Lots,NormalizeDouble(Bid,Digits),3,Bid+20*Point,Ask-2000*Point,
                                                          "", 12345, 0, Red);
                    }
   if(isCrossed== 1 )//przeciwna do Ask
                    {  //1                                  //preferowana cena zamkniecia,roznica,stop loss,take profit
                        ticket2= OrderSend(Symbol(),1,Lots,NormalizeDouble(Bid,Digits),3,Bid+20*Point,    Ask-20*Point,
                                                          "", 12345, 0, Green);
                  }
                  //2
               if(isCrossed== 2 )//przeciwna do Bid
                   {
                       ticket2= OrderSend(Symbol(),0,Lots,NormalizeDouble(Ask,Digits),3,Ask-20*Point,Ask+20*Point,
                                                          "", 12345, 0, Red);
                   }
}


//zamykanie pozycji-----------------------------------------

int totalorders = OrdersTotal();

OrderSelect(ticket1, SELECT_BY_TICKET);     


      if (OrderType()==OP_SELL&&OrderCloseTime()==0)
                     {
                      if(isCrossed==1)//zamykanie pozycji
              
                         { //4 zamknij sell
                       OrderClose(ticket1,OrderLots(),NormalizeDouble(Ask,Digits),3,Red);
                       } //4
                    }
           
                  if(OrderType() == OP_BUY&&OrderCloseTime()==0)
                   { //2 zamknij BUY
                         if(isCrossed==2)//zamykanie pozycji
                      {//3
                      OrderClose(ticket1,OrderLots(),NormalizeDouble(Bid,Digits),3,Blue);
                      } //3
                  
                   }//2
                
            
    return(0);
    
 
Roger:

thanks men it's working!

Reason: