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

[amibroker] Re: how to improve loop speed



PureBytes Links

Trading Reference Links

Hi
 Today I was playing without fully understanding what I was doing and
I believe I made a break through.
Any way what I found is if I use 
for(i = 0; i < BarCount; i++ )
the results are 3446 data bars used during this check. Total 
execution time was 0.0228476 sec.

and If I use 
for(i=BarCount-1;i>1 AND Status("firstvisiblebar");i--)
The results are 3446 data bars used during this check. Total 
execution time: 0.00249557 sec.

so the second loop looks faster.
I would like to ask one more time what can I write to use just the 
visible bars? Is this possible? I am trying to find a way to speed up 
the loops in codes that require them ,and to count just the visible 
bars or as less as possible.

Thank you
Panos

--- In amibroker@xxxxxxxxxxxxxxx, "Panos Boufardeas" <panosbouf@xxx> 
wrote:
>
> Thank you Tomasz
>  
> So what I can see from your reply, this example here is correct.
> But must be a way for a loop to calculate only the last X bars, and 
> not all of theme
>  
> Thank you 
> Panos
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <groups@> 
> wrote:
> >
> > Hello,
> > 
> > Move ALL array functions OUTSIDE of loop!
> > 
> > Inside the loop there should be only NON-array functions.
> > 
> > 
> > // THIS MUST BE OUTSIDE THE LOOP !!!!!!
> > 
> > Q=Param( "% Change",1.50,.25,14 ,0.25);
> > 
> > Z= Zig(C,q ) ;
> > 
> > HH=((Z<Ref(Z,- 1) AND Ref(Z,-1) > Ref(Z,-2)) AND (Peak(z,q,1 )
> > 
> >  >Peak(Z,q,2 )));
> > 
> > LL=((Z>Ref(Z,- 1) AND Ref(Z,-1) < Ref(Z,-2)) AND (Trough(Z,q,1 ) 
> <Trough(Z,q,2 )));
> > 
> > 
> > dist = 0.5*ATR (20);
> > 
> > 
> > for( i = 0; i < BarCount; i++ )
> > {
> > 
> >   // ONLY THIS should be inside the loop
> >   if( HH [i]) PlotText( "HH"+ "\n"+H[ i ], i, H[ i ]+dist[i], 
> colorGreen );
> >   if( LL [i] ) PlotText( ""+L[ i ]+"\nLL", i, L[ i ]-dist[i], 
> colorRed );
> > }
> > 
> > Nothing more is needed.
> > 
> > Best regards,
> > Tomasz Janeczko
> > amibroker.com
> > ----- Original Message ----- 
> > From: "Panos Boufardeas" <panosbouf@>
> > To: <amibroker@xxxxxxxxxxxxxxx>
> > Sent: Thursday, November 27, 2008 6:45 PM
> > Subject: [amibroker] how to improve loop speed
> > 
> > 
> > 
> > 
> > Hi
> > 
> > I am curious to find out how to make a loop to run from 
> firstvisiblebar
> > 
> > 
> > I think I need to write something like the following . but I 
don't 
> know how
> > 
> > 
> > lvb = Status("lastvisiblebar");
> > 
> > fvb = Status("firstvisiblebar");
> > 
> > 
> > for( i = 0; i < ??? ; i++ )
> > 
> > {
> > 
> > 
> > I have an example here that executes very slowly in live intra 
day 
> chart
> > 
> > Can you tell me please how I can correct this example ?
> > 
> > 
> > Q=Param( "% Change",1.50,.25,14 ,0.25);
> > 
> > Z= Zig(C,q ) ;
> > 
> > HH=((Z<Ref(Z,- 1) AND Ref(Z,-1) >
> > 
> >   Ref(Z,-2)) AND (Peak(z,q,1 )
> > 
> >  >Peak(Z,q,2 )));
> > 
> > LL=((Z>Ref(Z,- 1) AND Ref(Z,-1) < Ref(Z,-2)) AND (Trough(Z,q,1 )
> > 
> > <Trough(Z,q,2 )));
> > 
> > 
> > dist = 0.5*ATR (20);
> > 
> > 
> > for( i = 0; i < BarCount; i++ )
> > 
> > {
> > 
> > if( HH [i]) PlotText( "HH"+ "\n"+H[ i ], i, H[ i
> > 
> > ]+dist[i], colorGreen );
> > 
> > if( LL [i] ) PlotText( ""+L[ i ]+"\nLL", i, L[ i
> > 
> > ]-dist[i], colorRed );
> > 
> > }
> > 
> > 
> > Plot(C,"",IIf(C>O,colorGreen,colorRed),styleCandle);
> > 
> > 
> > Thank you
> > 
> > Panos
> > 
> > 
> > 
> > 
> >
>



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

**** IMPORTANT ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

*********************
TO GET TECHNICAL 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/