Wednesday, July 4, 2018

EMA MOVING AVERAGE ROBOT

If you want trading using robot then you use this free of cost .


EMA Expert Advisor for MT4
Step 1.
create EMAROBOT file in expert folder and

Step 2. copy paste code given below on your EMAROBOT file :
//code start
//+------------------------------------------------------------------+
// EMA MOVING AVERAGE ROBOT
//https://forexwithcandlestick.blogspot.com
//
// Disclaimer: This EA is provided to you without any warranty
// Please use first on demo account before live account
// We WILL not responsible for
// FOR ANY LOSS OF USE, REVENUE OR PROFIT, LOST OR DAMAGED DATA, OR OTHER COMMERCIAL OR
// ECONOMIC LOSS OR FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, STATUTORY, PUNITIVE,
// EXEMPLARY OR CONSEQUENTIAL DAMAGES WHATSOEVER RELATED TO YOUR USE OF THIS EA OR
// FOREXEADVISOR STRATEGY BUILDER   
// 
// USE THIS EA AT YOUR OWN RISK.
//
// Before adding this expert advisor to a chart, make sure there are NO
// open positions.
//
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//EMA crossover Robot 15 Minutes
//+------------------------------------------------------------------+


extern int MagicNumber=10001;
extern double Lots =0.01;
extern double StopLoss=0;
extern double TakeProfit=50;
extern int TrailingStop=15;
extern int Slippage=3;
//+------------------------------------------------------------------+
//    expert start function
//+------------------------------------------------------------------+
int start()
{
  double MyPoint=Point;
  if(Digits==3 || Digits==5) MyPoint=Point*10;
 //current chart, current period, 20 candles, No shift, simple , close price
double SlowMovingAverage = iMA (NULL,0,20,0,MODE_EMA,PRICE_CLOSE,0);
//current chart, current period, 20 candles, No shift, simple , close price
double LastSlowMovingAverage = iMA (NULL,0,20,0,MODE_EMA,PRICE_CLOSE,1);

//current chart, current period, 10 candles, No shift, simple , close price
double FastMovingAverage = iMA (NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0);
//current chart, current period, 10 candles, No shift, simple , close price
double LastFastMovingAverage = iMA (NULL,0,10,0,MODE_EMA,PRICE_CLOSE,1);
//-------------------------------------------------------------------- 
  double TheStopLoss=0;
  double TheTakeProfit=0;
  if( TotalOrdersCount()==0 ) 
  {
     int result=0;
     //if the fast SMA is now above
if ((LastFastMovingAverage < LastSlowMovingAverage) && (FastMovingAverage > SlowMovingAverage)) // Here is your open buy rule
     {
        result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"EMA crossover Robot 15 Minutes https://forexwithcandlestick.blogspot.com",MagicNumber,0,Blue);
        if(result>0)
        {
         TheStopLoss=0;
         TheTakeProfit=0;
         if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
         if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
         OrderSelect(result,SELECT_BY_TICKET);
         OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
        }
        return(0);
     }
     //if the fast SMA is now above
if ((LastFastMovingAverage > LastSlowMovingAverage) && (FastMovingAverage < SlowMovingAverage)) // Here is your open Sell rule
     {
        result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"EMA crossover Robot 15 Minutes https://forexwithcandlestick.blogspot.com ",MagicNumber,0,Red);
        if(result>0)
        {
         TheStopLoss=0;
         TheTakeProfit=0;
         if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
         if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
         OrderSelect(result,SELECT_BY_TICKET);
         OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
        }
        return(0);
     }
  }
  
  for(int cnt=0;cnt<OrdersTotal();cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   
         OrderSymbol()==Symbol() &&
         OrderMagicNumber()==MagicNumber 
         )  
        {
         if(OrderType()==OP_BUY)  
           {
            if(TrailingStop>0)  
              {                 
               if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
         else 
           {
            if(TrailingStop>0)  
              {                 
               if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
                 {
                  if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }
           }
        }
     }
   return(0);
}

int TotalOrdersCount()
{
  int result=0;
  for(int i=0;i<OrdersTotal();i++)
  {
     OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
     if (OrderMagicNumber()==MagicNumber) result++;

   }
  return (result);
}


//----------------------------------------------------------------------------------------
//code end
Step 3.
Now open MT4 and go to :
Insert >> Indicator >> Moving Average 
Set parameter : Period : 20 , shift : 0 , MA Method : Exponential , Apply to : close , style : Yellow then OK

Step 4. 
Lunch your MT4 and find EMAROBOT and drag and drop on your favourite currency window 
set your parameter and allow live trading on commen section.
Step 5.
Now just watch your robot automatic place order on EMA signal.
This EA test on EURUSD 15 minutes chart
Happy Trading Now 

No comments:

Post a Comment