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

Re: [amibroker] Methods for speeding up AFL code



PureBytes Links

Trading Reference Links

Hello,

You really need to take a look at the following and I guess you will be able to rewrite
your formulas to run 10 times faster.

1. Use Tools->preferences->Misc "Display chart timing" to find out which formula takes
the most time to execute
2. Use AFL editor "Check" function to find out how many past bars given formula requires
3. To minimize number of charts required:
  a) avoid Cum() function, instead use BarIndex() where possible
  b) use SetBarsRequired at the end of formula to force smaller number of bars to be used (may affect some indicator values)
  c) use VARIABLES as much as you can. If you need the same function twice - call it ONCE and assign the result to variable
   and use variable later instead of calling the same function over and over
  d) investigate what you are doing inside loops. When you put very time consuming stuff inside loop it will take N-times more
 than the same stuff outside loop. Remove array functions from inside the loops. For max speed loops should operate on array 
ELEMENTS only.


Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message ----- 
From: "Dennis Brown" <see3d@xxxxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Friday, May 11, 2007 4:18 PM
Subject: [amibroker] Methods for speeding up AFL code


> Hello,
>
> I have run out of processing speed on my 2GHz core duo trading
> machine.  I do a lot of indicator computing and have bogged down AB
> to the point where it will no longer respond to the UI functions like
> cross hairs or switching timeframes when I click the buttons --or
> even being able to edit the AFL --and I still want to do 10 times as
> much as I am doing now.  The real time processing speed is inhibiting
> my creativity.
>
> So far I have put in a parameter that limits the number of bars that
> my most intensive calculations use.  This helped, but not enough.
>
> My next idea is to only compute some functions that do not change
> often only once per bar complete.
>
> However, I still need to compute everything if I change a parameter,
> or switch stocks.  To do this, I thought I might have to keep a copy
> of every parameter and compare each one to the value when it was last
> computed --and set a "needs updating" flag if any have changed.
>
> Has anyone else used this approach?
> Any hints about what I need to watch out for?
> Is there an easier way?
>
> Thanks,
> Dennis
>
>
>
> 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/