FT_MultiCandlleSystem4





//+------------------------------------------------------------------+
//|                                        FT_MultiCandlleSystem.mq4 |
//|                            FORTRADER.RU, Þðèé, ftyuriy@gmail.com |
//|                           http://FORTRADER.RU, Candlle+TimeFream |
//+------------------------------------------------------------------+
//Îáñóæäåíèå ñîâåòíèêà: http://fxnow.ru/group_discussion_view.php?group_id=57&grouptopic_id=151
#property copyright "FORTRADER.RU, Þðèé, ftyuriy@gmail.com"
#property link      "http://FORTRADER.RU, Candlle+TimeFream"


//---- input parameters
extern int       GrafOpen=5;
extern int       GrafOpenSize=100;
extern int       GrafOpenEnable=1;
extern int       GrafClose=6;
extern int       GrafCloseSize=100;
extern int       GrafCloseEnable=1;
extern int       GrafMon1=6;
extern int       GrafMon1Size=100;
extern int       GrafMon1Enable=1;
extern int       GrafMon2=7;
extern int       GrafMon2Size=100;
extern int       GrafMon2Enable=1;

extern int       SLTimeFream=7;
extern int       SL=0;

extern int       TPTimeFream=7;
extern int       TP=0;



extern double Lots=0.10;
extern int       mn=1;
extern int MG=564651;
int start()
  { Comment("Àíàëèòè÷åñêèé æóðíàë äëÿ òðåéäåðîâ FORTRADER.Ru");
   op();
   mon();
   return(0);
  }


int op()
{double op,sl,tp; int err,GrafOpenT,GrafMon1T,GrafMon2T,SLTimeFreamT,TPTimeFreamT;


   switch(SLTimeFream)
  {
   case 1: SLTimeFreamT=1;break;
   case 2: SLTimeFreamT=5;break;
   case 3: SLTimeFreamT=15;break;
   case 4: SLTimeFreamT=30;break;
   case 5: SLTimeFreamT=60;break;
   case 6: SLTimeFreamT=240;break;
   case 7: SLTimeFreamT=1440;break;
   default: SLTimeFreamT=1;break;
  }
  
   switch(TPTimeFream)
  {
   case 1: TPTimeFreamT=1;break;
   case 2: TPTimeFreamT=5;break;
   case 3: TPTimeFreamT=15;break;
   case 4: TPTimeFreamT=30;break;
   case 5: TPTimeFreamT=60;break;
   case 6: TPTimeFreamT=240;break;
   case 7: TPTimeFreamT=1440;break;
   default: TPTimeFreamT=1;break;
  }
  
   switch(GrafOpen)
  {
   case 1: GrafOpenT=1;break;
   case 2: GrafOpenT=5;break;
   case 3: GrafOpenT=15;break;
   case 4: GrafOpenT=30;break;
   case 5: GrafOpenT=60;break;
   case 6: GrafOpenT=240;break;
   case 7: GrafOpenT=1440;break;
   default: GrafOpenT=1;break;
  }
  
   switch(GrafMon1)
  {
   case 1: GrafMon1T=1;break;
   case 2: GrafMon1T=5;break;
   case 3: GrafMon1T=15;break;
   case 4: GrafMon1T=30;break;
   case 5: GrafMon1T=60;break;
   case 6: GrafMon1T=240;break;
   case 7: GrafMon1T=1440;break;
   default: GrafMon1T=1;break;
  }
  
  
   switch(GrafMon2)
  {
   case 1: GrafMon2T=1;break;
   case 2: GrafMon2T=5;break;
   case 3: GrafMon2T=15;break;
   case 4: GrafMon2T=30;break;
   case 5: GrafMon2T=60;break;
   case 6: GrafMon2T=240;break;
   case 7: GrafMon2T=1440;break;
   default: GrafMon2T=1;break;
  }

   
 if(
    ((iClose(NULL,GrafMon2T,1)>iOpen(NULL,GrafMon2T,1) && ((iClose(NULL,GrafMon2T,1)-iOpen(NULL,GrafMon2T,1))<GrafMon2Size*Point*mn) && GrafMon2Enable==1) || GrafMon2Enable==0)
    && 
    ((iClose(NULL,GrafMon1T,1)>iOpen(NULL,GrafMon1T,1) && ((iClose(NULL,GrafMon1T,1)-iOpen(NULL,GrafMon1T,1))<GrafMon1Size*Point*mn) && GrafMon1Enable==1) || GrafMon1Enable==0)
    && 
    ((iClose(NULL,GrafOpenT,1)>iOpen(NULL,GrafOpenT,1) && ((iClose(NULL,GrafOpenT,1)-iOpen(NULL,GrafOpenT,1))<GrafOpenSize*Point*mn) && GrafOpenEnable==1) || GrafOpenEnable==0)
    && 
    ChPos(1)==0
   )
   { _OrderClose(0);
   op=Ask;
   if(SL>0){sl=Ask-SL*Point*mn;}else{sl=Ask-MathAbs((iClose(NULL,SLTimeFreamT,1)-iOpen(NULL,SLTimeFreamT,1)));}
   if(TP>0){tp=Ask+TP*Point*mn;}else{tp=Ask+MathAbs((iClose(NULL,TPTimeFreamT,1)-iOpen(NULL,TPTimeFreamT,1)));}
   err=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"5 FORTRADER.RU",MG,0,Red);
   if(err<0){Print("OrderSend()-  Îøèáêà OP_BUY.  op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);}
   }
   
 if(
    ((iClose(NULL,GrafMon2T,1)<iOpen(NULL,GrafMon2T,1) && ((iOpen(NULL,GrafMon2T,1)-iClose(NULL,GrafMon2T,1))<GrafMon2Size*Point*mn) && GrafMon2Enable==1) || GrafMon2Enable==0)
    && 
    ((iClose(NULL,GrafMon1T,1)<iOpen(NULL,GrafMon1T,1) && ((iOpen(NULL,GrafMon1T,1)-iClose(NULL,GrafMon1T,1))<GrafMon1Size*Point*mn) && GrafMon1Enable==1) || GrafMon1Enable==0)
    && 
    ((iClose(NULL,GrafOpenT,1)<iOpen(NULL,GrafOpenT,1) && ((iOpen(NULL,GrafOpenT,1)-iClose(NULL,GrafOpenT,1))<GrafOpenSize*Point*mn) && GrafOpenEnable==1) || GrafOpenEnable==0)
    && 
    ChPos(0)==0
   )
   { _OrderClose(1);
    op=Bid;
    if(SL>0){sl=Bid+SL*Point*mn;}else{sl=Bid+MathAbs((iClose(NULL,SLTimeFreamT,1)-iOpen(NULL,SLTimeFreamT,1)));}
    if(TP>0){tp=Bid-TP*Point*mn;}else{tp=Bid-MathAbs((iClose(NULL,TPTimeFreamT,1)-iOpen(NULL,TPTimeFreamT,1)));}
    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);}
   }


