help me,orderdele error

 
    //仓平空的时候,删除所有挂单止损完以后平掉所有挂单开 始
   int chidan=0;
   int guadan=0;
   int chicangshu[10000];
   int guacangshu[10000];
   int zuidasuocangshu2=getzuidasuocangshu();
   
   if(OrdersTotal()>0)             
       {
         for(i=0;i<=zuidasuocangshu2;i++)
           {
              chicangshu[i]=0;
           }
       }         
   
   
   if(OrdersTotal()>0)             
       {
         for(int tt1=0;tt1<=zuidasuocangshu2;tt1++)
           {
             if(OrderSelect(tt1,SELECT_BY_POS,MODE_TRADES)==true)
               {
                  if((OrderType()==OP_BUY)||(OrderType()==OP_SELL))
                     {
                        int temp69=StrToInteger(OrderComment());
                        chicangshu[temp69]=1;
                     }
               }
           }
       }        
       
   // Alert("chicangshu[56]=",chicangshu[60]);
   
   
   if(OrdersTotal()>0)             
       {
         for(i=0;i<=zuidasuocangshu2;i++)
           {
              guacangshu[i]=0;
           }
       }
   
   
   if(OrdersTotal()>0)             
      {
         for(int tt2=0;tt2<OrdersTotal();tt2++)
           {
             if(OrderSelect(tt2,SELECT_BY_POS,MODE_TRADES)==true)
               {
                  if((OrderType()==OP_BUYSTOP)||(OrderType()==OP_SELLSTOP))
                     {
                        int  temp88=OrderMagicNumber();
                        guacangshu[temp88]=1;
                     }
               }
           }    
       }         
  // Alert( "guacangshu[56]=",guacangshu[60]);
   
   for(int sd=0;sd<OrdersTotal();sd++)
      {
         if(OrderSelect(sd,SELECT_BY_POS,MODE_TRADES)==true)
            {
               if((OrderType()==OP_BUYSTOP)||(OrderType()==OP_SELLSTOP))
                  {
                     int temp10=OrderMagicNumber();  
                     if((chicangshu[temp10]==0)&&(guacangshu[temp10]>0))
                        {
                        
                           for(int cc1=0;cc1<OrdersTotal();cc1++)
                              {
                                 if(OrderSelect(cc1,SELECT_BY_POS,MODE_TRADES)==true)
                                    {
                                       if(OrderMagicNumber()==temp10)
                                          {
                                             if(OrderDelete(OrderTicket(),Blue)==true)
                                                {
                                                   Alert(temp10,"号仓已经平仓完毕,剩余挂单自动删除成功");
                                                  
                                                }
                                          }
                                    }
                              }
                          
                        }
                  }
               
            }
      }

this code is run very beautiful,but if this code put in EA, use history test,Continuous cycle delete orderticket,why

 

https://www.mql5.com/en/forum/139654

Your loop is wrong it has to count down if you check your trades especially if you close trades inside the loop

 
  1. Loops and Closing or Deleting Orders - MQL4 forum count down
  2.                         int temp69=StrToInteger(OrderComment());
    brokers can change comments, including complete replacement.
 

ok i change my code in blow,but still not normal run

for(int sd=0;sd<OrdersTotal();sd++)
      {
         if(OrderSelect(sd,SELECT_BY_POS,MODE_TRADES)==true)
            {
               if((OrderType()==OP_BUYSTOP)||(OrderType()==OP_SELLSTOP))
                  {
                     int temp10=OrderMagicNumber();  
                     if((chicangshu[temp10]==0)&&(guacangshu[temp10]>0))
                        {
                        
                           for(int cc1=OrdersTotal()-1;cc1>=0;cc1--)
                              {
                                 if(OrderSelect(cc1,SELECT_BY_POS,MODE_TRADES)==true)
                                    {
                                       if(OrderMagicNumber()==temp10)
                                          {
                                             if(OrderDelete(OrderTicket(),Blue)==true)
                                                {
                                                   Alert(temp10,"号仓已经平仓完毕,剩余挂单自动删除成功");
                                                  
                                                }
                                          }
                                    }
                              }
                          
                        }
                  }
               
            }
      }

 
zdj229:

ok i change my code in blow,but still not normal run

for(int sd=0;sd<OrdersTotal();sd++)

deVries:

https://www.mql5.com/en/forum/139654

Your loop is wrong it has to count down if you check your trades especially if you close trades inside the loop

 

ok,i modefy my code blew,but not still normal run

   for(int sd=OrdersTotal()-1;sd>=0;sd--)
      {
         if(OrderSelect(sd,SELECT_BY_POS,MODE_TRADES)==true)
            {
               if((OrderType()==OP_BUYSTOP)||(OrderType()==OP_SELLSTOP))
                  {
                     int temp10=OrderMagicNumber();  
                     if((chicangshu[temp10]==0)&&(guacangshu[temp10]>0))
                        {
                        
                           for(int cc1=OrdersTotal()-1;cc1>=0;cc1--)
                              {
                                 if(OrderSelect(cc1,SELECT_BY_POS,MODE_TRADES)==true)
                                    {
                                       if(OrderMagicNumber()==temp10)
                                          {
                                             if(OrderDelete(OrderTicket(),Blue)==true)
                                                {
                                                   Alert(temp10,"号仓已经平仓完毕,剩余挂单自动删除成功");
                                                  
                                                }
                                          }
                                    }
                              }
                           break;   
                          
                        }
                  }
               
            }
      }
 

ok i am ok

tell frients,thank you very much

i modiry my code below problom

Perfect solution

int getguacangshu(int guandan)
   {
      int guacangshu[10000];
      int zuidasuocangshu2=getzuidasuocangshu();
       if(OrdersTotal()>0)             
       {
         for(i=0;i<=zuidasuocangshu2;i++)
           {
              guacangshu[i]=0;
           }
       }
  
   
      if(OrdersTotal()>0)             
         {
            for(int um=OrdersTotal()-1;um>=0;um--)
               {
                  if(OrderSelect(um,SELECT_BY_POS,MODE_TRADES)==true)
                     {
                        if((OrderType()==OP_BUYSTOP)||(OrderType()==OP_SELLSTOP))
                           {
                              guandan=OrderMagicNumber();
                              guacangshu[guandan]=1;
                           }
                     }
              }    
          }
      return(guacangshu[guandan]);
   }







void shandan()
   {
       //仓平空的时候,删除所有挂单止损完以后平掉所有挂单开 始

     for(int sd=0;sd<OrdersTotal();sd++)
      {
         if(OrderSelect(sd,SELECT_BY_POS,MODE_TRADES)==true)
            {
               if((OrderType()==OP_BUY)||(OrderType()==OP_SELL))
                  {
                     int temp666=StrToInteger(OrderComment());
                     if((getchicangshu(temp666)==0)&&(getguacangshu(temp666)>0))
                        {
                           for(int cc1=OrdersTotal()-1;cc1>=0;cc1--)
                              {
                                 if(OrderSelect(cc1,SELECT_BY_POS,MODE_TRADES)==true)
                                    {
                                       if(OrderMagicNumber()==temp666)
                                          {
                                             if(OrderDelete(OrderTicket(),Blue)==true)
                                                {
                                                   Alert(temp666,"号仓已经平仓完毕,剩余挂单自动删除成功");
                                                  
                                                }
                                          }
                                    }
                              }      
                        }
                  }
            } 
      }       
      
      
Reason: