Volume_trader_v2

Price Data Components
Series array that contains open time of each bar
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself It automatically opens orders when conditions are reached
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites

Profitability Reports

AUD/USD Oct 2024 - Jan 2025
100.00 %
Total Trades 429
Won Trades 0
Lost trades 0
Win Rate 0.00 %
Expected payoff 0.00
Gross Profit 1747.00
Gross Loss -1746.10
Total Net Profit 0.90
-100%
-50%
0%
50%
100%
GBP/CAD Oct 2024 - Jan 2025
12.00 %
Total Trades 396
Won Trades 0
Lost trades 0
Win Rate 0.00 %
Expected payoff -16.76
Gross Profit 875.45
Gross Loss -7511.10
Total Net Profit -6635.65
-100%
-50%
0%
50%
100%
GBP/USD Oct 2024 - Jan 2025
91.00 %
Total Trades 435
Won Trades 201
Lost trades 234
Win Rate 0.46 %
Expected payoff -0.65
Gross Profit 2973.00
Gross Loss -3253.60
Total Net Profit -280.60
-100%
-50%
0%
50%
100%
Volume_trader_v2
/*-----------------------------+
|			       |
| Shared by www.Aptrafx.com    |
|			       |
+------------------------------*/

// Developed by www.forex-tsd.com
// Idea from John Taylor
// v.2.0
#include <stdlib.mqh>

#define MySuperMagic 111020051110
extern int StartHour = 8;
extern int EndHour   = 20;
extern double Lots  = 0.1;


double LastBarChecked;

int init()
  {
//---- 
  LastBarChecked = Time[0]; 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }




//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   string cm = "Volume ";
   if (Period() == 1) cm = cm + "1M";
   if (Period() == 5) cm = cm + "5M";
   if (Period() == 15) cm = cm + "15M";
   if (Period() == 30) cm = cm + "30M";
   if (Period() == 60) cm = cm + "1H";
   if (Period() == 240) cm = cm + "4H";
   if (Period() == 1440) cm = cm + "1D";
   if (Period() == 10080) cm = cm + "1W";
   if (Period() == 43200) cm = cm + "1M";
   cm = cm + " - ";
   cm = cm + TimeToStr(CurTime(),TIME_DATE|TIME_SECONDS); 
   int EAMagic = MySuperMagic + Period();
   //------------------------------------------------------------------------------------------------ 
   bool doShort = false;
   bool doLong  = false;
   
   bool hourValid = (Hour() >= StartHour) && (Hour() <= EndHour);
   if ( (Volume[1] < Volume[2]) && hourValid ) 
   {
      doLong = true;
      Comment("Up trend");
   }
   if ( (Volume[1] > Volume[2]) && hourValid ) 
   {
      doShort = true;
      Comment("Down trend");
   }
   if ( Volume[1] == Volume[2] )
   {
      Comment("No trend...");
   }
   if(LastBarChecked != Time[0])
   {
      int cnt = 0;
      while (cnt<OrdersTotal()) 
      {
         if ( OrderSelect (cnt, SELECT_BY_POS) == false )  continue;
         if ( OrderSymbol()==Symbol() && OrderMagicNumber()==EAMagic)
         {
            int ticket = OrderTicket();
            double oLots = OrderLots(); 
            double priceClose;
            if (OrderType() == OP_BUY)
            {
                 priceClose = Bid;
                 if ( doLong ) 
                 {
                      LastBarChecked = Time[0];
                      return(0);
                 }
            }
            else
            {
                 priceClose = Ask; 
                 if ( doShort ) 
                 {
                      LastBarChecked = Time[0];
                      return(0);
                 }                 
            }
            if(!OrderClose(ticket,oLots,priceClose,7,Red))
            {
               Alert("Error closing trade: " + ErrorDescription(GetLastError()));                
               return(0);
            }
         }
         else
         {
            cnt ++;
         }
      }

      if (hourValid)
      {
         if ( Volume[1] < Volume[2] ) 
         {
         OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,cm,EAMagic,0,White);     
         }
         if ( Volume[1] > Volume[2] )
         {
         OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,cm,EAMagic,0,Red);
         }      
      }
      LastBarChecked = Time[0];
   }
   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 ---