[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] Re: Relational Operators assigned to variables?



PureBytes Links

Trading Reference Links



Hi Mike,

Thanks for your reply. I'm sure that I can get something happening with a bunch of if/iif statements. I've been trying to avoid it because I think it'll complicate the code and make it less extensible. To give you an idea of what I'm attempting, I'm currently experimenting with the WFA engine and running some dubious code, but the reason for this code is NOT to write a strategy, it's to understand and get some experiential feel for the WFA.

My code is more similar to the following:

if ( something )
    myOp = ">=";
else
    myOp = "<";

// and this is the clinker.....
BuyCondition =  ref(open, -x)  myOp ref(close, -y)   AND  ref(close, -z)  myOp2 ref(close,-a)...[ AND....AND ]

You can see have a "variable operator" might keep it simple, particularly where you might want to add further AND clauses to the buy condition.

Thanks again

Robert Z




From: Mike <sfclimbers@xxxxxxxxx>
To: amibroker@xxxxxxxxxxxxxxx
Sent: Thursday, 30 July, 2009 1:51:53 AM
Subject: [amibroker] Re: Relational Operators assigned to variables?

 

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
>



Access Yahoo!7 Mail on your mobile. Anytime. Anywhere. Show me how.

__._,_.___


**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

TO GET TECHNICAL SUPPORT send an e-mail directly to
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/





Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___