//+------------------------------------------------------------------+ //| i-DayOfWeek.mq4 | //| Êèì Èãîðü Â. aka KimIV | //| http://www.kimiv.ru | //| | //| 13.10.2005 Ïîêàçûâàåò âûáðàííûé äåíü íåäåëè | //+------------------------------------------------------------------+ #property copyright "Êèì Èãîðü Â. aka KimIV" #property link "http://www.kimiv.ru" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 LightBlue #property indicator_color2 Salmon //------- Âíåøíèå ïàðàìåòðû èíäèêàòîðà ------------------------------- extern int NumberDayOfWeek = 5; // Íîìåð äíÿ íåäåëè extern int NumberOfBars = 0; // Êîëè÷åñòâî áàðîâ îáñ÷¸òà (0-âñå) //------- Ãëîáàëüíûå ïåðåìåííûå -------------------------------------- int ArrowInterval, prevDay; //------- Ïîêëþ÷åíèå âíåøíèõ ìîäóëåé --------------------------------- //------- Áóôåðû èíäèêàòîðà ------------------------------------------ double UpLine[]; double DnLine[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ void init() { SetIndexBuffer(0, UpLine); SetIndexStyle (0, DRAW_ARROW); SetIndexArrow (0, 159); SetIndexEmptyValue(0, EMPTY_VALUE); SetIndexBuffer(1, DnLine); SetIndexStyle (1, DRAW_ARROW); SetIndexArrow (1, 159); SetIndexEmptyValue(1, EMPTY_VALUE); ArrowInterval = GetArrowInterval(); Comment(NameDayOfWeek(NumberDayOfWeek)); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ void deinit() { Comment(""); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ void start() { double dMax, dMin; int loopbegin, nsb, shift; if (NumberOfBars==0) loopbegin = Bars - 1; else loopbegin = NumberOfBars - 1; for (shift=0; shift<=loopbegin; shift++) { if (prevDay!=TimeDay(Time[shift])) { nsb=iBarShift(NULL, PERIOD_D1, Time[shift]); dMax=iHigh(NULL, PERIOD_D1, nsb)+ArrowInterval*Point; dMin=iLow (NULL, PERIOD_D1, nsb)-ArrowInterval*Point; } if (TimeDayOfWeek(Time[shift])==NumberDayOfWeek) { UpLine[shift] = dMax; DnLine[shift] = dMin; } prevDay=TimeDay(Time[shift]); } } //+------------------------------------------------------------------+ //| Âîçâðàùàåò èíòåðâàë óñòàíîâêè ñèãíàëüíûõ óêàçàòåëåé | //+------------------------------------------------------------------+ int GetArrowInterval() { int p = Period(); switch (p) { case 1: return(4); case 5: return(5); case 15: return(6); case 30: return(8); case 60: return(10); case 240: return(20); case 1440: return(40); case 10080: return(80); case 43200: return(150); } } //+------------------------------------------------------------------+ //| Âîçâðàùàåò íàèìåíîâàíèå äíÿ íåäåëè | //+------------------------------------------------------------------+ string NameDayOfWeek(int ndw) { if (ndw==0) return("Âîñêðåñåíüå"); if (ndw==1) return("Ïîíåäåëüíèê"); if (ndw==2) return("Âòîðíèê"); if (ndw==3) return("Ñðåäà"); if (ndw==4) return("×åòâåðã"); if (ndw==5) return("Ïÿòíèöà"); if (ndw==6) return("Ñóááîòà"); } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Series array that contains open time of each bar
Series array that contains the highest prices of each bar
Indicator Curves created:
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Other Features: