Mike & Herman,
Thank you. Both good ideas... and sorry about moving the goal posts
here... but the problem is still becoming clear to me as I think about
it more... Actually, the problem I have with IIF() in these
circumstances is where I want to evaluate more than one expression
within the if() condition... for example,
HLRange = abs( H - L );
ABC = HLRange > Ref( HLRange, -1 ) AND HLRange > Ref( HLRange, -2) AND
HLRange > Ref( HLRange, -3 );
XYZ_Check=IIf(Ref(ABC,-1),1,IIf(Ref(ABC,-2),2,IIf(Ref(ABC,-3),3,0)));
if(XYZ_Check==0)
{
RU1_Check = Open>Ref(Open,-1) AND Open>Ref(Open,-2) AND Open>Ref(Open,-3);
RU2_Check = Close>Ref(Close,-1) AND Close>Ref(Close,-2) AND
Close>Ref(Close,-3);
}
if(XYZ_Check==1)
{
RU1_Check = Open>Ref(Open,-2) AND Open>Ref(Open,-3) AND Open>Ref(Open,-4);
RU2_Check = Close>Ref(Close,-2) AND Close>Ref(Close,-3) AND
Close>Ref(Close,-4);
}
if(XYZ_Check==2)
{
RU1_Check = Open>Ref(Open,-3) AND Open>Ref(Open,-4) AND Open>Ref(Open,-5);
RU2_Check = Close>Ref(Close,-3) AND Close>Ref(Close,-4) AND
Close>Ref(Close,-5);
}
if(XYZ_Check==3)
{
RU1_Check = Open>Ref(Open,-4) AND Open>Ref(Open,-5) AND Open>Ref(Open,-6);
RU2_Check = Close>Ref(Close,-4) AND Close>Ref(Close,-5) AND
Close>Ref(Close,-6);
}
Sorry if this is labouring a point. But I always get stuck by this
structure... I guess I should just use a loop, but I am loathe to if
there is another way.
TIA
--- In [email protected], "Mike" <[EMAIL PROTECTED]> wrote:
>
> Why not do it the same way you did XYZ_Check? Also, it would be more
> efficient to add variables rather than repeating the same operation.
>
> Open1 = Open > Ref(Open, -1);
> Open2 = Open > Ref(Open, -2);
> ...
> Open6 = Open > Ref(Open, -6);
>
> Open123 = Open1 AND Open2 AND Open3;
> Open234 = Open2 AND Open3 AND Open4;
> ...
> Open456 = Open4 AND Open5 AND Open6;
>
> RU1_Check = IIF(XYZ_Check == 0,
> Open123,
> IIF(XYZ_Check == 1,
> Open234,
> IIF(XYZ_Check == 2,
> ...
> );
>
> Mike
> --- In [email protected], "sidhartha70" <sidhartha70@>
> wrote:
> >
> > Herman,
> >
> > This is where the problem occurs... because what I actually want to
> do
> > within each conditional if() statement is carry out some more array
> > manipulations. For example,
> >
> > HLRange = abs( H - L );
> > ABC = HLRange > Ref( HLRange, -1 ) AND HLRange > Ref( HLRange, -2)
> AND
> > HLRange > Ref( HLRange, -3 );
> > XYZ_Check=IIf(Ref(ABC,-1),1,IIf(Ref(ABC,-2),2,IIf(Ref(ABC,-
> 3),3,0)));
> >
> > if(XYZ_Check==0)
> > {
> > RU1_Check = Open>Ref(Open,-1) AND Open>Ref(Open,-2) AND
> Open>Ref(Open,-3);
> > }
> > if(XYZ_Check==1)
> > {
> > RU1_Check = Open>Ref(Open,-2) AND Open>Ref(Open,-3) AND
> Open>Ref(Open,-4);
> > }
> > if(XYZ_Check==2)
> > {
> > RU1_Check = Open>Ref(Open,-3) AND Open>Ref(Open,-4) AND
> Open>Ref(Open,-5);
> > }
> > if(XYZ_Check==3)
> > {
> > RU1_Check = Open>Ref(Open,-4) AND Open>Ref(Open,-5) AND
> Open>Ref(Open,-6);
> > }
> >
> > Any way to achieve this across the entire price array outside of a
> > loop....?
> >
> > TIA
> >
>