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

AUD/USD Oct 2024 - Jan 2025
69.00 %
Total Trades 26
Won Trades 0
Lost trades 0
Win Rate 0.00 %
Expected payoff -2.90
Gross Profit 164.50
Gross Loss -240.00
Total Net Profit -75.50
-100%
-50%
0%
50%
100%
GBP/CAD Oct 2024 - Jan 2025
0.00 %
Total Trades 27
Won Trades 0
Lost trades 0
Win Rate 0.00 %
Expected payoff -7.22
Gross Profit 0.00
Gross Loss -195.05
Total Net Profit -195.05
-100%
-50%
0%
50%
100%
GBP/USD Oct 2024 - Jan 2025
0.00 %
Total Trades 28
Won Trades 0
Lost trades 28
Win Rate 0.00 %
Expected payoff -10.00
Gross Profit 0.00
Gross Loss -280.00
Total Net Profit -280.00
-100%
-50%
0%
50%
100%
weekly
/*
Ñèñòåìà íà íåäåëþ.mq4
© 2003-2006 Mandor ®
E-mail: mandorr@gmail.com
Ðåçóëüòàò ðàáîòû ñîâåòíèêà íå çàâèñèò îò èñïîëüçóåìîãî ïåðèîäà
Âî âòîðíèê â íà÷àëå ÷àñà 2 GMT âûñòàâëÿþòñÿ îòëîæåííûå îðäåðà
Öåíà îòêðûòèÿ îðäåðà Buy Stop ðàâíà òåêóùåé öåíå ïëþñ 50 ïèïñîâ
Öåíà îòêðûòèÿ îðäåðà Sell Stop ðàâíà òåêóùåé öåíå ìèíóñ 50 ïèïñîâ
Ñòîï ëîññ îðäåðîâ Buy Stop è Sell Stop ðàâíî 100 ïèïñîâ
Ïåðåíîñ ñòîï ëîññà íà 30 ïèïñîâ îò òåêóùåé öåíû ïåðåä âàæíûìè íîâîñòÿìè -> ïîêà âðó÷íóþ
Âî ïÿòíèöó â íà÷àëå ÷àñà 21 GMT âñå îðäåðà ðàêðûâàþòñÿ (äëÿ FIBO Groupe Ltd. â íà÷àëå ÷àñà 20 GMT)
UseMM: èñïîëüçîâàòü Money Management
PercentMM: ïðîöåíò îò ñâîáîäíûõ ñðåäñòâ äëÿ âû÷èñëåíèÿ íîâîé ïîçèöèè
MinLots: ìèíèìàëüíî äîïóñòèìûé ðàçìåð ïîçèöèè ó äèëåðà
MinStop: ìèíèìàëüíî äîïóñòèìîå ðàññòîÿíèå îò òåêóùåé öåíû äî îòëîæåííîãî îðäåðà, ñòîï ëîññà èëè òåéê ïðîôèòà ó äèëåðà
ShiftGMT: âðåìÿ äèëåðà ìèíóñ âðåìÿ ïî Ãðèíâè÷ó (äëÿ Alpari = +1, äëÿ FXTeam = +2, äëÿ FIBO = +1, äëÿ LiteForex = +2)
         *********************************************
Åâðî îòêðûòèå â 5.00 ÌÑÊ, çàêðûòèå ïÿòí.21.00,ÒÏ íå ñòàâèòñÿ, ëîññ=100,  
éåíà +9 GMT îòêðûòèå, çàêðûòèå â ïÿòí. 21.00 ÌÑÊ, ÒÏ íå ñòàâèòñÿ, ëîññ-100. 
Âñå îòêðûòèÿ âî âòîðíèê íî÷üþ.
*/

// Parametres
extern int StartDayOfWeek=2;
extern int StartHour=2;
extern int StopDayOfWeek=5;
extern int StopHour=21;
extern int Range=50;
extern int TakeProfit=0;
extern int StopLoss=100;
extern double Lots=0.1;
extern bool UseMM=false;
extern int PercentMM=20;
extern double MinLots=0.1;
extern int MinStop=11;
extern int ShiftGMT=1;


