| PureBytes Links Trading Reference Links | | 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 -----  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 amibroker@xxxxxxxxxxxxxxx, 
  "wavemechanic" <timesarrow@xxx> 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: amibroker@xxxxxxxxxxxxxxx
 >   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 amibroker@xxxxxxxxxxxxxxx, "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 amibroker@xxxxxxxxxxxxxxx, 
  "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 amibroker@xxxxxxxxxxxxxxx, 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
 
 <*> To visit your group on the web, go 
  to:
 http://groups.yahoo.com/group/amibroker/
 
 <*> 
  Your email settings:
 Individual Email | 
  Traditional
 
 <*> To change settings online go 
  to:
 http://groups.yahoo.com/group/amibroker/join
 (Yahoo! ID required)
 
 <*> To change settings via 
  email:
 mailto:amibroker-digest@xxxxxxxxxxxxxxx
 mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx
 
 <*> 
  To unsubscribe from this group, send an email to:
 amibroker-unsubscribe@xxxxxxxxxxxxxxx
 
 <*> 
  Your use of Yahoo! Groups is subject to:
 http://docs.yahoo.com/info/terms/
 
 
   
 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
 
 
 **** 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
 
 *********************************
 
 
 
 ![]()  
 
 __,_._,___
 | 
 |