i-BigBarsFromH1

Author: ��� ����� �. aka KimIV
i-BigBarsFromH1
0 Views
0 Downloads
0 Favorites
i-BigBarsFromH1
//+------------------------------------------------------------------+
//|                                              i-BigBarsFromH1.mq4 |
//|                                           Êèì Èãîðü Â. aka KimIV |
//|                                              http://www.kimiv.ru |
//| Íà ÷àñîâîì ãðàôèêå ïîêàçûâàåò ñâå÷è ñòàðøèõ ÒÔ                   |
//+------------------------------------------------------------------+
#property copyright "Êèì Èãîðü Â. aka KimIV"
#property link      "http://www.kimiv.ru"

#property indicator_chart_window

//---- Âíåøíèå ïàðàìåòðû ---------------------------------------------
extern int TFBar       = 3;      // Ïåðèîä ñòàðøèõ ñâå÷åê
extern int NumberOfBar = 50;     // Êîëè÷åñòâî ñòàðøèõ ñâå÷åê
extern int offsetHour  = -2;     // Ñìåùåíèå ÷àñîâ
extern color ColorUp   = Aqua;   // Öâåò âîñõîäÿùåé ñâå÷è
extern color ColorDown = Pink;   // Öâåò íèñõîäÿùåé ñâå÷è

//------- Ãëîáàëüíûå ïåðåìåííûå --------------------------------------

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void init() {
  int i;

  for (i=0; i<NumberOfBar; i++) {
    ObjectDelete("BodyH"+TFBar+"Bar" + i);
    ObjectDelete("ShadowH"+TFBar+"Bar" + i);
  }
  for (i=0; i<NumberOfBar; i++) {
    ObjectCreate("BodyH"+TFBar+"Bar" + i, OBJ_RECTANGLE, 0, 0,0, 0,0);
    ObjectCreate("ShadowH"+TFBar+"Bar" + i, OBJ_TREND, 0, 0,0, 0,0);
  }
  Comment("");
}

//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
void deinit() {
  // Óäàëåíèå îáúåêòîâ
  for (int i=0; i<NumberOfBar; i++) {
    ObjectDelete("BodyH"+TFBar+"Bar" + i);
    ObjectDelete("ShadowH"+TFBar+"Bar" + i);
  }
  Comment("");
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
void start() {
  int shb=0, sh1=1, d;
  double   po, pc;       // Öåíû îòêðûòèÿ è çàêðûòèÿ ñòàðøèõ ñâå÷åê
  double   ph=0, pl=500; // Öåíû õàé è ëîó ñòàðøèõ ñâå÷åê
  datetime to, tc, ts;   // Âðåìÿ îòêðûòèÿ, çàêðûòèÿ è òåíåé ñòàðøèõ ñâå÷åê

  if (Period()!=60) Comment("Èíäèêàòîð i-BigBarsFromH1 ïîääåðæèâàåò ÒÔ òîëüêî Í1!");
  else {
    if (MathMod(TFBar,2)==0) d=TFBar/2; else d=TFBar/2+1;
    pc = Close[0];
    tc = Time[0];
    // Áåæèì ïî ñòàðøèì ñâå÷êàì
    while (shb<NumberOfBar) {
      // Áåæèì ïî ÷àñîâûì ñâå÷êàì
      ph = MathMax(ph, High[sh1-1]);
      pl = MathMin(pl, Low[sh1-1]);
      ts = StrToTime(TimeToStr(Time[sh1-d], TIME_DATE)+" "+TimeHour(Time[sh1-d])+":30");
      if (MathMod(TimeHour(Time[sh1])+1+offsetHour, TFBar)==0/* || TimeDay(Time[sh1])!=TimeDay(Time[sh1-1])*/) {
        po = Open[sh1-1];
        to = Time[sh1-1];
        ObjectSet("BodyH"+TFBar+"Bar"+shb, OBJPROP_TIME1, to);
        ObjectSet("BodyH"+TFBar+"Bar"+shb, OBJPROP_PRICE1, po);
        ObjectSet("BodyH"+TFBar+"Bar"+shb, OBJPROP_TIME2, tc);
        ObjectSet("BodyH"+TFBar+"Bar"+shb, OBJPROP_PRICE2, pc);
        ObjectSet("BodyH"+TFBar+"Bar"+shb, OBJPROP_STYLE, STYLE_SOLID);
        ObjectSet("BodyH"+TFBar+"Bar"+shb, OBJPROP_BACK, True);
        ObjectSet("ShadowH"+TFBar+"Bar"+shb, OBJPROP_TIME1, ts);
        ObjectSet("ShadowH"+TFBar+"Bar"+shb, OBJPROP_PRICE1, ph);
        ObjectSet("ShadowH"+TFBar+"Bar"+shb, OBJPROP_TIME2, ts);
        ObjectSet("ShadowH"+TFBar+"Bar"+shb, OBJPROP_PRICE2, pl);
        ObjectSet("ShadowH"+TFBar+"Bar"+shb, OBJPROP_STYLE, STYLE_SOLID);
        ObjectSet("ShadowH"+TFBar+"Bar"+shb, OBJPROP_WIDTH, 3);
        ObjectSet("ShadowH"+TFBar+"Bar"+shb, OBJPROP_BACK, True);
        ObjectSet("ShadowH"+TFBar+"Bar"+shb, OBJPROP_RAY, False);
        if (po<pc) {
          ObjectSet("BodyH"+TFBar+"Bar"+shb, OBJPROP_COLOR, ColorUp);
          ObjectSet("ShadowH"+TFBar+"Bar"+shb, OBJPROP_COLOR, ColorUp);
        } else {
          ObjectSet("BodyH"+TFBar+"Bar"+shb, OBJPROP_COLOR, ColorDown);
          ObjectSet("ShadowH"+TFBar+"Bar"+shb, OBJPROP_COLOR, ColorDown);
        }
        pc = Close[sh1];
        tc = Time[sh1];
        ph = 0;
        pl = 500;
        ph = MathMax(ph, High[sh1]);
        pl = MathMin(pl, Low[sh1]);
        shb++;
      }
      sh1++;
    }
  }
}
//+------------------------------------------------------------------+

Comments