Graham, That doesn't work either, in the general case, as varx is still not dependent on previous values of varx, only on previous values of your first "temp" statement.
Consider the simpler case: temp = BarIndex() < 10; varx = temp AND NOT Ref(temp,-1); temp now has the first 10 bars set to one and all other bars set to zero. varx will have the first 11 bars set to zero, since Ref(temp,-1) is one (actually the first bar will probably be null) and then all subsequent bars will also be zero since temp is then zero. Consequently, varx would be completely zero, except perhaps for the first null. Assuming this did work as suggested, compare to: varx = BarIndex() < 10 AND NOT Ref(varx,-1); Actually if the first bar was null due to Ref(varx,-1) being null, then varx would end up completely full of nulls (a problem to be wary of with nulls in loops). But say the first bar ended up being zero (perhaps the nz function was used), then the second bar would be one, since BarIndex is less than 10 and Ref(varx,-1) refers to the first bar which we just said was zero. The third bar would be zero, since Ref(varx,-1) now refers to the second bar which we just set to one, and the fourth bar would be one again. This would continue up to the 10th bar, after which all bars would be zero due to the BarIndex term. The first 10 bars of varx alternating between one and zero make the result different to the first version. Regards, GP --- In [email protected], Graham <[EMAIL PROTECTED]> wrote: > > try this > temp = C<Ref(L,-6) AND vary<6; > varx = temp AND NOT Ref(temp ,-6); > > -- > Cheers > Graham Kav > AFL Writing Service > http://www.aflwriting.com > > > > > 2008/9/18 gp_sydney <[EMAIL PROTECTED]>: > > No, you can't do that as the right-hand expression is evaluated on the > > whole array before anything is assigned to the left-hand variable. > > That means that "varx" is effectively constant during the expression > > evaluation for the whole array. It's essentially the same as: > > > > temp = IIf(C<Ref(L,-6) AND vary<6 AND NOT Ref(varx,-6),True,False); > > varx = temp; > > > > To do what you are suggesting would require a loop. > > > > Regards, > > GP > > > > > > --- In [email protected], "sidhartha70" <sidhartha70@> wrote: > >> > >> Hi All, > >> > >> Is it possible to have recursive boolean expressions...? i.e. the true > >> or false of the current value of the array depends on whether a > >> previous value of the array is true or false. > >> > >> So for example, > >> > >> varx = IIf(C<Ref(L,-6) AND vary<6 AND NOT Ref(varx,-6),True,False); > >> > >> Would that work... or are recursive booleans like this not allowed?? > >> > >> TIA > >> >
