Just repeat the IIF within an IF:
if (something) {
x = iif ( Open > Close, 0, 1 );
} else {
x = iif ( Open < Close, 0, 1 );
}
Alternatively, get rid of the IIF entirely since the _expression_ is boolean (which returns 1 on true) and add a NOT operator to reverse it:
if (something) {
x = NOT (Open > Close);
} else {
x = NOT (Open < Close);
}
Getting rid of the NOT and reversing the logic gives:
if (something) {
x = (Open <= Close);
} else {
x = (Open >= Close);
}
If, on the other hand you want to keep the IIF, you could integrate the 'something' into the IIF giving:
x = iif(something, NOT (Open > Close), NOT (Open < Close));
or:
x = NOT iif(something, Open > Close, Open < Close);
It all boils down to what is most 'readable' to you.
Mike
--- In amibroker@xxxxxxxxx ps.com, "ics4mer" <ics4mer@xxx > wrote:
>
> Hi all,
>
> A newbies question.
>
> Can I assign a relational operator to a variable?
>
> Logically, I'd like to do something like this:
>
> //// begin ex
>
> if ( something )
> myRelOp = ">";
> else
> myRelOp = "<";
>
> iif ( Open myRelOp Close, 0, 1 );
>
> //// end ex
>
> I hope that makes sense!
>
> TIA
>
> Robert Z
>