Orders Execution
It automatically opens orders when conditions are reachedIt Closes Orders by itself
Indicators Used
Moving average indicatorMACD Histogram
0 Views
0 Downloads
0 Favorites
V3_MA_MACD
extern   double TakeProfit = 35;
extern   double Lots = 0.1;
extern   double Osn = 12;
extern   double Sig = 24;
extern   double Sig2 = 43;
extern   double Xs = 6;
extern   double Xs2 = 8;
extern   double Regul = 14;
extern   double LMACD = 0.0006;
         double MA1;
         double MA2;
         double MA3;
         double MA4;
         double MA5;
         double MA6;
         int Or=0;
         int ticket=0;
         int US1=0;
         int S=0;
         int B=0;
         int Dol=0;
         
double MacdCurrent, MacdPrevious, SignalCurrent;
double SignalPrevious;         
         
         
int start()
{
      
 
 
 
MA1=iMA(NULL,0,Osn,0,MODE_SMA,PRICE_CLOSE,0);      //MA 12 îñíîâíîé òðåíä
MA2=iMA(NULL,0,Sig,0,MODE_SMMA,PRICE_CLOSE,0);     //MA 24 ïîääåðæèâàþùàÿ
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);
 
 
            if (Dol<1 && SignalPrevious>MacdPrevious && Ask>MA3-7*Point && Or<1 && US1<1 && Bid<MA4 && MA1<MA2 )
               {
                ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,4,0,0,"Ïðîäà¸ì",16384,0,Blue);
                if(ticket>0)
                  {
                   if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ïðîäàæà : ",OrderOpenPrice());
                  }
                Or=Or+1;
                US1=US1+1;
                S=S+1;
                return;
               }
              
              
 
              if (S>0 && Ask<(OrderOpenPrice()-(TakeProfit*Point)) && Or>0 && US1>0 && SignalCurrent<MacdCurrent )
               {
                  OrderClose(OrderTicket(),OrderLots(),Ask,3,Gold);
                  Or=Or-1;
                  US1=US1-1;
                  S=S-1;
                  return(0);
               }
              if (S>0 && Or>0 && US1>0 && Ask>(OrderOpenPrice()+(25*Point)) && Bid>MA3 && MA2>MA6)
               {
                  OrderClose(OrderTicket(),OrderLots(),Ask,3,Black);
                  Or=Or-1;
                  US1=US1-1;
                  S=S-1;
                  return(0);
                }
                
 
              if (SignalCurrent<SignalPrevious &&MacdCurrent>SignalCurrent && Or>0 && US1>0 && S>0 && Ask<MA3 && MA3<MA6 && Ask<(OrderOpenPrice()-(10*Point)))
               {
                  OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
                  Or=Or-1;
                  US1=US1-1;
                  S=S-1;
                  Dol=Dol+1;
                  return(0);
               }
               
               
               
               if (Dol>0 && Or<1 && US1<1 && MA3-2*Point<Ask)
                  {
                     ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,4,0,0,"Ïîêóïàåìñ",16384,0,Black);
                     if(ticket>0)
                        {
                        if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ïîêóïàåìñ : ",OrderOpenPrice());
                        }
                     Or=Or+1;
                     US1=US1+1;
                     return;
                  }
               if (Dol>0 && Bid<OrderOpenPrice()-20*Point&& Or>0 && US1>0)
                  {
                  OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
                  Or=Or-1;
                  US1=US1-1;
                  Dol=Dol-1;
                  return(0);
                  }
                if (Dol>0 && Bid>OrderOpenPrice()+20*Point && Or>0 && US1>0)
                  {
                  OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
                  Or=Or-1;
                  US1=US1-1;
                  Dol=Dol-1;
                  return(0);
                  }
               
               
               
               if (Dol<1 && SignalCurrent/MacdCurrent>3 && MA3<MA1 && Or<1 && US1<1 && MA6-10*Point<MA2 && MA2<MA6 && MA5>MA1)
                  {
                     ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,4,0,0,"Ïîêóïàåìñ",16384,0,Red);
                        if(ticket>0)
                           {
                              if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ïîêóïàåìñ : ",OrderOpenPrice());
                           }
                        Or=Or+1;
                        US1=US1+1;
                        B=B+1;
                        return;
                  }
               if (B>0 && SignalCurrent>0 && MacdCurrent>0  && MacdCurrent<SignalCurrent && Bid>OrderOpenPrice()+36*Point && MA2>MA6  && Or>0 && US1>0 && MA2+15*Point>MA1 && Bid>MA3)
                  {
                     OrderClose(OrderTicket(),OrderLots(),Bid,3,Blue);
                     Or=Or-1;
                     US1=US1-1;
                     B=B-1;
                     return(0);
                  }
                if (B>0 && Bid<OrderOpenPrice()-40*Point && Or>0 && US1>0 )
                  {
                     OrderClose(OrderTicket(),OrderLots(),Bid,3,Black);
                     Or=Or-1;
                     US1=US1-1;
                     B=B-1;
                     return(0);
                  }
                  
 
return (0);
}

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 ---