FT_MultiCandlleSystem4

Author: FORTRADER.RU, ����, ftyuriy@gmail.com
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
0 Views
0 Downloads
0 Favorites

Profitability Reports

AUD/USD Oct 2024 - Jan 2025
51.00 %
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%
GBP/USD Oct 2024 - Jan 2025
9.00 %
Total Trades 19
Won Trades 2
Lost trades 17
Win Rate 0.11 %
Expected payoff -5.98
Gross Profit 11.60
Gross Loss -125.30
Total Net Profit -113.70
-100%
-50%
0%
50%
100%
NZD/USD Oct 2024 - Jan 2025
6.00 %
Total Trades 435
Won Trades 16
Lost trades 419
Win Rate 0.04 %
Expected payoff -3.49
Gross Profit 89.00
Gross Loss -1605.20
Total Net Profit -1516.20
-100%
-50%
0%
50%
100%
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);
   }
   

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