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

Re: [amibroker] Re: Tips for reducing CPU load



PureBytes Links

Trading Reference Links

Variables created/read with VarSet/VarGet *are* normal variables.

Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message ----- 
From: "Rob" <sidhartha70@xxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
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 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
>
>
>



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

**** 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/