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" <[EMAIL PROTECTED]> 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); > > > > > > /////////////////////////////////////////////////////////// > > > > > >
