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



Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:
It automatically opens orders when conditions are reached
Checks for the total of open orders

It Closes Orders by itself

Other Features:

BackTest : EURUSD on H1

From 2009-08-01 to 2009-10-01 Profit Factor:0.00 Total Net Profit:-180.54

BackTest : EURUSD on H1

From 2009-12-01 to 2010-01-17 Profit Factor:0.00 Total Net Profit:-140.00

BackTest : EURUSD on H1

From 2010-03-01 to 2010-03-27 Profit Factor:0.00 Total Net Profit:-80.00

BackTest : EURUSD on H1

From 2010-04-01 to 2010-04-30 Profit Factor:0.00 Total Net Profit:0.00

BackTest : EURUSD on H1

From 2010-05-01 to 2010-05-31 Profit Factor:0.00 Total Net Profit:0.00

BackTest : EURUSD on H1

From 2010-06-01 to 2010-06-30 Profit Factor:0.00 Total Net Profit:0.00

BackTest : GBPUSD on H1

From 2010-01-01 to 2010-02-27 Profit Factor:0.00 Total Net Profit:-161.00

BackTest : USDCAD on H1

From 2009-01-01 to 2010-01-01 Profit Factor:1.33 Total Net Profit:277.97

BackTest : USDCAD on H1

From 2009-12-01 to 2010-01-01 Profit Factor:1.65 Total Net Profit:55.83

BackTest : USDCHF on H1

From 2009-12-01 to 2010-01-01 Profit Factor:0.00 Total Net Profit:-87.70

BackTest : USDJPY on H1

From 2009-11-01 to 2009-11-30 Profit Factor:3.24 Total Net Profit:175.16

Request Backtest for weekly


From : (yyyy/mm/dd) To: (yyyy/mm/dd)

Pair: Period: