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

Reply via email to