i-dayofweek_205





//+------------------------------------------------------------------+
//|                                                  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: