AboveBelowMA





#property copyright "AD"
#property link      ""

double Lots = 1;

// Åñòü ëè îòêðûòûå ñîâåòíèêîì îðäåðà? Åñëè åñòü, òî: èëè çàêðûâàåì, èëè çàïðåùàåì îòêðûâàòü íîâûé
bool CheckOrders(int Type)
{
 int ticket,i;
 bool Result;
 
 Result=True;
 if(OrdersTotal()!=0) 
  {
   for(i=0;i<OrdersTotal();i++)
    {
     ticket=OrderSelect(i,SELECT_BY_POS);
     if(OrderMagicNumber()==553)
      {
       if(OrderType()==Type)
        {
         if(Type==OP_BUY)
          {         
           if(OrderClose(OrderTicket(),OrderLots(),Bid,10)==False)
            Result=False;
           }
         if(Type==OP_SELL)
          {        
           if(OrderClose(OrderTicket(),OrderLots(),Ask,20)==False)
            Result=False;
           } 
         } 
       else Result=False;
       }
     }
   }
  return(Result); 
}


int start()
  {
   double MA, MAPrev;
   int ticket;
   
   MA = iMA("GBPUSD",15,1,0,MODE_EMA,PRICE_TYPICAL,0);
   MAPrev = iMA("GBPUSD",15,1,0,MODE_EMA,PRICE_TYPICAL,1);

   // Îòêðûòèå ââåðõ
   if(Open[0]<MA-Point && Ask<MA)   
     if(CheckOrders(OP_SELL)==True && MAPrev<MA)
      {
       Lots=NormalizeDouble(AccountFreeMargin()/10000, 1);
       if(Lots>5)
        Lots=5;
       ticket=OrderSend("GBPUSD",OP_BUY,Lots,Ask,10,0,0,NULL,553);
       if(ticket<0)
         Print("Íå óäàëîñü îòêðûòü îðäåð BUY. Îøèáêà N", GetLastError());
       }
       
   // Îòêðûòèå âíèç
   if(Open[0]>MA+Point && Bid>MA)
     if(CheckOrders(OP_BUY)==True && MAPrev>MA)
      {
       Lots=NormalizeDouble(AccountFreeMargin()/10000, 1);
       if(Lots>5)
        Lots=5;
       ticket=OrderSend("GBPUSD",OP_SELL,Lots,Bid,10,0,0,NULL,553);
       if(ticket<0)
        Print("Íå óäàëîñü îòêðûòü îðäåð SELL. Îøèáêà N", GetLastError());
       }
               
   return(0);
  }
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:

Series array that contains open prices of each bar


Indicator Curves created:


Indicators Used:

Moving average indicator


Custom Indicators Used:

Order Management characteristics:
Checks for the total of open orders

It Closes Orders by itself
It automatically opens orders when conditions are reached

Other Features: