Author: mandorr@gmail.com
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself It automatically opens orders when conditions are reached
0 Views
0 Downloads
0 Favorites

Profitability Reports

AUD/USD Oct 2024 - Jan 2025
34.00 %
Total Trades 128
Won Trades 0
Lost trades 0
Win Rate 0.00 %
Expected payoff -3.81
Gross Profit 254.80
Gross Loss -742.00
Total Net Profit -487.20
-100%
-50%
0%
50%
100%
GBP/USD Oct 2024 - Jan 2025
21.00 %
Total Trades 127
Won Trades 117
Lost trades 10
Win Rate 0.92 %
Expected payoff -7.75
Gross Profit 264.60
Gross Loss -1249.30
Total Net Profit -984.70
-100%
-50%
0%
50%
100%
NZD/USD Oct 2024 - Jan 2025
67.00 %
Total Trades 128
Won Trades 119
Lost trades 9
Win Rate 0.93 %
Expected payoff -1.02
Gross Profit 267.40
Gross Loss -397.50
Total Net Profit -130.10
-100%
-50%
0%
50%
100%
Hedge Hog
// Hedge Hog.mq4
// Ñîâåòíèê

/*
 íà÷àëå ÷àñà StartHour îòêðûâàþòñÿ 1 îðäåð BUY è 1 îðäåð SELL
ExpirationDays: âðåìÿ æèçíè îðäåðà â äíÿõ
TimeZoneOfData: âðåìÿ äèëåðà ìèíóñ âðåìÿ ïî Ãðèíâè÷ó (äëÿ Alpari = 1, äëÿ FXTeam = 2, äëÿ FIBO = 1, äëÿ LiteForex = 1)
*/

#property copyright   "mandorr@gmail.com"

extern int StartHour=0;
extern int TimeZone=1;
extern int OrderExpirationDays=2;
extern int TakeProfit=14;
extern int StopLoss=0;
extern double Lots=0.1;

int set_buy=0;
int set_sell=0;

void start()
   {
   if (Bars<100 || IsTradeAllowed()==false) return;
   if (TimeZone<-23 || TimeZone>23) return;
   TestOrderExpirationDays();
   int hour=Hour()-TimeZone;
   if (hour==StartHour)
      {
      if (set_buy ==0 && TotalBuy ()==0) { if (OpenBuy ()>0) {set_buy =1; return;} }
      if (set_sell==0 && TotalSell()==0) { if (OpenSell()>0) {set_sell=1; return;} }
      }
   else
      {
      set_buy=0;
      set_sell=0;
      }
   }

void TestOrderExpirationDays()
   {
   int set_double_buy =0;
   int set_double_sell=0;
   int ticket, slippage;
   double loss, profit;
   for (int i=OrdersTotal()-1; i>=0; i--)
      {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderType()!=OP_BUY && OrderType()!=OP_SELL) continue;
      if (CurTime()-OrderOpenTime()<86400*OrderExpirationDays) continue;
         {
         if (OrderType()==OP_BUY )
            { if (OrderClose(OrderTicket(),OrderLots(),Bid,slippage)) set_double_buy =1; }
         if (OrderType()==OP_SELL)
            { if (OrderClose(OrderTicket(),OrderLots(),Ask,slippage)) set_double_sell=1; }
         }
      }
   if (set_double_buy>0)
      {
      slippage=2;
      loss=0; if (StopLoss>0) loss=Ask-StopLoss*Point;
      profit=0; if (TakeProfit>0) profit=Ask+TakeProfit*Point;
      ticket=OrderSend(Symbol(),OP_BUY,10*Lots,Ask,slippage,loss,profit,"",0,0);
      if (ticket>0) set_buy=0;
      else Print("Open a order failed with error #",GetLastError());
      }
   if (set_double_sell>0)
      {
      slippage=2;
      loss=0; if (StopLoss>0) loss=Bid+StopLoss*Point;
      profit=0; if (TakeProfit>0) profit=Bid-TakeProfit*Point;
      ticket=OrderSend(Symbol(),OP_SELL,10*Lots,Bid,slippage,loss,profit,"",0,0);
      if (ticket>0) set_sell=0;
      else Print("Open a order failed with error #",GetLastError());
      }
   }

int OpenBuy()
   {
   int slippage=2;
   double loss=0; if (StopLoss>0) loss=Ask-StopLoss*Point;
   double profit=0; if (TakeProfit>0) profit=Ask+TakeProfit*Point;
   int ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,slippage,loss,profit,"",0,0);
   if (ticket==0) Print("Open a order failed with error #",GetLastError());
   return (ticket);
   }

int OpenSell()
   {
   int slippage=2;
   double loss=0; if (StopLoss>0) loss=Bid+StopLoss*Point;
   double profit=0; if (TakeProfit>0) profit=Bid-TakeProfit*Point;
   int ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,slippage,loss,profit,"",0,0);
   if (ticket==0) Print("Open a order failed with error #",GetLastError());
   return (ticket);
   }

int TotalBuy()
   {
   int count=0;
   for (int i=0; i<OrdersTotal(); i++)
      {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if (OrderSymbol()==Symbol() && OrderType()==OP_BUY) count++;
      }
   return (count);
   }

int TotalSell()
   {
   int count=0;
   for (int i=0; i<OrdersTotal(); i++)
      {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if (OrderSymbol()==Symbol() && OrderType()==OP_SELL) count++;
      }
   return (count);
   }

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