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

Re: [amibroker] Re: General query about cumulating values for indicators



PureBytes Links

Trading Reference Links

No, you are making assumptions instead of reading the manual.
AFL does NOT work on bar-by-bar basis. It works on WHOLE ARRAYS,
unless you tell it NOT to do so by using a loop.

User's Guide: Understanding AFL:
http://www.amibroker.com/guide/h_understandafl.html

(THIS IS MUST READ FOR EVERYONE)
===============================

Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message ----- 
From: "sidhartha70" <sidhartha70@xxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Thursday, May 22, 2008 10:56 PM
Subject: [amibroker] Re: General query about cumulating values for indicators


> Mike,
> 
> you seem to know your onions... While I'm here can I ask you another
> question...
> 
> Can you clear up for me exactly 'how' AFL executes it's code...
> 
> When I say 'how', this is what I mean. Coming from C# world, it's
> pretty clear that trading type software tends to work on a bar by bar
> basis... i.e. you have an event driven call, of the like,
> OnNewBar()... in that event call you place the code that you want
> executed on each bar...
> 
> It's not clear to me 'how' AFL is called. If I'm applying an
> indicator, how many times is that indicator code called...??
> 
> The reason I ask is, generally the way AFL works with arrays seems
> very efficient... until perhaps you start having to loop through
> arrays as part of your code... for example,
> 
> for(i=1;i<BarCount;i++)
> {
> Value9[i]=IIf(Value7[i]!=Value8[i],((Value6[i]-Value8[i])/(Value7[i]-Value8[i])-0.5)+0.5*Value9[i-1],Value9[i]);
> Value9[i]=IIf(Value9[i]>0.9999,0.9999,Value9[i]);
> Value9[i]=IIf(Value9[i]<-0.9999,-0.9999,Value9[i]);
> Value10[i]=IIf(Value9[i]!=1,0.25*log((1+Value9[i])/(1-Value9[i]))+0.5*Value10[i-1],Value10[i]);
> }
> 
> I have recently added this code to one of my indicators and it does
> seem very slow when scrolling through graphs. Perhaps my code is
> inefficient...??
> 
> I'm running a beast of a machine here, so speed should not be an issue.
> 
> If I can understand 'how' AFL excutes... it might help me understand
> bottlenecks.
> 
> Many Thanks
> 
> 
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@xxx> wrote:
>>
>> Nope, you're not alone.
>> 
>> The topic pops up, in one form or another, every couple of weeks or 
>> so. Sounds like you understand the concept now.
>> 
>> Good luck.
>> 
>> Mike
>> 
>> --- In amibroker@xxxxxxxxxxxxxxx, "sidhartha70" <sidhartha70@> 
>> wrote:
>> >
>> > Thanks Mike.
>> > 
>> > So it seems I'm not the only one coming from more 'traditional'
>> > languages to struggle with this concept.
>> > 
>> > The bottom line it seems is that you cannot recursively alter the
>> > value of any array by referencing other values of that array... at
>> > least not directly.
>> > 
>> > 
>> > --- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@> wrote:
>> > >
>> > > Read thread #122034 for a similar discussion, including 
>> explanation. 
>> > > 
>> > > Mike
>> > > 
>> > > --- In amibroker@xxxxxxxxxxxxxxx, "sidhartha70" <sidhartha70@> 
>> > > wrote:
>> > > >
>> > > > Hi All,
>> > > > 
>> > > > Can someone clear this up for me... I am simply trying to 
>> cumulate 
>> > > the
>> > > > value of an array. My intial thoughts were to do something like 
>> the
>> > > > following,
>> > > > 
>> > > > Value1=0;
>> > > > Value2=log(Close);
>> > > > Value1=Ref(Value1,-1)+Value2;
>> > > > 
>> > > > However, that doesn't seem to work... So I've ended up with,
>> > > > 
>> > > > Value2=log(Close);
>> > > > Value1=Cum(Value2);
>> > > > 
>> > > > Which does seem to work. I can't see why the first doesn't.
>> > > > 
>> > > > Can anyone explain...? Thanks
>> > > >
>> > >
>> >
>>
> 
> 
> 
> ------------------------------------
> 
> 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/