Need Help: Any error why new Order not send

 

Hi ALl!

Any wrong on my code why ea not continute send new OpenOrder .

I need continute send NewOrder() with delaytime=BarHold*timframe.

Thanks any review and help!

void CMRUN(string symbol, int tframe)
   {
      if (OrderToTal(symbol,tframe)==0) SendOrder(symbol,tframe);// Opend Order (Working)
      else 
      {            
            OrderModifyProfit(symbol,tframe); //Modify Profit (working)
            OrderSendClose(symbol,tframe); //Close Order if loss signal (working)
            
            //Continute open oder if signal correct and haved possition
            //(string))OrderTiming = Time Frame == tframe == (int)minute == 
            //OrderSend(symbol,OP_SELL,Lots,SymbolBid,Slippage,SL,TP1,OrderTiming,MagicNumber,0,Red);
// At here not work		
               for (int i=0; i<OrdersTotal();i++)
               {
               OrderSelect(i,SELECT_BY_POS ,MODE_TRADES); 
               if (OrderMagicNumber() == MagicNumber && OrderSymbol() == symbol && OrderComment() == OrderTiming)
                  if ((OrderOpenTime()+60*BarHold*minute) < TimeCurrent()) //60 seconds * bars need hold * timeframe 
                  {
                     SendOrder(symbol,tframe);
                     break;
                  }
               }  
       }  
   }

// Find Order Open Function
int OrderToTal(string symbol, int tframe)
      {
         int result=0;
         for(int find=0;find<OrdersTotal();find++)
         {
          OrderSelect(find,SELECT_BY_POS ,MODE_TRADES);
          if (OrderMagicNumber() == MagicNumber && OrderSymbol() == symbol && OrderComment() == OrderTiming)
             result++;    
         }
      return(result);   
      }      

 
Nguyễn Thanh Sang:

Hi ALl!

Any wrong on my code why ea not continute send new OpenOrder .

I need continute send NewOrder() with delaytime=BarHold*timframe.

Thanks any review and help!


you should print something after every filter to find which one is always false

for (int i=0; i<OrdersTotal();i++)
               {
             if(  OrderSelect(i,SELECT_BY_POS ,MODE_TRADES)) 
               {Print("1");
                 if (OrderMagicNumber() == MagicNumber )
                   {Print("2");
                    if( OrderSymbol() == symbol)
                      {Print("3");
                       if( OrderComment() == OrderTiming)
                         {Print("4");
                            if ((OrderOpenTime()+60*BarHold*minute) < TimeCurrent()) //60 seconds * bars need hold * timeframe 
                                {Print("5");
                                 SendOrder(symbol,tframe);
                                 break;
                                }
                         }  
                    }  
                 }
             }