Hello, Loop is not needed in that case neiter. It is one-liner too. It simply counts bars since REVERSE condition was true.
Count = BarsSince( C <= Ref( C, -1 ) ); Best regards, Tomasz Janeczko amibroker.com ----- Original Message ----- From: "klaus_korneker" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Thursday, January 11, 2007 12:30 PM Subject: [amibroker] Re: loop counter > Hi Nicolas, > > thank you very much !!! > I thought i need a loop to do the job. > Really excellent. > > > > > --- In [email protected], "discuslorraine" <[EMAIL PROTECTED]> > wrote: >> >> Hello, >> >> Here is a solution : >> >> Cpt = 0; >> for ( i=1; i < BarCount; ++i ) { >> if ( C[i] > C[i-1] ) ++Cpt; >> else Cpt = 0; >> Count[i] = Cpt; >> } >> >> Plot(Count,"Count",colorRed); >> >> Best regards, Nicolas >> >> >> --- In [email protected], "klaus_korneker" >> <klaus_korneker@> wrote: >> > >> > Hello, >> > >> > i have tried that already, but it counts all bars (whole history)where >> > the condition is true. I want that it always resets to zero when the >> > condition isn't true and when it is true it should start again from >> > zero. Can you help please ? >> > >> > >> > >> > >> > --- In [email protected], "Tomasz Janeczko" <groups@> wrote: >> > > >> > > Hello, >> > > >> > > This single-liner and does not require any looping: >> > > >> > > Count = Cum( C > Ref( C, -1 ) ); >> > > >> > > >> > > Best regards, >> > > Tomasz Janeczko >> > > amibroker.com >> > > ----- Original Message ----- >> > > From: "klaus_korneker" <klaus_korneker@> >> > > To: <[email protected]> >> > > Sent: Thursday, January 11, 2007 9:43 AM >> > > Subject: [amibroker] Re: loop counter >> > > >> > > >> > > > Hello, >> > > > >> > > > thanks a lot ! >> > > > >> > > > Can you please also show me how i could count any condition like >> > > > C>ref(C,-1); >> > > > >> > > > I would like to plot a graph that shows me the number of bars > where >> > > > the following condition is true. >> > > > >> > > > Thanks ! >> > > > >> > > > Klaus >> > > > >> > > > >> > > > --- In [email protected], "Tomasz Janeczko" <groups@> > wrote: >> > > >> >> > > >> Hello, >> > > >> >> > > >> See Comments section in BarIndex() reference: >> > > >> >> > > >> http://www.amibroker.com/guide/afl/afl_view.php?barindex >> > > >> >> > > >> When running a loop over array you must NOT access >> > > >> elements outside 0..BarCount-1 range. >> > > >> >> > > >> The code that you want to write should look as follows: >> > > >> >> > > >> bi = BarIndex(); >> > > >> >> > > >> for( i = 0; i < BarCount; i++ ) >> > > >> { >> > > >> Cnt[ i ] = i + bi[ 0 ]; >> > > >> } >> > > >> >> > > >> Best regards, >> > > >> Tomasz Janeczko >> > > >> amibroker.com >> > > >> ----- Original Message ----- >> > > >> From: "klaus_korneker" <klaus_korneker@> >> > > >> To: <[email protected]> >> > > >> Sent: Wednesday, January 10, 2007 8:30 PM >> > > >> Subject: [amibroker] Re: loop counter >> > > >> >> > > >> >> > > >> > Thanks for the explanation. But how can i now create a >> > > >> > barindex(counter) through a loop. Graph1 plots the barindex. >> I have >> > > >> > tried to use (i = 0; i < LastValue(BarIndex()); i++ ) but this >> > > >> > generates an error. >> > > >> > Can you help ? >> > > >> > >> > > >> > Cnt = 0; >> > > >> > for( i = 0; i < LastValue(BarIndex()); i++ ) >> > > >> > { >> > > >> > Cnt[ i ] = i ; >> > > >> > } >> > > >> > >> > > >> > Graph0 = Cnt; >> > > >> > Graph1 = BarIndex(); >> > > >> > >> > > >> > >> > > >> > --- In [email protected], "Terry" <MagicTH@> wrote: >> > > >> >> >> > > >> >> BarCount does not necessarily == LastValue(BarIndex()) >> > > >> >> >> > > >> >> This is because Amibroker uses "quickAFL" which means it >> only uses >> > > >> > enough >> > > >> >> bars to "get the job done". This frequently is not all the > bars. >> > > >> >> >> > > >> >> -- >> > > >> >> Terry >> > > >> >> >> > > >> >> -----Original Message----- >> > > >> >> From: [email protected] >> [mailto:[EMAIL PROTECTED] >> > > >> > On Behalf >> > > >> >> Of klaus_korneker >> > > >> >> Sent: Wednesday, January 10, 2007 09:48 >> > > >> >> To: [email protected] >> > > >> >> Subject: [amibroker] Re: loop counter >> > > >> >> >> > > >> >> Hi Terry, >> > > >> >> >> > > >> >> thank you very much for your explanation ! >> > > >> >> However it looks a little bit strange. It works still the > same. >> > > >> >> When set the entire array to 0 with Cnt = 0; and click > Apply, it >> > > > shows >> > > >> >> the same value as with the confirmation code in the graph. >> > However >> > > >> >> automatically after about 1 second it changes the value to 199 >> > > > instead >> > > >> >> 4517 >> > > >> >> >> > > >> >> BTW: i know that it displays the number in the title based > on my >> > > >> > cursor. >> > > >> >> >> > > >> >> Regards >> > > >> >> >> > > >> >> Klaus >> > > >> >> >> > > >> >> >> > > >> >> --- In [email protected], "Terry" <MagicTH@> wrote: >> > > >> >> > >> > > >> >> > To initialize the loop you should do this: >> > > >> >> > Cnt = 0; //Initializes entire array, not just 1st element. >> > > >> >> > >> > > >> >> > When you click on the chart the number should change because >> > > > you are >> > > >> >> > selecting "that bar". Also see last paragraph about > barcount. >> > > >> > Otherwise, >> > > >> >> > your loop is correct. >> > > >> >> > >> > > >> >> > Here's some code to verify with: >> > > >> >> > >> > > >> >> > x = BarIndex(); >> > > >> >> > Plot(x,"x",1,styleStaircase); >> > > >> >> > NumToStr(BarCount,1.0); >> > > >> >> > NumToStr(LastValue(BarIndex()),1.0); >> > > >> >> > >> > > >> >> > Note the last two statements print in the interpretation >> > window and >> > > >> >> they are >> > > >> >> > different because of quickAFL. The first changes with your >> > > > selection >> > > >> >> and the >> > > >> >> > number of bars showing. The last does not change. It is the >> > > > absolute >> > > >> >> number >> > > >> >> > of bars in your data. This is probably the reason your >> > results are >> > > >> >> changing >> > > >> >> > in unexpected ways as you are using BarCount. >> > > >> >> > -- >> > > >> >> > Terry >> > > >> >> > >> > > >> >> > -----Original Message----- >> > > >> >> > From: [email protected] >> > [mailto:[EMAIL PROTECTED] >> > > >> >> On Behalf >> > > >> >> > Of klaus_korneker >> > > >> >> > Sent: Wednesday, January 10, 2007 07:43 >> > > >> >> > To: [email protected] >> > > >> >> > Subject: [amibroker] loop counter >> > > >> >> > >> > > >> >> > Hello, >> > > >> >> > >> > > >> >> > i am trying to build a counter with a loop. i have already >> > > > tried the >> > > >> >> > following, but it seems that anything is wrong. The chart >> > shows the >> > > >> >> > bar number, but when i click inside the chart, the number >> > changes. >> > > >> >> > >> > > >> >> > Cnt[0] = 0; >> > > >> >> > for( i = 0; i < BarCount; i++ ) >> > > >> >> > { >> > > >> >> > Cnt[ i ] = i ; >> > > >> >> > } >> > > >> >> > >> > > >> >> > Graph0 = Cnt; >> > > >> >> > >> > > >> >> > Thanks i advance ! >> > > >> >> > >> > > >> >> > >> > > >> >> > >> > > >> >> > Please note that this group is for discussion between users >> > only. >> > > >> >> > >> > > >> >> > To get 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 >> > > >> >> > >> > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> Please note that this group is for discussion between users >> only. >> > > >> >> >> > > >> >> To get 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 >> > > >> >> >> > > >> > >> > > >> > >> > > >> > >> > > >> > >> > > >> > Please note that this group is for discussion between users > only. >> > > >> > >> > > >> > To get 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 >> > > >> > >> > > >> > >> > > >> > >> > > >> > >> > > >> > >> > > >> >> > > > >> > > > >> > > > >> > > > >> > > > Please note that this group is for discussion between users only. >> > > > >> > > > To get 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 >> > > > >> > > > >> > > > >> > > > >> > > > >> > > >> > >> > > > > > Please note that this group is for discussion between users only. > > To get 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 > > > > >
