Ea with order send and order modify for MA

 

I have got an EA that opens order at signals . It is working with Moving Averages , and opens 2 orders at the same time . The first EA opens the first order and the second EA opens the second order BUY_STOP or SELL_STOP with the previous order . 

When opening the second order , the Modify Order EA does not modify the order . 

Here is the EA : 


     


  

          

   

 if(OS0102L[g] == OS0102L[g] ) 

 {

 


if (OS0102L[g] == "GBPUSDi" || OS0102L[g] == "EURUSDi" || OS0102L[g] == "EURJPYi" || OS0102L[g] == "AUDUSDi"||  OS0102L[g] == "EURCHFi" || OS0102L[g] == "USDJPYi" ||  OS0102L[g] == "EURGBPi" || OS0102L[g] == "NZDUSDi" || OS0102L[g] == "USDCADi"

      || OS0102L[g] == "USDCHFi")

{

   

b12[g] = 400 ;

b12b[g] = 400 ;

b16[g] = 800 ;

b16b[g] = 1200 ;


}




if (OS0102L[g] == "GBPJPYi" || OS0102L[g] == "GBPCHFi" )

{

   

b12[g] = 600 ;

b12b[g] = 600 ;

b16[g] = 1200 ;

b16b[g] = 1800 ;



}


if (OS0102L[g] == "AUDCADi" || OS0102L[g] == "AUDCHFi" || OS0102L[g] == "NZDCADi" || OS0102L[g] == "NZDCHFi"||  OS0102L[g] == "CHFJPYi" || OS0102L[g] =="CADCHFi" ||  OS0102L[g] == "AUDNZDi" || OS0102L[g] == "NZDJPYi" || OS0102L[g] == "AUDJPYi"

      || OS0102L[g] == "CADJPYi"  || OS0102L[g] == "CHFJPYi")

{

   

b12[g] = 450 ;

b12b[g] = 450 ;

b16[g] = 900 ;

b16b[g] = 1350 ;



}


if (OS0102L[g] == "GBPCADi" || OS0102L[g] == "GBPAUDi" || OS0102L[g] == "GBPNZDi" || OS0102L[g] == "EURCADi"||  OS0102L[g] == "EURAUDi" || OS0102L[g] == "EURNZDi" )

{

   

b12[g] = 800 ;

b12b[g] = 800 ;

b16[g] = 1600 ;

b16b[g] = 2400 ;



}

          if (OTYPE0102L[g] == 1 )

                  if(  OrderM0102L[g] == 40000 || OrderC0102L[g] == 40000 || OrderM0102L[g] == 41000 || OrderC0102L[g] == 41000 || OrderM0102L[g] == 45000 || OrderC0102L[g] == 45000 || OrderM0102L[g] == 46000 || OrderC0102L[g] == 46000   

                   ||  OrderM0102L[g] == 40010 || OrderC0102L[g] == 40010 || OrderM0102L[g] == 41010 || OrderC0102L[g] == 41010 || OrderM0102L[g] == 45010 || OrderC0102L[g] == 45010 || OrderM0102L[g] == 46010 || OrderC0102L[g] == 46010

                   || OrderM0102L[g] == 42000  || OrderC0102L[g] == 42000 

                   ||  OrderM0102L[g] == 25100  || OrderC0102L[g] == 45100 || OrderM0102L[g] == 46100  || OrderC0102L[g] == 46100

                   ||  OrderM0102L[g] == 45200  || OrderC0102L[g] == 45200 || OrderM0102L[g] == 46200  || OrderC0102L[g] == 46200

                   ||  OrderM0102L[g] == 45110  || OrderC0102L[g] == 45110 || OrderM0102L[g] == 46110  || OrderC0102L[g] == 46110 )

                      

                    {

              

                     

                     if(MathAbs(OOP0102L[g] - OSL0102L[g]) < b12[g] + MarketInfo( OS0102L[g] ,MODE_SPREAD) * MarketInfo( OS0102L[g] ,MODE_POINT) + 10 * MarketInfo( OS0102L[g] ,MODE_POINT))

                     {

                      if(MarketInfo(OS0102L[g],MODE_BID) >  iMA(OS0102L[g],PERIOD_M15,20,0,MODE_SMA,PRICE_CLOSE,0) ) 

                      OrderModify(OrderT0102L[g], OOP0102L[g], NormalizeDouble(MMHighR[g]+ b12b[g]* MarketInfo( OS0102L[g] ,MODE_POINT) + MarketInfo( OS0102L[g] ,MODE_SPREAD) * MarketInfo( OS0102L[g] ,MODE_POINT),5),OTP010L[g] ,0,clrNONE);

               

                   else  OrderModify(OrderT0102L[g],OOP0102L[g] ,NormalizeDouble(iMA(OS0102L[g],PERIOD_M15,20,0,MODE_SMA,PRICE_CLOSE,0)+ b12b[g]* MarketInfo( OS0102L[g] ,MODE_POINT)+ MarketInfo( OS0102L[g] ,MODE_SPREAD) * MarketInfo( OS0102L[g] ,MODE_POINT),5) , OTP010L[g] ,0,clrNONE);

                     }

                   else {

                   

                    OrderModify(OrderT0102L[g], OOP0102L[g], NormalizeDouble(OOP0102L[g]+ b12[g]* MarketInfo( OS0102L[g] ,MODE_POINT) + MarketInfo( OS0102L[g] ,MODE_SPREAD) * MarketInfo( OS0102L[g] ,MODE_POINT),5),OTP010L[g] ,0,clrNONE);

                  

                   }

                   

             

                    

           } 

        

 }  

   

  }

 }




 How to get the order modified for the Buy Stop orders after opening ? 

Reason: