Author: FORTRADER.RU, ����, ftyuriy@gmail.com
Orders Execution
Checks for the total of open ordersIt automatically opens orders when conditions are reachedIt can change open orders parameters, due to possible stepping strategyIt Closes Orders by itself
0 Views
0 Downloads
0 Favorites

Profitability Reports

GBP/USD Oct 2024 - Jan 2025
0.00 %
Total Trades 0
Won Trades 0
Lost trades 0
Win Rate 0.0 %
Expected payoff 0.00
Gross Profit 0.00
Gross Loss 0.00
Total Net Profit 0.00
-100%
-50%
0%
50%
100%
NZD/USD Oct 2024 - Jan 2025
7.00 %
Total Trades 13
Won Trades 4
Lost trades 9
Win Rate 0.31 %
Expected payoff -70.46
Gross Profit 70.60
Gross Loss -986.52
Total Net Profit -915.92
-100%
-50%
0%
50%
100%
HlopMaster
//+------------------------------------------------------------------+
//|                                                                  |
//|  FOREXSYSTEMS.RU, FXNOW.RU, FORTRADER.RU Þðèé, ftyuriy@gmail.com |
//|                                http://FORTRADER.RU, Price        |
//+------------------------------------------------------------------+
// ÑÎÂÅÒÍÈÊ ÄËß 46 ÂÛÏÓÑÊÀ ÆÓÐÍÀËÀ FORTRADER.RU
// ÑÑÛËÊÀ ÍÀ ÂÛÏÓÑÊ: http://www.fortrader.ru/ftgate.php?id=0&NUM=46
// ÑÑÛËÊÀ ÍÀ ÎÁÑÓÆÄÅÍÈÅ 

#property copyright "FORTRADER.RU, Þðèé, ftyuriy@gmail.com"
#property link      "http://FORTRADER.RU, Price"

extern int pips=25;
extern int profitpips=25;
extern double Lots=0.01;

extern int time=0; //1 - âêëþ÷åíî, 0 - âûêëþ÷åíî.
extern int starttime = 7; 
extern int stoptime = 17; 


//Îïèñàíèå ôóíêöèè: http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=1
int timecontrol()
{
   if ( ( (Hour()>=0 && Hour()<=stoptime-1) ||  (Hour()>=starttime && Hour()<=23)) && starttime>stoptime)
      {
      return(1);
      }  
      if ( (Hour()>=starttime && Hour()<=stoptime-1) && starttime<stoptime)
      {
      return(1);
      }  
      
   if(time==0){ return(1);}
     
return(0);
}

int SL=0;
int TP=0;

int err;
int start()
  {
   if(timecontrol()==1)
   {
   if(OrdersTotal()<1){err=OpenNewOrders();}
   if(OrdersTotal()>0){TrailStopOrders();}
   
   if(CountPos(0)==0 && CountPos(1)==0 && ChStopPosLimitSumm()<2){
   _DeleteOrder();
   }

   if(GetMaxLot()==GetMaxLotOrder()){
   ChangeOrder(GetMaxLot()*2);
   }

   if(ChStopPosLimitSumm()<1){
   DopOrder(GetMaxLot()*2);
   }
  
   err=CloseManager();
}
   return(0);
  }

double op,sl,tp;
int OpenNewOrders()
{int err;

   op=Ask-pips*Point;if(SL>0){sl=Ask;}else{sl=0;}if(TP>0){tp=op-TP*Point;}else{tp=0;}
   err=OrderSend(Symbol(),OP_SELLSTOP,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"46 FORTRADER.RU",0,0,Red);
   if(err<0){Print("OrderSend()-  Îøèáêà OP_SELLSTOP.  op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);}

   op=Bid+pips*Point;if(SL>0){sl=Bid;}else{sl=0;}if(TP>0){tp=op+TP*Point;}else{tp=0;}
   err=OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"46 FORTRADER.RU",0,0,Red);
   if(err<0){Print("OrderSend()-  Îøèáêà OP_BUYSTOP.  op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);}


return(err);
}

//Îïèñàíèå ôóíêöèè: http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=65
int TrailStopOrders()
{int i;bool err;
 for( i=1; i<=OrdersTotal(); i++)
 {
   if(OrderSelect(i-1,SELECT_BY_POS)==true)
   {  
      if( OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol() && (OrderOpenPrice()-Bid)>pips*Point )
      {                
       Print("ÒÐÅÉËÈÌ");
       err=OrderModify(OrderTicket(),Bid+pips*Point,OrderStopLoss(),OrderTakeProfit(),0,Green);
          if(err==false){return(-1);}
       }//if( OrderType()==OP_BUYSTOP
   }//if(OrderSelect(i-1,SEL
   if(OrderSelect(i-1,SELECT_BY_POS)==true)
   {
      if(OrderType()==OP_SELLSTOP && OrderSymbol()==Symbol() && (Ask-OrderOpenPrice())>pips*Point)  
      {        
       Print("ÒÐÅÉËÈÌ");
       err=OrderModify(OrderTicket(),Ask-pips*Point,OrderStopLoss(),OrderTakeProfit(),0,Green);
       if(err==false){return(-1);}
       }//if(OrderType()==OP_SELLSTOP 
    }//if(OrderSelect(i-1,
 }// for( i=1; i<=O
   return(0);
}


//Îïèñàíèå ôóíêöèè: http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=66
int CountPos(int type) 
{int i,b,s;
   for( i=1; i<=OrdersTotal(); i++)         
   {
      if(OrderSelect(i-1,SELECT_BY_POS)==true) 
       {                                   
           if(OrderType()==OP_BUY && OrderSymbol()==Symbol()){b=b+1;}
           if(OrderType()==OP_SELL && OrderSymbol()==Symbol()){s=s+1;}
       }
    }   
    if(type==0){return(s);}
    if(type==1){return(b);}
}



//Îïèñàíèå ôóíêöèè: http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=67
int ChStopPosLimitSumm() 
{int i,z;
   for( i=1; i<=OrdersTotal(); i++)         
   {
      if(OrderSelect(i-1,SELECT_BY_POS)==true) 
       {                                   
           if(OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP ){z=z+1;}
       }
    }   
return(z);
}

//Îïèñàíèå ôóíêöèè: http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=68
int _DeleteOrder()
{
   for( int i=1; i<=OrdersTotal(); i++)          
   {
    if(OrderSelect(i-1,SELECT_BY_POS)==true) 
    {                                       
     if(OrderType()==OP_SELLSTOP && OrderSymbol()==Symbol() )
     {
      OrderDelete(OrderTicket()); 
     }//if
  
    if(OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol() )
     {
      OrderDelete(OrderTicket()); 
     }//if
    }//if
   }
   return(0);
}  

int CloseManager()
{int err;

double maxlot=GetMaxLot();

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


//Îïèñàíèå ôóíêöèè: http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=69
double GetMaxLot() 
{int i;double maxlot;
   for( i=1; i<=OrdersTotal(); i++)         
   {
      if(OrderSelect(i-1,SELECT_BY_POS)==true) 
       {                                   
           if((OrderType()==OP_BUY ||OrderType()==OP_SELL)  && OrderSymbol()==Symbol() && maxlot<OrderLots()){maxlot=OrderLots();}
       }
    }   
return(maxlot);
}

//Îïèñàíèå ôóíêöèè: http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=70
double GetMaxLotOrder() 
{int i;double maxlot;
   for( i=1; i<=OrdersTotal(); i++)         
   {
      if(OrderSelect(i-1,SELECT_BY_POS)==true) 
       {                                   
           if((OrderType()==OP_BUYSTOP ||OrderType()==OP_SELLSTOP)  && OrderSymbol()==Symbol() && maxlot<OrderLots()){maxlot=OrderLots();}
       }
    }   
return(maxlot);
}

int ChangeOrder(double Lots)
{_DeleteOrder();/*
int type=GetLastTypePos();
   if(type==1){
     op=Bid+pips*Point;if(SL>0){sl=Bid;}else{sl=0;}if(TP>0){tp=op+TP*Point;}else{tp=0;}
     err=OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"FORTRADER.RU",0,0,Red);
     if(err<0){Print("OrderSend()-  Îøèáêà OP_BUYSTOP.  op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);}
   }
   if(type==0){
      op=Ask-pips*Point;if(SL>0){sl=Ask;}else{sl=0;}if(TP>0){tp=op-TP*Point;}else{tp=0;}
      err=OrderSend(Symbol(),OP_SELLSTOP,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"FORTRADER.RU",0,0,Red);
      if(err<0){Print("OrderSend()-  Îøèáêà OP_SELLSTOP.  op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);}
   }*/

}

//Îïèñàíèå ôóíêöèè: http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=71
int GetLastTypePos()
{
   int i;datetime dt;int type;
      for( i=1; i<=OrdersTotal(); i++)         
      {
         if(OrderSelect(i-1,SELECT_BY_POS)==true) 
          {                                   
              if((OrderType()==OP_BUY ||OrderType()==OP_SELL)  && OrderSymbol()==Symbol() && dt<OrderOpenTime()){dt=OrderOpenTime();type=OrderType();}
          }
       }   
   return(type);
}

int DopOrder(double Lots)
{
int type=GetLastTypePos();
   if(type==1){
     op=Bid+pips*Point;if(SL>0){sl=Bid;}else{sl=0;}if(TP>0){tp=op+TP*Point;}else{tp=0;}
     err=OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"FORTRADER.RU",0,0,Red);
     if(err<0){Print("OrderSend()-  Îøèáêà OP_BUYSTOP.  op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);}
   }
   if(type==0){
      op=Ask-pips*Point;if(SL>0){sl=Ask;}else{sl=0;}if(TP>0){tp=op-TP*Point;}else{tp=0;}
      err=OrderSend(Symbol(),OP_SELLSTOP,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"FORTRADER.RU",0,0,Red);
      if(err<0){Print("OrderSend()-  Îøèáêà OP_SELLSTOP.  op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);}
   }
return(0);
}

//îïèñàíèå ôóíêöèè: http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=72
int CloseAllPos(int type)
{  int buy=1; int sell=1;
int i,b=0;int ordertiket;
 
 if(type==1)
   {
   while(buy==1)
     {
        buy=0;
        for( i=0;i<OrdersTotal();i++)
         {
           if(true==OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
           {
           if(OrderType()==OP_BUY && OrderSymbol()==Symbol() ){buy=1; OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);}
           }else{buy=0;}
         }  
         if(buy==0){return(0);}
      } 
   }
   
   if(type==0)
   {
      while(sell==1)
     {
        sell=0;
        for( i=0;i<OrdersTotal();i++)
         {
           if(true==OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
           {
           if(OrderType()==OP_SELL && OrderSymbol()==Symbol() ){sell=1;OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); }
           }else{sell=0;}
         }  
         
        if(sell==0){return(0);}
      } 
     }
   return(0);
   }
   
//Îïèñàíèå ôóíêöèè: http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=73
double   SummProfit()
{
   int i;double profit;
      for( i=1; i<=OrdersTotal(); i++)         
      {
         if(OrderSelect(i-1,SELECT_BY_POS)==true) 
          {                                   
              if((OrderType()==OP_BUY ||OrderType()==OP_SELL)  && OrderSymbol()==Symbol()){profit=profit+OrderProfit();}
          }
       }   
   return(profit);
}

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