How about this? x = condition that generates your 1,0 array y = sum(x, range) z = valuewhen(x, barindex(), y) position in array = lastvalue(barindex()) - z + 1
Bill ----- Original Message ----- From: sidhartha70 To: [email protected] Sent: Monday, January 12, 2009 6:33 PM Subject: [amibroker] Re: Finding the last true value in an array... Sorry Barry... my terminology is confusing... Lets say I have an array that has only true or false values in it... Lets say the last 10 value of this array are as follows, from x intervals ago until now... 0,1,0,0,1,0,0,1,0,0 x.................Now Now, obviously, BarsSince(array) will return a value of 2... i.e. the last true value was 2 intervals ago. However, the value I'm trying to get is the last value of true in the above x elements of the array... so I want an expression that returns 8 for the above array (i.e. 8 intervals back is the last value of true). Any ideas...? Hopefully that's clearer now. --- In [email protected], "Barry Scarborough" <razzba...@...> wrote: > > What are your trying to do? HHV gives the value of the highest high > over the period you enter in x. If you want to find how far back that > is you can use > > bs = BarsSince(H == HHV(H, 10)); > // the next line prints the num bars back and the high of that bar > printf(NumToStr(bs, 1.0) + " High " + NumToStr(HHV(H, 10), 1.2)); > > If you want to find the value of the other things bs bars ago then > you can > // use the following. This applies to any array > lastHigh = ref(High, - bs); > // this is another way to see the results that shows the high value > Plot(lastHigh, "high bars ago", colorBlack); > Plot(Ref(C, -bs), "close bars ago", colorblue); > Plot(Ref(MA(C, 10), -bs), "MA(10) value bars ago", colorGreen); > // then look at what valuewhen returns > Plot(ValueWhen(H == HHV(H, 10), H, -1), "ValueWhen", colorRed); > > bsolutely the last thing you want to do is start using loops, such as > for loops, to extract data from ABs arrays. Your code will be much > cleaner and faster if you use straight AFL. > > Your terminology true value is confusing. The value in an array is > the true value. Do you mean what was the value when the condition was > true? > > Barry > > > > --- In [email protected], "sidhartha70" <sidhartha70@> > wrote: > > > > Graham, > > > > I'm trying to get my head around that code right now... but first > > thing I noticed was that my post was poorly worded. Let me reword it > > below, and maybe you can tell me if this is what you thought I > meant.... > > > > Ok. It's easy to find the first occurrence of a true value of an > > array... that is looking from now backwards x intervals. simply > > HHV(array,x) where x=no of intervals back. > > > > However, how can I find the last true value of the array looking > back > > over x intervals...?? i.e. the first true value starting from x and > > looking forward to now. > > > > is there an array method without looping...? > > > > Many Thanks > > > > > > --- In [email protected], Graham <kavemanperth@> wrote: > > > > > > try this > > > array = h; > > > LastHHVValue = valuewhen( hhvbars(array,x)==0, array ); > > > > > > -- > > > Cheers > > > Graham Kav > > > AFL Writing Service > > > http://www.aflwriting.com > > > > > > > > > > > > 2009/1/13 sidhartha70 <sidhartha70@>: > > > > Hi All, > > > > > > > > Ok. It's easy to find the last true value of an array... simply > > > > HHV(array,x) where x=no of intervals back. > > > > > > > > However, how can I find the last true value of the array > looking back > > > > over x intervals...?? > > > > > > > > is there an array method without looping...? > > > > > > > > Many Thanks > > > > > > > > > > > > > > ------------------------------------ **** 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 ------------------------------------------------------------------------------ No virus found in this incoming message. Checked by AVG - http://www.avg.com Version: 8.0.176 / Virus Database: 270.10.6/1889 - Release Date: 1/12/2009 8:18 PM
