Orders Execution
Checks for the total of open ordersIt automatically opens orders when conditions are reachedIt Closes Orders by itself
Indicators Used
Moving average indicatorMACD Histogram
0 Views
0 Downloads
0 Favorites
V5_MA_MACD



#define MagicNum1 65
#define MagicNum2 66
#define MagicNum3 67
#define MagicNum4 68 
   double TakeProfit = 40;
extern   double Lots = 0.1;
extern   double LotsDOL = 0.2;
   double Osn = 9;
   double Sig = 26;
   double Sig2 = 52;
   double Xs = 9;
   double Xs2 = 10;
   double Regul = 11;
   double LMA1 = 0.00023;
   double LMA2 = -0.00023;
   double MA1;
   double MA2;
   double MA3;
   double MA4;
   double MA5;
   double MA6;
   int ticket=0;
   int US1=0;
   int SLD1=23;
   int TPD1=39;
   int AA=5;
   int AB=7;
   int AC=7;
   int AD1=21;
   int AD2=27;
   int AD=13;
   int AF=2;
   int AG=26;
   int AE=32;
   double XX=1.95;
   int XD=40;
   int XF=8;
   int SS=41;
   
         
      
         
         
double MacdCurrent, MacdPrevious, SignalCurrent;
double SignalPrevious;         
         
         
int start()
{
    int cnt, ticket, total;  
 
 
 
MA1=iMA(NULL,0,Osn,0,MODE_SMA,PRICE_CLOSE,0);     
MA2=iMA(NULL,0,Sig,0,MODE_SMMA,PRICE_CLOSE,0);     
MA3=iMA(NULL,0,Xs,0,MODE_EMA,PRICE_CLOSE,0);       
MA4=iMA(NULL,0,Xs2,0,MODE_SMA,PRICE_CLOSE,0);
MA5=iMA(NULL,0,Regul,0,MODE_SMA,PRICE_CLOSE,0);
MA6=iMA(NULL,0,Sig2,0,MODE_SMMA,PRICE_CLOSE,0);     

 
MacdCurrent=iMACD(NULL,0,9,26,24,PRICE_CLOSE,MODE_MAIN,0);
MacdPrevious=iMACD(NULL,0,9,26,24,PRICE_CLOSE,MODE_MAIN,1);
SignalCurrent=iMACD(NULL,0,9,26,24,PRICE_CLOSE,MODE_SIGNAL,0);
SignalPrevious=iMACD(NULL,0,9,26,24,PRICE_CLOSE,MODE_SIGNAL,1);


      total=OrdersTotal();
         if(total<1) 
            {
                  if (US1<1 && SignalPrevious>MacdPrevious && Ask>MA3-AC*Point  && Bid<MA4 && MA1<MA2 )
                     {
                        ticket=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid, Digits),4,0,0,"Ïðîäà¸ì",MagicNum1,0,Blue);
                        if(ticket>0)
                        {
                           if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
                           Print("Ïðîäàæà : ",OrderOpenPrice());
                        }
                        return;
                      }
                   if (US1<1 && SignalCurrent*AA<MacdCurrent && SignalCurrent>LMA1 && SignalCurrent>MacdCurrent/AB && MacdCurrent>MacdPrevious  )
                      {
                        ticket=OrderSend(Symbol(),OP_SELL,LotsDOL,NormalizeDouble(Bid, Digits),4,0,0,"Ïðîäà¸ì",MagicNum2,0,Gold);
                        if(ticket>0)
                        {
                           if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) 
                           Print("Ïðîäàæà : ",OrderOpenPrice());
                        }
                        return;
                      }
                   if (US1>0 && MA3-AF*Point<Ask)
                      {
                        ticket=OrderSend(Symbol(),OP_BUY,LotsDOL,NormalizeDouble(Ask, Digits),4,0,0,"Ïîêóïàåìñ",MagicNum3,0,Black);
                        if(ticket>0)
                           {
                              if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) 
                              Print("Ïîêóïàåìñ : ",OrderOpenPrice());
                           }
                        US1--;
                        return;
                       }
                    if (US1<1 && SignalCurrent/MacdCurrent>XX && MA3<MA1 && MA6-AE*Point<MA2 && MA2<MA6 && MA5>MA1)
                       {
                         ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask, Digits),4,0,0,"Ïîêóïàåìñ",MagicNum4,0,Red);
                         if(ticket>0)
                            {
                              if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) 
                              Print("Ïîêóïàåìñ : ",OrderOpenPrice());
                             }
                         return;
                        }
              return;
             }
             
         for(cnt=OrdersTotal()-1;cnt >= 0;cnt--)
          {
            if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)==true)
             {
               if(OrderType()== OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNum1)
                  {
                  if ( SignalCurrent*AA<MacdCurrent && SignalCurrent>LMA1 && SignalCurrent>MacdCurrent/AB && MacdCurrent>MacdPrevious  )
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask, Digits),3,LawnGreen);
                        return(0);
                        }
                  if ( Ask<(OrderOpenPrice()-(TakeProfit*Point)) && SignalCurrent<MacdCurrent )
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask, Digits),3,Gold);
                        return(0);
                        }
                  if ( Ask>(OrderOpenPrice()+(AG*Point)) && Bid>MA3 && MA2>MA6)
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask, Digits),3,Black);
                        return(0);
                        }
                  if ( SignalCurrent<SignalPrevious && MacdCurrent>SignalCurrent && Ask<MA3 && MA3<MA6 && Ask<(OrderOpenPrice()-(AD*Point)))
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask, Digits),3,Red);
                        US1++;
                        return(US1);
                        }
                   }
                   
               if(OrderType()== OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNum2)
                   {
                     if ( Ask>(OrderOpenPrice()+(AD1*Point)) )
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask, Digits),3,Black);
                        return(0);
                        }
                     if ( Ask<(OrderOpenPrice()-(AD2*Point)) )
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask, Digits),3,Black);
                        return(0);
                        }
                   }
                   
                if(OrderType()== OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNum3)
                   { 
                     if (Bid<OrderOpenPrice()-SLD1*Point)
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid, Digits),3,White);
                        return(0);
                        }
                     if (Bid>OrderOpenPrice()+TPD1*Point)
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid, Digits),3,White);
                        return(0);
                        }
                      if (SignalCurrent*AA<MacdCurrent && SignalCurrent>LMA1 && SignalCurrent>MacdCurrent/AB && MacdCurrent>MacdPrevious  )
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid, Digits),3,LawnGreen);
                        return(0);
                        }
                     }
                  if(OrderType()== OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNum4)
                     {
                        if ( SignalCurrent>0 && MacdCurrent>0  && MacdCurrent<SignalCurrent && Bid>OrderOpenPrice()+XD*Point && MA2>MA6 && MA2+XF*Point>MA1 && Bid>MA3)
                           {
                           OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid, Digits),3,Blue);
                           return(0);
                           }
                        if ( Bid<OrderOpenPrice()-SS*Point )
                           {
                           OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid, Digits),3,Black);
                           return(0);
                           }
                        if ( SignalCurrent*AA<MacdCurrent && SignalCurrent>LMA1 && SignalCurrent>MacdCurrent/AB && MacdCurrent>MacdPrevious  )
                           {
                           OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid, Digits),3,LawnGreen);
                           return(0);
                           }
                      }
                 }
              else
              Print("OrderSelect() âåðíóë îøèáêó - ",GetLastError());
              return;   
            }
               
 return;
 }

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---