//+------------------------------------------------------------------+ //| times.mq4 | //| | //| Made/Modified by sh _j . | //| | //| tweaked by Accrete to generalize session names/code and add | //| a fourth session box www.accrete.com | //+------------------------------------------------------------------+ #property copyright "Morning Star" #property link "http://Grand Forex.ir" #property indicator_chart_window extern int NumberOfDays = 50; extern string Session1start = "00:00"; extern string Session1end = "08:59"; extern color Session1color = DimGray; extern string Session2start = "09:00"; extern string Session2end = "09:59"; extern color Session2color = DodgerBlue;//DarkGray extern string Session3start = "10:00"; extern string Session3end = "11:59"; extern color Session3color = DodgerBlue; extern string Session4start = "14:00"; extern string Session4end = "14:59"; extern color Session4color = DarkGray; extern string Session5start = "15:00"; extern string Session5end = "18:59"; extern color Session5color = DarkGray; extern string Session6start = "23:00";//last hour of NY session extern string Session6end = "23:59"; extern color Session6color = DimGray; //+------------------------------------------------------------------+ //| CSession3tom indicator initialization function | //+------------------------------------------------------------------+ void init() { DeleteObjects(); for (int i=0; i<NumberOfDays; i++) { CreateObjects("Session1"+i, Session1color); CreateObjects("Session2"+i, Session2color); CreateObjects("Session3"+i, Session3color); CreateObjects("Session4"+i, Session4color); CreateObjects("Session5"+i, Session5color); CreateObjects("Session6"+i, Session6color); } Comment(""); } //+------------------------------------------------------------------+ //| CSession3tor indicator deinitialization function | //+------------------------------------------------------------------+ void deinit() { DeleteObjects(); Comment(""); } void CreateObjects(string no, color cl) { ObjectCreate(no, OBJ_RECTANGLE, 0, 0,0, 0,0); ObjectSet(no, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(no, OBJPROP_COLOR, cl); ObjectSet(no, OBJPROP_BACK, True); } //+------------------------------------------------------------------+ //| Óäàëåíèå îáúåêòîâ èíäèêàòîðà | //+------------------------------------------------------------------+ void DeleteObjects() { for (int i=0; i<NumberOfDays; i++) { ObjectDelete("Session1"+i); ObjectDelete("Session2"+i); ObjectDelete("Session3"+i); ObjectDelete("Session4"+i); ObjectDelete("Session5"+i); ObjectDelete("Session6"+i); } } //+------------------------------------------------------------------+ //| CSession3tom indicator iteration function | //+------------------------------------------------------------------+ void start() { datetime dt=CurTime(); for (int i=0; i<NumberOfDays; i++) { DrawObjects(dt, "Session1"+i, Session1start, Session1end); DrawObjects(dt, "Session2"+i, Session2start, Session2end); DrawObjects(dt, "Session3"+i, Session3start, Session3end); DrawObjects(dt, "Session4"+i, Session4start, Session4end); DrawObjects(dt, "Session5"+i, Session5start, Session5end); DrawObjects(dt, "Session6"+i, Session6start, Session6end); dt=decDateTradeDay(dt); while (TimeDayOfWeek(dt)>5) dt=decDateTradeDay(dt); } } void DrawObjects(datetime dt, string no, string tb, string te) { datetime t1, t2; double p1, p2; int b1, b2; t1=StrToTime(TimeToStr(dt, TIME_DATE)+" "+tb); t2=StrToTime(TimeToStr(dt, TIME_DATE)+" "+te); b1=iBarShift(NULL, 0, t1); b2=iBarShift(NULL, 0, t2); p1=High[Highest(NULL, 0, MODE_HIGH, b1-b2, b2)]; p2=Low [Lowest (NULL, 0, MODE_LOW , b1-b2, b2)]; ObjectSet(no, OBJPROP_TIME1 , t1); ObjectSet(no, OBJPROP_PRICE1, p1); ObjectSet(no, OBJPROP_TIME2 , t2); ObjectSet(no, OBJPROP_PRICE2, p2); } datetime decDateTradeDay (datetime dt) { int ty=TimeYear(dt); int tm=TimeMonth(dt); int td=TimeDay(dt); int th=TimeHour(dt); int ti=TimeMinute(dt); 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)); } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Series array that contains the highest prices of each bar
Indicator Curves created:
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Other Features: