FT_MultiCandlleSystem4

Author: FORTRADER.RU, ����, ftyuriy@gmail.com
Profit factor:
0.20
Price Data Components
Series array that contains open prices of each barSeries array that contains close prices for each bar
Orders Execution
It Closes Orders by itself It automatically opens orders when conditions are reachedChecks for the total of open orders
1 Views
0 Downloads
0 Favorites
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);
   }
   

Profitability Reports

USD/CAD Oct 2024 - Jan 2025
0.14
Total Trades 591
Won Trades 35
Lost trades 556
Win Rate 5.92 %
Expected payoff -1.13
Gross Profit 112.82
Gross Loss -780.41
Total Net Profit -667.59
-100%
-50%
0%
50%
100%
NZD/USD Oct 2024 - Jan 2025
0.06
Total Trades 435
Won Trades 16
Lost trades 419
Win Rate 3.68 %
Expected payoff -3.49
Gross Profit 89.00
Gross Loss -1605.20
Total Net Profit -1516.20
-100%
-50%
0%
50%
100%
GBP/USD Oct 2024 - Jan 2025
0.09
Total Trades 19
Won Trades 2
Lost trades 17
Win Rate 10.53 %
Expected payoff -5.98
Gross Profit 11.60
Gross Loss -125.30
Total Net Profit -113.70
-100%
-50%
0%
50%
100%
AUD/USD Oct 2024 - Jan 2025
0.51
Total Trades 116
Won Trades 0
Lost trades 0
Win Rate 0.00 %
Expected payoff -1.52
Gross Profit 186.40
Gross Loss -362.70
Total Net Profit -176.30
-100%
-50%
0%
50%
100%

Comments