return(0);
}


int mon()
{int GrafCloseT;
  
   switch(GrafClose)
  {
   case 1: GrafCloseT=1;break;
   case 2: GrafCloseT=5;break;
   case 3: GrafCloseT=15;break;
   case 4: GrafCloseT=30;break;
   case 5: GrafCloseT=60;break;
   case 6: GrafCloseT=240;break;
   case 7: GrafCloseT=1440;break;
   default: GrafCloseT=1;break;
  }
  
  
if(
   ChPos(1)==1 && 
   (iClose(NULL,GrafCloseT,1)<iOpen(NULL,GrafCloseT,1) && (iOpen(NULL,GrafCloseT,1)-iClose(NULL,GrafCloseT,1))<GrafCloseSize*Point*mn && GrafCloseEnable==1)
  )
   {
   _OrderClose(1);
   }
   
if(
   ChPos(0)==1 && 
   (iClose(NULL,GrafCloseT,1)>iOpen(NULL,GrafCloseT,1) && (iClose(NULL,GrafCloseT,1)-iOpen(NULL,GrafCloseT,1))<GrafCloseSize*Point*mn && GrafCloseEnable==1)
  )
   {
   _OrderClose(0);
   }

return(0);
}

 //ïðîâåðÿåò åñòü ëè îòêðûòûå îðäåðà
int ChPos(int type) 
{//ïîäðîáíîå îïèñàíèå: http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=100

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



//Çàêðûâàåò ïîçèöþ ïî òèïó
int _OrderClose(int type)
   {//http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=99
   
   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:

Series array that contains open prices of each bar
Series array that contains close prices for each bar


Indicator Curves created:


Indicators Used:



Custom Indicators Used:

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


Other Features:

BackTest : EURUSD on H1

From 2009-08-01 to 2009-10-01 Profit Factor:4.00 Total Net Profit:28.80

BackTest : EURUSD on H1

From 2009-11-01 to 2009-11-30 Profit Factor:0.33 Total Net Profit:-8.00

BackTest : EURUSD on H1

From 2009-12-01 to 2010-01-17 Profit Factor:0.33 Total Net Profit:-10.20

BackTest : EURUSD on H1

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

BackTest : EURUSD on H1

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

BackTest : EURUSD on H1

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

BackTest : EURUSD on H1

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

BackTest : GBPUSD on H1

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

BackTest : GBPUSD on H1

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

BackTest : USDCAD on H1

From 2009-01-01 to 2010-01-01 Profit Factor:1.12 Total Net Profit:9.41

BackTest : USDCAD on H1

From 2009-12-01 to 2010-01-01 Profit Factor:1.03 Total Net Profit:1.80

BackTest : USDCHF on H1

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

BackTest : USDJPY on H1

From 2009-11-01 to 2009-11-30 Profit Factor:0.32 Total Net Profit:-75.41

Request Backtest for FT_MultiCandlleSystem4


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

Pair: Period: