//+------------------------------------------------------------------+ //| i-ParamonWorkTime.mq4 | //| Êèì Èãîðü Â. aka KimIV | //| http://www.kimiv.ru | //| Brad Eckerts Time Zones added by Jacob Yego | //| Asia Open - 00:00 GMT | //| Dubai/Russia Open 04:00 GMT | //| Europe Open 06:00 GMT | //| London "Big Ben" News 08:30 GMT | //| US News 12:30 GMT | //| Europe Settlement 14:30 GMT | //+------------------------------------------------------------------+ #property copyright "Êèì Èãîðü Â. aka KimIV" #property link "http://www.kimiv.ru" #property indicator_chart_window //------- Âíåøíèå ïàðàìåòðû èíäèêàòîðà ------------------------------- extern int NumberOfDays = 50; // Êîëè÷åñòâî äíåé extern string Begin_1 = "00:00"; extern string End_1 = "04:30"; extern color Color_1 = Seashell; extern string Begin_2 = "05:00"; extern string End_2 = "06:30"; extern color Color_2 = MistyRose; extern string Begin_3 = "07:00"; extern string End_3 = "09:00"; extern color Color_3 = LightCyan; extern string Begin_4 = "09:30"; extern string End_4 = "12:15"; extern color Color_4 = LightGoldenrod; extern string Begin_5 = "13:30"; extern string End_5 = "15:30"; extern color Color_5 = PeachPuff; extern string Begin_6 = "15:30"; extern string End_6 = "19:30"; extern color Color_6 = Pink; extern bool HighRange = False; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ void init() { DeleteObjects(); for (int i=0; i<NumberOfDays; i++) { CreateObjects("PWT1"+i, Color_1); CreateObjects("PWT2"+i, Color_2); CreateObjects("PWT3"+i, Color_3); CreateObjects("PWT4"+i, Color_4); CreateObjects("PWT5"+i, Color_5); CreateObjects("PWT6"+i, Color_6); } Comment(""); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ void deinit() { DeleteObjects(); Comment(""); } //+------------------------------------------------------------------+ //| Ñîçäàíèå îáúåêòîâ èíäèêàòîðà | //| Ïàðàìåòðû: | //| no - íàèìåíîâàíèå îáúåêòà | //| cl - öâåò îáúåêòà | //+------------------------------------------------------------------+ 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("PWT1"+i); ObjectDelete("PWT2"+i); ObjectDelete("PWT3"+i); ObjectDelete("PWT4"+i); ObjectDelete("PWT5"+i); ObjectDelete("PWT6"+i); } } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ void start() { datetime dt=CurTime(); for (int i=0; i<NumberOfDays; i++) { DrawObjects(dt, "PWT1"+i, Begin_1, End_1); DrawObjects(dt, "PWT2"+i, Begin_2, End_2); DrawObjects(dt, "PWT3"+i, Begin_3, End_3); DrawObjects(dt, "PWT4"+i, Begin_4, End_4); DrawObjects(dt, "PWT5"+i, Begin_5, End_5); DrawObjects(dt, "PWT6"+i, Begin_6, End_6); dt=decDateTradeDay(dt); while (TimeDayOfWeek(dt)>5) dt=decDateTradeDay(dt); } } //+------------------------------------------------------------------+ //| Ïðîðèñîâêà îáúåêòîâ íà ãðàôèêå | //| Ïàðàìåòðû: | //| dt - äàòà òîðãîâîãî äíÿ | //| no - íàèìåíîâàíèå îáúåêòà | //| tb - âðåìÿ íà÷àëà ñåññèè | //| te - âðåìÿ îêîí÷àíèÿ ñåññèè | //+------------------------------------------------------------------+ 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)]; if (!HighRange) {p1=0; p2=2*p2;} ObjectSet(no, OBJPROP_TIME1 , t1); ObjectSet(no, OBJPROP_PRICE1, p1); ObjectSet(no, OBJPROP_TIME2 , t2); ObjectSet(no, OBJPROP_PRICE2, p2); } //+------------------------------------------------------------------+ //| Óìåíüøåíèå äàòû íà îäèí òîðãîâûé äåíü | //| Ïàðàìåòðû: | //| dt - äàòà òîðãîâîãî äíÿ | //+------------------------------------------------------------------+ 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: