The following indicator "dissappears" when a new candle is formed.
Anyone know of a why to get it to "re-draw"?
thanks.
Anyone know of a why to get it to "re-draw"?
thanks.
Inserted Code
#property indicator_chart_window #property indicator_buffers 2 extern int varExtDepth=12; extern int varExtDeviation=5; extern int varExtBackstep=3; extern color color_trend_1=Magenta; extern color color_trend_2=Magenta; double upperband[]; double lowerband[]; int init() { IndicatorBuffers(2); //---- drawing settings //---- indicator buffers mapping SetIndexBuffer(0,upperband); SetIndexBuffer(1,lowerband); SetIndexLabel(0,"Band 1") ; SetIndexLabel(1,"Band 2") ; SetIndexEmptyValue(0,0.0); SetIndexEmptyValue(1,0.0); ArraySetAsSeries(upperband,true); ArraySetAsSeries(lowerband,true); return(0); } int deinit() { ObjectDelete("trend_1"); ObjectDelete("trend_2"); return(0); } int start() { int shift; bool varNewBar=funcIsNewBar(Period()); if (varNewBar) { ObjectDelete("trend_1"); ObjectDelete("trend_2"); DrawTrends(); for(shift=Bars-1; shift>=0; shift--) { upperband[shift]= ObjectGetValueByShift("trend_1",shift); lowerband[shift]= ObjectGetValueByShift("trend_2",shift); } } return(0); } void DrawTrends() { double temp = 0; static int count = 0; double save_0 , save_1 , save_2 , save_3; int t_0 , t_1 , t_2 , t_3, back=1; //get last up for(int i = 0 ; i < Bars ; i++) { temp = iCustom(NULL,0,"ZigZag",varExtDepth,varExtDeviation,varExtBackstep,0,i); if (temp != 0) count++; if(count == back + 1 && temp != 0) {save_0 = temp; t_0 = i;} if(count == back + 2 && temp != 0) {save_1 = temp; t_1 = i;} if(count == back + 3 && temp != 0) {save_2 = temp; t_2 = i;} if(count == back + 4 && temp != 0) {save_3 = temp; t_3 = i;} if(count == back + 5) break; } //draw trends Print(save_0,":",save_1,":",save_2,":",save_3); ObjectCreate("trend_2",OBJ_TREND,0,iTime(NULL,0,t_3),save_3,iTime(NULL,0,t_1),save_1); ObjectCreate("trend_1",OBJ_TREND,0,iTime(NULL,0,t_2),save_2,iTime(NULL,0,t_0),save_0); ObjectSet("trend_1",OBJPROP_STYLE,STYLE_SOLID); ObjectSet("trend_2",OBJPROP_STYLE,STYLE_SOLID); ObjectSet("trend_1",OBJPROP_WIDTH,2); ObjectSet("trend_2",OBJPROP_WIDTH,2); ObjectSet("trend_1",OBJPROP_COLOR,color_trend_1); ObjectSet("trend_2",OBJPROP_COLOR,color_trend_2); } //+---------------------- support funcion(s) ------------------------+ bool funcIsNewBar(int timeFrame) { bool res=false; // the array contains open time of the current (zero) bar // for 7 (seven) timeframes static datetime _sTime[7]; int i=6; //Note: i below will be 6 or timeframe will be day. switch (timeFrame) { case 1 : i=0; break; case 5 : i=2; break; case 15 : i=3; break; case 30 : i=4; break; case 60 : i=5; break; case 240: break; case 1440:break; default: timeFrame = 1440; } //---- if (_sTime[i]==0 || _sTime[i]!=iTime(Symbol(),timeFrame,0)) { _sTime[i] = iTime(Symbol(),timeFrame,0); res=true; } //---- return(res); }