//+------------------------------------------------------------------+ //| 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; } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Series array that contains open prices of each bar
Series array that contains close prices for each bar
Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar
Indicator Curves created:
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Other Features: