/*-----------------------------+
| |
| Shared by www.Aptrafx.com |
| |
+------------------------------*/
//+------------------------------------------------------------------+
//| 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