amer





//+------------------------------------------------------------------+
//|                                                         amer.mq4 |
//|                                                             Olek |
//|                                                                  |
//+------------------------------------------------------------------+
extern double Lots = 0.1;
extern int TrailingStop = 50;
extern int StopLoss=50;
extern int TakeProfit = 200;
extern int per = 700;
extern int vremya = 0;
extern int DayWeek = 2;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   double Mov1= 0, Mov2=0;
   int cnt, ticket, total;
   
   Mov1= iMA(0,0,per,0,0,0,1);
   Mov2= iMA(0,0,per,0,0,0,2);

   int  h=0; 

int       hour0=0; 
int       hour1=0; 
int       hour2=0; 
int       hour3=0; 
int       hour4=0; 
int       hour5=0; 
int       hour6=0; 
int       hour7=0; 
int       hour8=0; 
int       hour9=0; 
int       hour10=0; 
int       hour11=0; 
int       hour12=0; 
int       hour13=0; 
int       hour14=0; 
int       hour15=0; 
int       hour16=0; 
int       hour17=0; 
int       hour18=0; 
int       hour19=0; 
int       hour20=0; 
int       hour21=0; 
int       hour22=0; 
int       hour23=0; 

if (DayOfWeek() == 1)  {hour0=1;hour1=1;hour2=1;hour3=0;hour4=1;hour5=1;hour6=0;hour7=0;hour8=1;hour9=1;hour10=1;hour11=1; 
             hour12=0;hour13=1;hour14=0;hour15=1;hour16=1;hour17=1;hour18=0;hour19=0;hour20=0;hour21=0;hour22=0;hour23=1;} 
else   if (DayOfWeek() == 2)  {hour0=1;hour1=1;hour2=1;hour3=0;hour4=1;hour5=1;hour6=0;hour7=0;hour8=1;hour9=1;hour10=1;hour11=1; 
             hour12=0;hour13=1;hour14=0;hour15=1;hour16=1;hour17=1;hour18=0;hour19=0;hour20=0;hour21=0;hour22=0;hour23=1;} 
else   if (DayOfWeek() == 3)  {hour0=1;hour1=1;hour2=1;hour3=0;hour4=1;hour5=1;hour6=0;hour7=0;hour8=1;hour9=1;hour10=1;hour11=1; 
             hour12=0;hour13=1;hour14=0;hour15=1;hour16=1;hour17=1;hour18=0;hour19=0;hour20=0;hour21=0;hour22=0;hour23=1;} 
else   if (DayOfWeek() == 4)  {hour0=1;hour1=1;hour2=1;hour3=0;hour4=1;hour5=1;hour6=0;hour7=0;hour8=0;hour9=0;hour10=0;hour11=0; 
             hour12=0;hour13=0;hour14=0;hour15=0;hour16=0;hour17=0;hour18=0;hour19=0;hour20=0;hour21=0;hour22=0;hour23=1;} 
else   if (DayOfWeek() == 5)  {hour0=1;hour1=1;hour2=1;hour3=0;hour4=1;hour5=1;hour6=0;hour7=0;hour8=1;hour9=1;hour10=0;hour11=0; 
             hour12=0;hour13=0;hour14=0;hour15=0;hour16=0;hour17=0;hour18=0;hour19=0;hour20=0;hour21=0;hour22=0;hour23=0;} 
  
       if(Hour()== 0) h=hour0; 
else   if(Hour()== 1) h=hour1; 
else   if(Hour()== 2) h=hour2; 
else   if(Hour()== 3) h=hour3; 
else   if(Hour()== 4) h=hour4; 
else   if(Hour()== 5) h=hour5; 
else   if(Hour()== 6) h=hour6; 
else   if(Hour()== 7) h=hour7; 
else   if(Hour()== 8) h=hour8; 
else   if(Hour()== 9) h=hour9; 
else   if(Hour()== 10) h=hour10; 
else   if(Hour()== 11) h=hour11; 
else   if(Hour()== 12) h=hour12; 
else   if(Hour()== 13) h=hour13; 
else   if(Hour()== 14) h=hour14; 
else   if(Hour()== 15) h=hour15; 
else   if(Hour()== 16) h=hour16; 
else   if(Hour()== 17) h=hour17; 
else   if(Hour()== 18) h=hour18; 
else   if(Hour()== 19) h=hour19; 
else   if(Hour()== 20) h=hour20; 
else   if(Hour()== 21) h=hour21; 
else   if(Hour()== 22) h=hour22; 
else   if(Hour()== 23) h=hour23;    

if(  h==1 ) 

   total=OrdersTotal();
   if(total<1 && Hour() == vremya && DayOfWeek()>= DayWeek) 
     {
      
      if( Mov1 < Mov2 )
        {
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point,"",12,0,Red);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
           }
         else Print("Error opening BUY order : ",GetLastError()); 
         return(0); 
        }
      
      if(Mov1 > Mov2 )
        {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,"",12,0,Red);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
           }
         else Print("Error opening SELL order : ",GetLastError()); 
         return(0); 
        }
      return(0);
     }
      
   for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   
         OrderSymbol()==Symbol())  
        {
         if(OrderType()==OP_BUY)   
           {
            
            if(TrailingStop>0)  
              {                 
               if(Bid-OrderOpenPrice()>Point*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-Point*TrailingStop)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
         else 
           {
            
            if(TrailingStop>0)  
              {                 
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                 {
                  if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }
           }
        }
     }
   return(0);
  }





Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:

Moving average indicator


Custom Indicators Used:

Order Management characteristics:
Checks for the total of open orders
It automatically opens orders when conditions are reached

It can change open orders parameters, due to possible stepping strategy

Other Features:

BackTest : EURUSD on H1

From 2009-08-01 to 2009-10-01 Profit Factor:1.38 Total Net Profit:29.60

BackTest : EURUSD on H1

From 2010-03-01 to 2010-03-27 Profit Factor:0.85 Total Net Profit:-27.30

BackTest : EURUSD on H1

From 2010-04-01 to 2010-04-30 Profit Factor:0.72 Total Net Profit:-45.20

BackTest : EURUSD on H1

From 2010-05-01 to 2010-05-31 Profit Factor:0.92 Total Net Profit:-21.80

BackTest : EURUSD on H1

From 2010-06-01 to 2010-06-30 Profit Factor:0.83 Total Net Profit:-23.40

BackTest : GBPUSD on H1

From 2010-01-01 to 2010-02-27 Profit Factor:0.39 Total Net Profit:-437.50

BackTest : GBPUSD on H1

From 2010-01-01 to 2010-04-16 Profit Factor:0.05 Total Net Profit:-3466.50

BackTest : USDCAD on H1

From 2009-01-01 to 2010-01-01 Profit Factor:0.25 Total Net Profit:-2445.92

BackTest : USDCAD on H1

From 2009-12-01 to 2010-01-01 Profit Factor:0.85 Total Net Profit:-24.30

BackTest : USDCHF on H1

From 2009-12-01 to 2010-01-01 Profit Factor:1.35 Total Net Profit:36.88

BackTest : USDJPY on H1

From 2009-11-01 to 2009-11-30 Profit Factor:0.00 Total Net Profit:0.00

Request Backtest for amer


From : (yyyy/mm/dd) To: (yyyy/mm/dd)

Pair: Period: