Have you tried it or are just "not sure"? Works for me and can move to any bar and get the "selectedvalue". If in doubt use selectedvalue(sum()). ----- Original Message ----- From: sidhartha70 To: [email protected] Sent: Tuesday, January 13, 2009 6:01 AM Subject: [amibroker] Re: Finding the last true value in an array...
Actually Bill, not sure this works... since the 3rd argument in ValueWhen() is required to be a number and not an array. Could use LastValue() to turn it into a number, but of course this only returns the value from the right hand edge of the chart... so it wouldn't work historically... which is what I need. Any thoughts...? --- In [email protected], "wavemechanic" <timesar...@...> wrote: > > 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" <razzbarry@> > 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 > ------------------------------------ **** 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/1891 - Release Date: 1/13/2009 8:17 AM
