Variables created/read with VarSet/VarGet *are* normal variables. Best regards, Tomasz Janeczko amibroker.com ----- Original Message ----- From: "Rob" <[email protected]> To: <[email protected]> Sent: Tuesday, October 06, 2009 4:34 PM Subject: [amibroker] Re: Tips for reducing CPU load
> TJ, > > Are VarSet() and VarGet() as fast as normal variables...? Or are they similar > in speed to static variables....? > > Thanks > > --- In [email protected], "Tomasz Janeczko" <gro...@...> 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" <bistoma...@...> >> To: <[email protected]> >> 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 [email protected], "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: <[email protected]> >> >> 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 [email protected], "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: <[email protected]> >> >> >> 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: <[email protected]> >> >> >> > 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 > > >
