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

Re: [amibroker] Re: Recursive Boolean Expressions... Possible?



PureBytes Links

Trading Reference Links

It depends. The loop is general-purpose solution and works always.

In some cases loops can be eliminated using Cum(), ValueWhen(),
AMA, AMA2.

Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message ----- 
From: "sidhartha70" <sidhartha70@xxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Thursday, September 18, 2008 9:56 AM
Subject: [amibroker] Re: Recursive Boolean Expressions... Possible?


> Can I ask the master...?? TJ... Does this kind  of expression
> absolutely require a loop structure?
> 
> TIA
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "gp_sydney" <gp.investment@xxx> wrote:
>>
>> 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 amibroker@xxxxxxxxxxxxxxx, Graham <kavemanperth@> 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 <gp.investment@>:
>> > > 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 amibroker@xxxxxxxxxxxxxxx, "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
>> > >>
>> >
>>
> 
> 
> 
> ------------------------------------
> 
> Please note that this group is for discussion between users only.
> 
> To get support from AmiBroker please send an e-mail directly to 
> SUPPORT {at} amibroker.com
> 
> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> http://www.amibroker.com/devlog/
> 
> For other support material please check also:
> http://www.amibroker.com/support.html
> Yahoo! Groups Links
> 
> 
> 

------------------------------------

Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

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

For other support material please check also:
http://www.amibroker.com/support.html
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/