//+------------------------------------------------------------------+ //| 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 Blue #property indicator_color2 Salmon //------- Âíåøíèå ïàðàìåòðû èíäèêàòîðà ------------------------------- extern int NumberDayOfWeek=1; // Íîìåð äíÿ íåäåëè 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(5); case 5: return(7); case 15: return(10); case 30: return(15); case 60: return(20); case 240: return(30); case 1440: return(40); case 10080: return(150); case 43200: return(250); } } //+------------------------------------------------------------------+ //| Âîçâðàùàåò íàèìåíîâàíèå äíÿ íåäåëè | //+------------------------------------------------------------------+ 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: