_FT_MACD_MA





//+------------------------------------------------------------------+
//|                                                FT_Fractal_MA.mq4 |
//|                            FORTRADER.RU, Þðèé, ftyuriy@gmail.com |
//|                          http://FORTRADER.RU, MACD     + Ñðåäíèå |
//+------------------------------------------------------------------+
#property copyright "FORTRADER.RU, Þðèé, ftyuriy@gmail.com"
#property link      "http://FORTRADER.RU, MACD + Ñðåäíèå"

/*Ðàçðàáîòàíî äëÿ 49 âûïóñêà æóðíàëà FORTRADER.Ru. Ñèñòåìà ïî ñðåäíåé è MACD. 
Îò÷åòû: http://finfile.ru/index.php/files/get/QUovk3TMmJ/macd-ma1.zip
Ñåò ôàéëû: http://finfile.ru/index.php/files/get/K_8zE0WRLK/eurusd15m.set
Îáñóæäåíèå: http://fxnow.ru/group_discussion_view.php?group_id=49&grouptopic_id=267&grouppost_id=2668
Àðõèâ æóðíàëà: http://www.fortrader.ru/arhiv.php
49 âûïóñê: http://www.fortrader.ru/
*/

extern int fast_ema_period = 12; //   Ïåðèîä óñðåäíåíèÿ äëÿ âû÷èñëåíèÿ áûñòðîé ñêîëüçÿùåé ñðåäíåé. 
extern int slow_ema_period = 26; //   Ïåðèîä óñðåäíåíèÿ äëÿ âû÷èñëåíèÿ ìåäëåííîé ñêîëüçÿùåé ñðåäíåé. 

extern int lwmaper1=4;
extern int lwmaper2=8;


 int SL=150;
 int TP=150;
extern int mn=1;
int err;
extern int MG=564651;
extern double Lots=0.01;
extern int maxpos=1;

int bars;
int start()
{
  if(bars!=Bars)
  {   
      bars=Bars;
      OpenPattern();
      Manager();
  }
return(0);
}

int okbuy,oksell;

int OpenPattern()
  {
  double op,sl,tp;
  
  double macd=iMACD(NULL,0,fast_ema_period,slow_ema_period,9,PRICE_CLOSE,MODE_MAIN,1);
  double macdlast=iMACD(NULL,0,fast_ema_period,slow_ema_period,9,PRICE_CLOSE,MODE_MAIN,2);
  
  double lwma1=iMA(NULL,0,lwmaper1,0,MODE_LWMA,PRICE_CLOSE,1);
  double lwma2=iMA(NULL,0,lwmaper2,0,MODE_LWMA,PRICE_CLOSE,1);
  double lwma1Last=iMA(NULL,0,lwmaper1,0,MODE_LWMA,PRICE_CLOSE,2);
  double lwma2Last=iMA(NULL,0,lwmaper2,0,MODE_LWMA,PRICE_CLOSE,2);

  if(macd<macdlast && lwma1Last>lwma2Last && CountPos(0)<maxpos )
  {
   op=Bid;if(SL>0){sl=0;}if(TP>0){tp=0;}
   err=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"4 FORTRADER.RU",MG,0,Red);
   if(err<0){Print("OrderSend()-  Îøèáêà OP_SELL.  op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);}
   oksell=0;
  }
  
  if(macd>macdlast && lwma1>lwma2 && lwma1Last<lwma2Last && CountPos(1)<maxpos )
  {
   op=Ask;if(SL>0){sl=0;}if(TP>0){tp=0;}
   err=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"6 FORTRADER.RU",MG,0,Red);
   if(err<0){Print("OrderSend()-  Îøèáêà OP_BUY.  op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);}
   okbuy=0;
  }
  
 return(err);
 }
  
//Ïðîâåðÿåì êîëè÷åñâòî ïîçèöèé.
int CountPos(int type) 
{//Îïèñàíèå http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=66

int i;
int col;
int count=0 ;
for( i=0; i<=OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS)==true)
{
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && type==1 && OrderMagicNumber()==MG ){count++;}
if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && type==0 && OrderMagicNumber()==MG ){count++;}
}
} 
return(count);
}



int Manager()
{
  double macd=iMACD(NULL,0,fast_ema_period,slow_ema_period,9,PRICE_CLOSE,MODE_MAIN,1);
  double macdlast=iMACD(NULL,0,fast_ema_period,slow_ema_period,9,PRICE_CLOSE,MODE_MAIN,2);
  if(macd<macdlast){_OrderClose(1);}
  if(macd>macdlast){_OrderClose(0);}
}

int _OrderClose(int type)
   {int err;

   for(int i=1; i<=OrdersTotal(); i++)          
     {
      if (OrderSelect(i-1,SELECT_BY_POS)==true) 
        {
         if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && type==1 && OrderMagicNumber()==MG )
         {
          err=OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); 
          if(err<0){Print("OrderClose()-  Îøèáêà çàêðûòèÿ OP_BUY.  OrderTicket "+OrderTicket()+" OrderLots() "+OrderLots()+" Bid "+Bid+" "+GetLastError());return(-1);}
         }
         if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && type==0 && OrderMagicNumber()==MG  )
         {
          err=OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); 
          if(err<0){Print("OrderClose()-  Îøèáêà çàêðûòèÿ OP_SELL.  OrderTicket "+OrderTicket()+" OrderLots() "+OrderLots()+" Ask "+Ask+" "+GetLastError());return(-1);}
         }
        }
       }
   return(0);
   }
   





Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:

MACD Histogram
Moving average indicator


Custom Indicators Used:

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

It Closes Orders by itself

Other Features:

BackTest : EURUSD on H1

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

BackTest : EURUSD on H1

From 2009-12-01 to 2010-01-17 Profit Factor:0.80 Total Net Profit:-28.21

BackTest : USDCAD on H1

From 2009-12-01 to 2010-01-01 Profit Factor:0.92 Total Net Profit:-7.08

BackTest : EURUSD on H1

From 2009-08-01 to 2009-10-01 Profit Factor:0.65 Total Net Profit:-66.56

BackTest : GBPUSD on H1

From 2010-01-01 to 2010-02-27 Profit Factor:0.41 Total Net Profit:-182.92

BackTest : USDCAD on H1

From 2009-01-01 to 2010-01-01 Profit Factor:0.54 Total Net Profit:-810.73

BackTest : EURUSD on H1

From 2010-03-01 to 2010-03-27 Profit Factor:0.92 Total Net Profit:-6.64

BackTest : GBPUSD on H1

From 2010-01-01 to 2010-04-16 Profit Factor:0.17 Total Net Profit:-792.53

BackTest : EURUSD on H1

From 2010-04-01 to 2010-04-30 Profit Factor:0.77 Total Net Profit:-24.52

BackTest : EURUSD on H1

From 2010-05-01 to 2010-05-31 Profit Factor:1.58 Total Net Profit:68.06

BackTest : EURUSD on H1

From 2010-06-01 to 2010-06-30 Profit Factor:1.40 Total Net Profit:37.11

Request Backtest for _FT_MACD_MA


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

Pair: Period: