i-BigBarsFromH1_v2

Author: ��� ����� �. aka KimIV
i-BigBarsFromH1_v2
0 Views
0 Downloads
0 Favorites
i-BigBarsFromH1_v2
//+------------------------------------------------------------------+
//|                                              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  =Red;     // Öâåò âîñõîäÿùåé ñâå÷è
extern color ColorDown=Green;   // Öâåò íèñõîäÿùåé ñâå÷è
//+------------------------------------------------------------------+
//| 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