PureBytes Links
Trading Reference Links
|
Thanks TJ,
your posts are always very instructive, it seems that you know well how AB works :-)
good to know that using static variables is the best way, I try to summarize:
1) to create static variables using a single pass of an AFL on a symbol/watchlist, like an Explore with CreateStaticVariables.AFL
2) to optimize TradingSystem.AFL on the same symbol/watchlist who points to the static variables created in point 1 who are "alive" till overwritten or AB closed
of course this is not the case of MA( C,15) but something a lot more complex
--- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <groups@xxx> wrote:
>
> Hello,
>
> They are indeed recalculated when going through several backtests.
> You could store such values in static variables and use them later in subsequent runs,
> but it is in most cases _wasted_ effort, because array functions like MA( C, 15 ) are EQUALLY fast
> as STATIC variables. This is so because static variables requires one pass any way (date/time synchronization)
> the same as MA. MA can actually be slightly faster than static array variable because of locality of reference.
>
> Situation is different with normal variables (as I pointed out in my previous post), because normal variables
> do not require synchronization (they are already in perfect sync) and do not require extra memory
> nor ANY computation as they are simple POINTERS to values that were returned by function.
> Storing/reading a pointer to array is a matter of single CPU instruction, i.e. is blazing fast (one CPU clock cycle).
>
> Regarding AddToComposite/Foreign - they are way slower than Static variables, so it makes no sense to use them for that purpose.
>
> Best regards,
> Tomasz Janeczko
> amibroker.com
> ----- Original Message -----
> From: "Bisto" <bistoman73@xxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Tuesday, October 06, 2009 1:52 PM
> Subject: [amibroker] Re: Tips for reducing CPU load
>
>
> >I was thinking about this issue yesterday and I have a question, please correct me if I am wrong:
> >
> > During an optimization process there are so many repetitions of a function with invariant parameter equal to the total number of
> > the steps of the optimization.
> >
> > In this case MA(C,15) will be calculated for every set of optimization parameter even if it is invariant, OK?
> >
> > If we have a very time consuming invariant function in the TS it will be calculated a lot of times even if it is not needed. This
> > is true if I have well interstood how AB works, please correct me
> >
> > my idea is to store this very time consuming invariant function in a "fake" symbol (using Addtocomposite) and access to its values
> > by Setforeing.
> >
> > Is it a good idea?
> >
> > Bisto
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <groups@> wrote:
> >>
> >> Hello,
> >>
> >> For example, take a look at this simple code:
> >>
> >> Buy = Cross( MA(C, 5 ), MA( C, 15 ) );
> >> Sell = Cross( MA( C, 15 ), MA( C, 5 ) );
> >>
> >> There are 2 repetitions of same function call with invariant parameters:
> >> MA(C, 5 ) - is called twice
> >> MA( C, 15 ) - is called twice
> >>
> >> This can be written in more efficient manner using variables:
> >>
> >> shortma = MA(C, 5 );
> >> longma = MA( C, 15 );
> >> Buy = Cross( shortma, longma );
> >> Sell = Cross( longma, shortma );
> >>
> >> That is what I meant.
> >>
> >> Best regards,
> >> Tomasz Janeczko
> >> amibroker.com
> >> ----- Original Message -----
> >> From: "Rob" <sidhartha70@>
> >> To: <amibroker@xxxxxxxxxxxxxxx>
> >> Sent: Tuesday, October 06, 2009 10:21 AM
> >> Subject: [amibroker] Re: Tips for reducing CPU load
> >>
> >>
> >> > TJ,
> >> >
> >> > Sorry my programming terminology is not as good as yours...
> >> > What do you mean by 'replacing repeated function calls with invariant parameters'...??
> >> >
> >> > --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <groups@> wrote:
> >> >>
> >> >> First and foremost: use AFL Editor, Tools->Code Check And Profile
> >> >> to reduce complexity of your code, by removing repeated function calls (with invariant parameters),
> >> >> using array operators wherever possible instead of loops,
> >> >> re-thinking code to get simpler formulation,
> >> >> avoiding any JScript/VBScript / COM objects in charts, etc.
> >> >>
> >> >> Best regards,
> >> >> Tomasz Janeczko
> >> >> amibroker.com
> >> >> ----- Original Message -----
> >> >> From: "Ara Kaloustian" <ara1@>
> >> >> To: <amibroker@xxxxxxxxxxxxxxx>
> >> >> Sent: Tuesday, October 06, 2009 12:23 AM
> >> >> Subject: Re: [amibroker] Tips for reducing CPU load
> >> >>
> >> >>
> >> >> >- review your memory settings in preferences... make sure you are not
> >> >> > allocating memory that you are not using
> >> >> >
> >> >> > - reduce number of symbols you monitor if you don't need them all
> >> >> >
> >> >> >
> >> >> > ----- Original Message -----
> >> >> > From: "Rob" <sidhartha70@>
> >> >> > To: <amibroker@xxxxxxxxxxxxxxx>
> >> >> > Sent: Monday, October 05, 2009 2:33 PM
> >> >> > Subject: [amibroker] Tips for reducing CPU load
> >> >> >
> >> >> >
> >> >> >> Hi All,
> >> >> >>
> >> >> >> I seem to be maxing out the core I'm using on AB... starting to cause
> >> >> >> problems operationally. I'm mainly doing charting and real time AFL.
> >> >> >>
> >> >> >> Any tips for reducing CPU load so I can perhaps give myself a little more
> >> >> >> breathing space....??
> >> >> >>
> >> >> >> TIA
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >> ------------------------------------
> >> >> >>
> >> >> >> **** 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/
> >> >> >>
> >> >> >> Yahoo! Groups Links
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> > ------------------------------------
> >> >> >
> >> >> > **** 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/
> >> >> >
> >> >> > Yahoo! Groups Links
> >> >> >
> >> >> >
> >> >> >
> >> >>
> >> >
> >> >
> >> >
> >> >
> >> > ------------------------------------
> >> >
> >> > **** 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/
> >> >
> >> > Yahoo! Groups Links
> >> >
> >> >
> >> >
> >>
> >
> >
> >
> >
> > ------------------------------------
> >
> > **** 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/
> >
> > Yahoo! Groups Links
> >
> >
> >
>
------------------------------------
**** 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/
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/
|