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 -----
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@xxx> 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
<*> 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/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
*********************************
__,_._,___
|