20_200 expert_v2

Author: Smirnov Pavel
Price Data Components
Series array that contains open time of each bar
Orders Execution
It automatically opens orders when conditions are reachedChecks for the total of open ordersIt Closes Orders by itself
0 Views
0 Downloads
0 Favorites

Profitability Reports

GBP/USD Oct 2024 - Jan 2025
56.00 %
Total Trades 66
Won Trades 0
Lost trades 0
Win Rate 0.00 %
Expected payoff -1.33
Gross Profit 112.00
Gross Loss -200.00
Total Net Profit -88.00
-100%
-50%
0%
50%
100%
NZD/USD Oct 2024 - Jan 2025
27.00 %
Total Trades 63
Won Trades 46
Lost trades 17
Win Rate 0.73 %
Expected payoff -3.94
Gross Profit 92.00
Gross Loss -340.00
Total Net Profit -248.00
-100%
-50%
0%
50%
100%
20_200 expert_v2
//+------------------------------------------------------------------+
//|                                            20/200 expert v2.mq4  |
//|                                                    1H   EUR/USD  |
//|                                                    Smirnov Pavel |
//|                                                 www.autoforex.ru |
//+------------------------------------------------------------------+

#property copyright "Smirnov Pavel"
#property link      "www.autoforex.ru"

extern int TakeProfit = 20; // Óðîâåíü òåéêïðîôèò â ïóíêòàõ
extern int StopLoss = 200; // óðîâåíü ñòîïëîññ â ïóíêòàõ
extern int TradeTime=18;
extern int t1=7;
extern int t2=2;
extern int delta=7;
extern double lot = 0.1;
extern int Orders=1;
extern int MaxOpenTime=10000;

int ticket,total,cnt;
bool cantrade=true;
double closeprice;
double tmp;

int OpenLong(double volume=0.1)
{
  int slippage=10;
  string comment="20/200 expert v2 (Long)";
  color arrow_color=Red;
  int magic=0;

  ticket=OrderSend(Symbol(),OP_BUY,volume,Ask,slippage,Ask-StopLoss*Point,
                      Ask+TakeProfit*Point,comment,magic,0,arrow_color);
  if(ticket>0)
  {
    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
    {
      return(0);
    }
    else
      {
        Print("OpenLong(),OrderSelect() - âûäàë îøèáêó : ",GetLastError()); 
        return(-1);
      }   
  }
  else 
  {
    Print("Error opening Buy order : ",GetLastError()); 
    return(-1);
  }
}
  
int OpenShort(double volume=0.1)
{
  int slippage=10;
  string comment="20/200 expert v2 (Short)";
  color arrow_color=Red;
  int magic=0;  
  
  ticket=OrderSend(Symbol(),OP_SELL,volume,Bid,slippage,Bid+StopLoss*Point,
                      Bid-TakeProfit*Point,comment,magic,0,arrow_color);
  if(ticket>0)
  {
    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      {
        return(0);
      }
    else
      {
        Print("OpenShort(),OrderSelect() - âûäàë îøèáêó : ",GetLastError()); 
        return(-1);
      }    
  }
  else 
  {
    Print("Error opening Sell order : ",GetLastError()); 
    return(-1);
  }
}

int init()
{
  return(0);
}

int deinit()
{   
  return(0);
}

int start()
{
  if((TimeHour(TimeCurrent())>TradeTime)) cantrade=true;  
  // ïðîâåðÿåì åñòü ëè îòêðûòûå îðäåðà ...
  total=OrdersTotal();
  if(total<Orders)
  {
    // ... åñëè íåò íè îäíîãî îòêðûòîãî îðäåðà, òî èäåì äàëüøå
    // ïðîâåðÿåì íàñòàëî ëè âðåìÿ äëÿ òîðãîâëè
    if((TimeHour(TimeCurrent())==TradeTime)&&(cantrade))
    {
      // ... åñëè íàñòàëî âðåìÿ, òî
      if ((Open[t1]-Open[t2])>delta*Point) //Åñëè öåíà èçìåíèëàñü íà âåëè÷èíó delta
      {
        //óñëîâèå âûïîëíåíî çíà÷èò âõîäèì â êîðîòêóþ ïîçèöèþ:
        // ïðîâåðÿåì åñòü ëè ñâîáîäíûå äåíüãè äëÿ îòêðûòèÿ êîðîòêîé ïîçèöèè
        if(AccountFreeMarginCheck(Symbol(),OP_SELL,lot)<=0 || GetLastError()==134)
        {
          Print("Not enough money");
          return(0);
        }
        OpenShort(lot);
        cantrade=false; //çàïðåùàåì òîðãîâàòü ïîâòîðíî äî ñëåäóþùåãî áàðà
        return(0);
      }
      if ((Open[t2]-Open[t1])>delta*Point) //Åñëè öåíà èçìåíèëàñü íà âåëè÷èíó delta
      {
        // óñëîâèå âûïîëíåíî çíà÷èò âõîäèì â äëèííóþ ïîçèöèþ
        // ïðîâåðÿåì åñòü ëè ñâîáîäíûå äåíüãè íà ñ÷åòó
        if(AccountFreeMarginCheck(Symbol(),OP_BUY,lot)<=0 || GetLastError()==134)
        {
          Print("Not enough money");
          return(0);
        }
        OpenLong(lot);
        cantrade=false;
        return(0);
      }
    }
  }
// áëîê ïðîâåðêè âðåìåíè æèçíè ñäåëêè, åñëè Í=0, òî íå ïðîâîäèì ïðîâåðêó.
  if(MaxOpenTime>0)
  {
    for(cnt=0;cnt<total;cnt++)
    {
      if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
      {
         tmp = (TimeCurrent()-OrderOpenTime())/3600.0;
         if ((NormalizeDouble(tmp,8)-MaxOpenTime)>=0)
        {     
          RefreshRates();
          if (OrderType()==OP_BUY)
            closeprice=Bid;
          else  
            closeprice=Ask;          
          if (OrderClose(OrderTicket(),OrderLots(),closeprice,10,Green))
          {
            Print("Ïðèíóäèòåëüíîå çàêðûòèå ñäåëêè - ¹",OrderTicket());
            OrderPrint();
          }
          else 
            Print("OrderSelect() â áëîêå ïðîâåðêè âðåìåíè æèçíè ñäåëêè âåðíóë îøèáêó - ",GetLastError());        
        } 
      }
      else 
        Print("OrderSelect() â áëîêå ïðîâåðêè âðåìåíè æèçíè ñäåëêè âåðíóë îøèáêó - ",GetLastError());
    } 
  }     
  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 ---