Navigation:Home > Content >

MarketTime.mq4

Time: 2016-06-14 | Download file:MarketTime.mq4

//+------------------------------------------------------------------+
//|                                                   MarketTime.mq4 |
//|                                  Copyright © 2007, GwadaTradeBoy |
//|                                           gwadatradeboy@yahoo.fr |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, GwadaTradeBoy"
#property link      "gwadatradeboy@yahoo.fr"

#property indicator_chart_window

extern int     NumberOfDays = 50;        
extern string  AsiaBegin    = "01:00";   
extern string  AsiaEnd      = "10:00";   
extern color   AsiaColor    = Goldenrod; 
extern string  EurBegin     = "07:00";   
extern string  EurEnd       = "16:00";   
extern color   EurColor     = Tan;       
extern string  USABegin     = "14:00";   
extern string  USAEnd       = "23:00";   
extern color   USAColor     = PaleGreen; 

//----- Variabes
datetime       DateTrade, TimeBeginObject, TimeEndObject;
int            i, BarBegin, BarEnd;
double         PriceHighObject, PriceLowObject;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
   {
//---- indicators
      DeleteObjects();
      for (i=0; i 5) 
               DateTrade = decDateTradeDay(DateTrade);
         }
//----
      return(0);
   }
//+------------------------------------------------------------------+
//----
void CreateObjects(string NameObject, color ColorObject) 
   {
      ObjectCreate(NameObject, OBJ_RECTANGLE, 0, 0, 0, 0, 0);
      ObjectSet(NameObject, OBJPROP_STYLE, STYLE_SOLID);
      ObjectSet(NameObject, OBJPROP_COLOR, ColorObject);
      ObjectSet(NameObject, OBJPROP_BACK, True);
   }

//----
void DeleteObjects() 
   {
      for (i=0; i < NumberOfDays; i++) 
         {
            ObjectDelete("AS"+i);
            ObjectDelete("EU"+i);
            ObjectDelete("US"+i);
         }
   }

//---- 
void DrawObjects(datetime DateTrade, string NameObject, string TimeBegin, string TimeEnd) 
   {
      TimeBeginObject = StrToTime(TimeToStr(DateTrade, TIME_DATE)+" "+TimeBegin);
      TimeEndObject=StrToTime(TimeToStr(DateTrade, TIME_DATE)+" "+TimeEnd);
      BarBegin=iBarShift(NULL, 0, TimeBeginObject);
      BarEnd=iBarShift(NULL, 0, TimeEndObject);
      PriceHighObject = High[iHighest(NULL, 0, MODE_HIGH, BarBegin - BarEnd, BarEnd)];
      PriceLowObject=Low [iLowest (NULL, 0, MODE_LOW , BarBegin - BarEnd, BarEnd)];
      ObjectSet(NameObject, OBJPROP_TIME1 , TimeBeginObject);
      ObjectSet(NameObject, OBJPROP_PRICE1, PriceHighObject);
      ObjectSet(NameObject, OBJPROP_TIME2 , TimeEndObject);
      ObjectSet(NameObject, OBJPROP_PRICE2, PriceLowObject);
   }

//---- 
datetime decDateTradeDay (datetime DateTrade) 
   {
      int ty=TimeYear(DateTrade);
      int tm=TimeMonth(DateTrade);
      int td=TimeDay(DateTrade);
      int th=TimeHour(DateTrade);
      int ti=TimeMinute(DateTrade);

      td--;
      if (td==0) 
         {
            tm--;
            if (tm==0) 
               {
                  ty--;
                  tm=12;
               }
            if (tm==1 || tm==3 || tm==5 || tm==7 || tm==8 || tm==10 || tm==12) 
               td=31;
            if (tm==2) 
               if (MathMod(ty, 4)==0) 
                  td=29; 
               else 
                  td=28;
            if (tm==4 || tm==6 || tm==9 || tm==11) 
               td=30;
         }
//----   
      return(StrToTime(ty+"."+tm+"."+td+" "+th+":"+ti));
   }

Recommend