No loop needed: //Count bars since flat or down, ergo # of consecutive up bars. up = BarsSince(C <= Ref(C,-1)); //Count bars since flat or up, ergo # of consecutive down bars. dn = BarsSince(C >= Ref(C,-1));
Plot(up,"up",colorGreen,styleHistogram); Plot(dn,"dn",colorRed,styleHistogram); -- Terry -----Original Message----- From: amibroker@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of klaus_korneker Sent: Thursday, January 11, 2007 04:31 To: amibroker@yahoogroups.com Subject: [amibroker] Re: loop counter Hi Nicolas, thank you very much !!! I thought i need a loop to do the job. Really excellent. --- In amibroker@yahoogroups.com, "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 amibroker@yahoogroups.com, "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 amibroker@yahoogroups.com, "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: <amibroker@yahoogroups.com> > > > 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 amibroker@yahoogroups.com, "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: <amibroker@yahoogroups.com> > > > >> 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 amibroker@yahoogroups.com, "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: amibroker@yahoogroups.com > [mailto:[EMAIL PROTECTED] > > > >> > On Behalf > > > >> >> Of klaus_korneker > > > >> >> Sent: Wednesday, January 10, 2007 09:48 > > > >> >> To: amibroker@yahoogroups.com > > > >> >> 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 amibroker@yahoogroups.com, "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: amibroker@yahoogroups.com > > [mailto:[EMAIL PROTECTED] > > > >> >> On Behalf > > > >> >> > Of klaus_korneker > > > >> >> > Sent: Wednesday, January 10, 2007 07:43 > > > >> >> > To: amibroker@yahoogroups.com > > > >> >> > 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