// Variables
int result;
int err;
int i;
int time;
int hour;
int day_of_week;
int set_buy_stop=0;
int set_sell_stop=0;
double range;
double volume;
double price;
double loss;
double profit;


// New quotations are received
void start()
   {
   if (Bars<100 || IsTradeAllowed()==false) return;
   if (Range<=0 || ShiftGMT<-23 || ShiftGMT>23) return;
   if (StartDayOfWeek<1 || StartDayOfWeek>5 || StartHour<=0 || StartHour>23) return;
   if (StopDayOfWeek<1 || StopDayOfWeek>5 || StopHour<=0 || StopHour>23) return;
   time=CurTime()-ShiftGMT*3600;
   hour=TimeHour(time);
   day_of_week=TimeDayOfWeek(time);
   if (day_of_week==StartDayOfWeek && hour==StartHour)
      {
      if (set_buy_stop==0 && TotalBuyStop()==0)
         {
         if (SetBuyStop()>0) {set_buy_stop=1; return;}
         }
      if (set_sell_stop==0 && TotalSellStop()==0)
         {
         if (SetSellStop()>0) {set_sell_stop=1; return;}
         }
      }
   else
      {
      set_buy_stop=0;
      set_sell_stop=0;
      }
   if (day_of_week==StopDayOfWeek && hour==StopHour)
      {
      if (CloseAllOrders()>0) return;
      }
   }


// Set a Buy Stop order
int SetBuyStop()
   {
   result=0;
   volume=LotsCounting();
   if (Range<MinStop) range=MinStop*Point; else range=Range*Point; 
   price=Ask+range;
   loss=0; if (StopLoss>0) loss=price-StopLoss*Point;
   profit=0; if (TakeProfit>0) profit=price+TakeProfit*Point;
   if (OrderSend(Symbol(),OP_BUYSTOP,volume,price,0,loss,profit,"Open by expert",0,0)>0) result=1;
   else {err=GetLastError(); Print("Set a pending order failed with error #",err);}
   return(result);
   }


// Set a Sell Stop order
int SetSellStop()
   {
   result=0;
   volume=LotsCounting();
   if (Range<MinStop) range=MinStop*Point; else range=Range*Point; 
   price=Bid-range;
   loss=0; if (StopLoss>0) loss=price+StopLoss*Point;
   profit=0; if (TakeProfit>0) profit=price-TakeProfit*Point;
   if (OrderSend(Symbol(),OP_SELLSTOP,volume,price,0,loss,profit,"Open by expert",0,0)>0) result=1;
   else {err=GetLastError(); Print("Set a pending order failed with error #",err);}
   return(result);
   }


// Close opened positions & deleting of pending orders
int CloseAllOrders()
   {
   result=0;
   for (i=0;i<OrdersTotal();i++)
      {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderType()==OP_BUY)
         {
         if (OrderClose(OrderTicket(),OrderLots(),Bid,2)) result=1;
         else {err=GetLastError(); Print("Close of opened order failed with error #",err);}
         break;
         }
      if (OrderType()==OP_SELL)
         {
         if (OrderClose(OrderTicket(),OrderLots(),Ask,2)) result=1;
         else {err=GetLastError(); Print("Close of opened order failed with error #",err);}
         break;
         }
      if (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP)
         {
         if (OrderDelete(OrderTicket())) result=1;
         else {err=GetLastError(); Print("Delete of pending order failed with error #",err);}
         break;
         }
      }
   return(result);
   }


// Buy Stop count
int TotalBuyStop()
   {
   result=0;
   for(i=0;i<OrdersTotal();i++)
      {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderType()==OP_BUYSTOP ) result++;
      }
   return(result);
   }


// Sell Stop count
int TotalSellStop()
   {
   result=0;
   for(i=0;i<OrdersTotal();i++)
      {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderType()==OP_SELLSTOP) result++;
      }
   return(result);
   }


// Account lots
double LotsCounting()
   {
   volume=Lots;
   if (UseMM) volume=NormalizeDouble((PercentMM*AccountFreeMargin()/100000),1);
   if (volume<MinLots) volume=MinLots;
   return(volume);
   }


// End

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