//+------------------------------------------------------------------+ //| SupportEX.mq4 | //| Ш.Александр.В | //| shestovav@gmail.com | //+------------------------------------------------------------------+ #property copyright "Ш.Александр.В" #property link "shestovav@gmail.com" #property indicator_chart_window //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ extern int дробь = 5; //--- extern bool День = true; extern bool Неделя = true; extern bool Месяц = true; //--- extern bool OC = true; extern bool HL = true; //--- extern color cMN = Red; extern color cW1 = Gold; extern color cD1 = Green; datetime TimeBegin, TimeEnd; int d,w,mn; int tD=0,tW=0,tMN=0; int D=1,W=1,MN=1; string D0 = " DO "; string DC = " DC "; string DH = " DH "; string DL = " DL "; string W0 = " W0 "; string WC = " WC "; string WH = " WH "; string WL = " WL "; string MN0 = " MN0 "; string MNC = " MNC "; string MNH = " MNH "; string MNL = " MNL "; int deinit() { //---- ObjectsDeleteAll(0, OBJ_TREND); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int limit; int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(int i=limit; i>=0; i--) { if(День) { d++; TimeBegin = iTime(NULL,PERIOD_D1,tD); TimeEnd = (TimeBegin + 86400); double D1_Open =iOpen(NULL,PERIOD_D1,D); double D1_Close =iClose(NULL,PERIOD_D1,D); double D1_High =iHigh(NULL,PERIOD_D1,D); double D1_Low =iLow(NULL,PERIOD_D1,D); if(OC){ ObjectCreate (D0+d,OBJ_TREND, 0, 0,0, 0,0,0,0); ObjectSet (D0+d,OBJPROP_RAY,false); ObjectSet (D0+d,OBJPROP_TIME1, TimeBegin); ObjectSet (D0+d,OBJPROP_PRICE1, D1_Open); ObjectSet (D0+d,OBJPROP_TIME2, TimeEnd); ObjectSet (D0+d,OBJPROP_PRICE2, D1_Open); ObjectSet (D0+d,OBJPROP_COLOR,cD1); // изменяем цвет линии ObjectSet (D0+d,OBJPROP_WIDTH,1); // теперь линия будет толщиной в 3 пикселя ObjectSet (D0+d,OBJPROP_STYLE,STYLE_SOLID); // теперь нижняя линия будет пунктирной ObjectSetText(D0+d,D0+DoubleToStr(D1_Open,дробь),10); ObjectCreate (DC+d, OBJ_TREND, 0, 0,0, 0,0,0,0); ObjectSet (DC+d,OBJPROP_RAY,false); ObjectSet (DC+d, OBJPROP_TIME1,TimeBegin); ObjectSet (DC+d, OBJPROP_PRICE1, D1_Close); ObjectSet (DC+d, OBJPROP_TIME2, TimeEnd); ObjectSet (DC+d, OBJPROP_PRICE2, D1_Close); ObjectSet (DC+d,OBJPROP_COLOR,cD1); // изменяем цвет линии ObjectSet (DC+d,OBJPROP_WIDTH,3); // теперь линия будет толщиной в 3 пикселя ObjectSet (DC+d,OBJPROP_STYLE,STYLE_SOLID); // теперь нижняя линия будет пунктирной ObjectSetText(DC+d,DC+DoubleToStr(D1_Close,дробь),10);} if(HL){ ObjectCreate (DH+d, OBJ_TREND, 0, 0,0, 0,0,0,0); ObjectSet (DH+d,OBJPROP_RAY,false); ObjectSet (DH+d, OBJPROP_TIME1, TimeBegin); ObjectSet (DH+d, OBJPROP_PRICE1, D1_High); ObjectSet (DH+d, OBJPROP_TIME2, TimeEnd); ObjectSet (DH+d, OBJPROP_PRICE2, D1_High); ObjectSet (DH+d,OBJPROP_COLOR,cD1); // изменяем цвет линии ObjectSet (DH+d,OBJPROP_WIDTH,1); // теперь линия будет толщиной в 3 пикселя ObjectSet (DH+d,OBJPROP_STYLE,STYLE_DOT); // теперь нижняя линия будет пунктирной ObjectSetText(DH+d,DH+DoubleToStr(D1_High,дробь),10); ObjectCreate (DL+d, OBJ_TREND, 0, 0,0, 0,0,0,0); ObjectSet (DL+d,OBJPROP_RAY,false); ObjectSet (DL+d, OBJPROP_TIME1,TimeBegin); ObjectSet (DL+d, OBJPROP_PRICE1, D1_Low); ObjectSet (DL+d, OBJPROP_TIME2, TimeEnd); ObjectSet (DL+d, OBJPROP_PRICE2, D1_Low); ObjectSet (DL+d,OBJPROP_COLOR,cD1); // изменяем цвет линии ObjectSet (DL+d,OBJPROP_WIDTH,1); // теперь линия будет толщиной в 3 пикселя ObjectSet (DL+d,OBJPROP_STYLE,STYLE_DOT); // теперь нижняя линия будет пунктирной ObjectSetText(DL+d,DL+DoubleToStr(D1_Low,дробь),10);} tD++; D++; } if(Неделя) { w++; TimeBegin = iTime(NULL,PERIOD_W1,tW); TimeEnd = (TimeBegin + 518400); double W1_Open =iOpen(NULL,PERIOD_W1,W); double W1_Close =iClose(NULL,PERIOD_W1,W); double W1_High =iHigh(NULL,PERIOD_W1,W); double W1_Low =iLow(NULL,PERIOD_W1,W); if(OC){ ObjectCreate (W0+w, OBJ_TREND, 0, 0,0, 0,0,0,0); ObjectSet (W0+w,OBJPROP_RAY,false); ObjectSet (W0+w, OBJPROP_TIME1, TimeBegin); ObjectSet (W0+w, OBJPROP_PRICE1, W1_Open); ObjectSet (W0+w, OBJPROP_TIME2, TimeEnd); ObjectSet (W0+w, OBJPROP_PRICE2, W1_Open); ObjectSet (W0+w,OBJPROP_COLOR,cW1); // изменяем цвет линии ObjectSet (W0+w,OBJPROP_WIDTH,1); // теперь линия будет толщиной в 3 пикселя ObjectSet (W0+w,OBJPROP_STYLE,STYLE_SOLID); // теперь нижняя линия будет пунктирной ObjectSetText(W0+w," "+W0+DoubleToStr(W1_Open,дробь),10); ObjectCreate (WC+w, OBJ_TREND, 0, 0,0, 0,0,0,0); ObjectSet (WC+w,OBJPROP_RAY,false); ObjectSet (WC+w, OBJPROP_TIME1, TimeBegin); ObjectSet (WC+w, OBJPROP_PRICE1, W1_Close); ObjectSet (WC+w, OBJPROP_TIME2, TimeEnd); ObjectSet (WC+w, OBJPROP_PRICE2, W1_Close); ObjectSet (WC+w,OBJPROP_COLOR,cW1); // изменяем цвет линии ObjectSet (WC+w,OBJPROP_WIDTH,3); // теперь линия будет толщиной в 3 пикселя ObjectSet (WC+w,OBJPROP_STYLE,STYLE_SOLID); // теперь нижняя линия будет пунктирной ObjectSetText(WC+w," "+WC+DoubleToStr(W1_Close,дробь),20);} if(HL){ ObjectCreate (WH+w, OBJ_TREND, 0, 0,0, 0,0,0,0); ObjectSet (WH+w,OBJPROP_RAY,false); ObjectSet (WH+w, OBJPROP_TIME1, TimeBegin); ObjectSet (WH+w, OBJPROP_PRICE1, W1_High); ObjectSet (WH+w, OBJPROP_TIME2, TimeEnd); ObjectSet (WH+w, OBJPROP_PRICE2, W1_High); ObjectSet (WH+w,OBJPROP_COLOR,cW1); // изменяем цвет линии ObjectSet (WH+w,OBJPROP_WIDTH,1); // теперь линия будет толщиной в 3 пикселя ObjectSet (WH+w,OBJPROP_STYLE,STYLE_DOT); // теперь нижняя линия будет пунктирной ObjectSetText(WH+w," "+WH+DoubleToStr(W1_High,дробь),10); ObjectCreate (WL+w, OBJ_TREND, 0, 0,0, 0,0,0,0); ObjectSet (WL+w,OBJPROP_RAY,false); ObjectSet (WL+w, OBJPROP_TIME1,TimeBegin); ObjectSet (WL+w, OBJPROP_PRICE1, W1_Low); ObjectSet (WL+w, OBJPROP_TIME2, TimeEnd); ObjectSet (WL+w, OBJPROP_PRICE2, W1_Low); ObjectSet (WL+w,OBJPROP_COLOR,cW1); // изменяем цвет линии ObjectSet (WL+w,OBJPROP_WIDTH,1); // теперь линия будет толщиной в 3 пикселя ObjectSet (WL+w,OBJPROP_STYLE,STYLE_DOT); // теперь нижняя линия будет пунктирной ObjectSetText(WL+w," "+WL+DoubleToStr(W1_Low,дробь),10);} tW++; W++; } if(Месяц) { mn++; TimeBegin = iTime(NULL,PERIOD_MN1,tMN); TimeEnd = (TimeBegin + 86400*30); double MN_Open =iOpen(NULL,PERIOD_MN1,MN); double MN_Close =iClose(NULL,PERIOD_MN1,MN); double MN_High =iHigh(NULL,PERIOD_MN1,MN); double MN_Low =iLow(NULL,PERIOD_MN1,MN); if(OC){ ObjectCreate (MN0+mn, OBJ_TREND, 0, 0,0, 0,0,0,0); ObjectSet (MN0+mn,OBJPROP_RAY,false); ObjectSet (MN0+mn, OBJPROP_TIME1, TimeBegin); ObjectSet (MN0+mn, OBJPROP_PRICE1, MN_Open); ObjectSet (MN0+mn, OBJPROP_TIME2, TimeEnd); ObjectSet (MN0+mn, OBJPROP_PRICE2, MN_Open); ObjectSet (MN0+mn,OBJPROP_COLOR,cMN); // изменяем цвет линии ObjectSet (MN0+mn,OBJPROP_WIDTH,1); // теперь линия будет толщиной в 3 пикселя ObjectSet (MN0+mn,OBJPROP_STYLE,STYLE_SOLID); // теперь нижняя линия будет пунктирной ObjectSetText(MN0+mn," "+MN0+DoubleToStr(MN_Open,дробь),10); ObjectCreate (MNC+mn, OBJ_TREND, 0, 0,0, 0,0,0,0); ObjectSet (MNC+mn,OBJPROP_RAY,false); ObjectSet (MNC+mn, OBJPROP_TIME1, TimeBegin); ObjectSet (MNC+mn, OBJPROP_PRICE1, MN_Close); ObjectSet (MNC+mn, OBJPROP_TIME2, TimeEnd); ObjectSet (MNC+mn, OBJPROP_PRICE2, MN_Close); ObjectSet (MNC+mn,OBJPROP_COLOR,cMN); // изменяем цвет линии ObjectSet (MNC+mn,OBJPROP_WIDTH,3); // теперь линия будет толщиной в 3 пикселя ObjectSet (MNC+mn,OBJPROP_STYLE,STYLE_SOLID); // теперь нижняя линия будет пунктирной ObjectSetText(MNC+mn," "+MNC+DoubleToStr(MN_Close,дробь),10);} if(HL){ ObjectCreate (MNH+mn, OBJ_TREND, 0, 0,0, 0,0,0,0); ObjectSet (MNH+mn,OBJPROP_RAY,false); ObjectSet (MNH+mn, OBJPROP_TIME1, TimeBegin); ObjectSet (MNH+mn, OBJPROP_PRICE1, MN_High); ObjectSet (MNH+mn, OBJPROP_TIME2, TimeEnd); ObjectSet (MNH+mn, OBJPROP_PRICE2, MN_High); ObjectSet (MNH+mn,OBJPROP_COLOR,cMN); // изменяем цвет линии ObjectSet (MNH+mn,OBJPROP_WIDTH,1); // теперь линия будет толщиной в 3 пикселя ObjectSet (MNH+mn,OBJPROP_STYLE,STYLE_DOT); // теперь нижняя линия будет пунктирной ObjectSetText(MNH+mn," "+MNH+DoubleToStr(MN_High,дробь),10); ObjectCreate (MNL+mn, OBJ_TREND, 0, 0,0, 0,0,0,0); ObjectSet (MNL+mn,OBJPROP_RAY,false); ObjectSet (MNL+mn, OBJPROP_TIME1, TimeBegin); ObjectSet (MNL+mn, OBJPROP_PRICE1, MN_Low); ObjectSet (MNL+mn, OBJPROP_TIME2, TimeEnd); ObjectSet (MNL+mn, OBJPROP_PRICE2, MN_Low); ObjectSet (MNL+mn,OBJPROP_COLOR,cMN); // изменяем цвет линии ObjectSet (MNL+mn,OBJPROP_WIDTH,1); // теперь линия будет толщиной в 3 пикселя ObjectSet (MNL+mn,OBJPROP_STYLE,STYLE_DOT); // теперь нижняя линия будет пунктирной ObjectSetText(MNL+mn," "+MNL+DoubleToStr(MN_Low,дробь),10);} tMN++; MN++; } } return; } //+------------------------------------------------------------------+