Hi,
Is this what you are looking for?
firstVisibleBar = Status("FirstVisibleBar");
lastVisibleBar = Status("LastVisibleBar");
for (bar = firstVisibleBar; bar <= lastVisibleBar; bar++) {
// Your code here...
}
Mike
--- In [email protected], "Panos Boufardeas" <[EMAIL PROTECTED]>
wrote:
>
> 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 [email protected], "Panos Boufardeas" <panosbouf@>
> 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 [email protected], "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: <[email protected]>
> > > 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
> > >
> > >
> > >
> > >
> > >
> >
>