It work If you Change to return Hlow; } Start = SelectedValue(BarIndex()); Price=ValueWhen(BarIndex()==start,L,1); Test=HigherLow(Start,Price); Plot(IIf(start,Test,Null),"StopLoss",colorRed,4);
But it cannot work If you write as return HlowArr; } Start = SelectedValue(BarIndex()); Price=ValueWhen(BarIndex()==start,L,1); Test=HigherLow(Start,Price);Plot(IIfPlot(IIf (start,Test,Null),"StopLoss",colorRed,4); I doubt that Do Loop can not initial from the middle of the data range --- In [email protected], "gp_sydney" <[EMAIL PROTECTED]> wrote: > > No, it won't. That statement doesn't turn an array back into a single > number. > > I think what you want is to take a single price value from the > ValueWhen array and pass that to the function. In fact, it looks to me > like all you need is: > > Price = Low[start]; > > GP > > > --- In [email protected], "wongloktim" <wlt@> wrote: > > > > Even I define Hlow=0, Do Loop also can'nt work > > > > > > --- In [email protected], "gp_sydney" <gp.investment@> > > wrote: > > > > > > The problem is that the Price parameter passed to the function is > > an > > > array, since ValueWhen returns an array, and that makes HLow an > > array > > > and you can't test arrays in an "if" statement. > > > > > > GP > > > > > > > > > --- In [email protected], "wongloktim" <wlt@> wrote: > > > > > > > > Please Help > > > > > > > > I found this cause Do Loop problem:{for(i=bars+1; > > i<BarCount;i++)} > > > > > > > > > > /////////////////////////////////////////////////////////////////// > > / > > > > SetChartOptions(0,chartShowArrows|chartShowDates); > > > > _N(Title = FullName()+StrFormat(" {{NAME}} - {{INTERVAL}} > > {{DATE}} > > > > Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, > > C, > > > > SelectedValue( ROC( C, 1 ) ) )); > > > > Plot( C,"Price",colorBlack,64 ); > > > > > > > > function HigherLow(Bars,Price) > > > > { > > > > HLow=Price; > > > > HLowArr=Null; > > > > if(Bars>0) > > > > { > > > > for(i=bars+1; i<BarCount;i++) > > > > { > > > > if(Low[i] >= HLow) > > > > { > > > > HLow=Low[i]; > > > > HLowArr[i]=HLow; > > > > } > > > > else > > > > HlowArr[i]=HLow; > > > > } > > > > } > > > > return HlowArr; > > > > } > > > > Start = SelectedValue(BarIndex()); > > > > Price=ValueWhen(BarIndex()==start,L,1); > > > > Test=HigherLow(Start,Price); > > > > Plot(IIf(start,Test,Null),"StopLoss",colorRed,4); > > > > > > > > /////////////////////////////////////////////////////////// > > > > > > > > > >
