Don't have time now to think about it and it
would be easier if you posted the code instead of working with a moving
target. However, off the top of my head you might be able to avoid
looping by using brute force. For example, if the range is 5 bars then you
could test the 5th bar back with iif(barssince(x) == 5, and if that is
negative then do the same for the 4th bar back, etc.
----- Original Message -----
Sent: Tuesday, January 13, 2009 8:04
AM
Subject: [amibroker] Re: Finding the last
true value in an array...
SelectedValue() works Bill... Thanks.
However, the
problem I'm having is that I'm using this in AFL code and I want it to
complete the historical array if you like, not just off a SelectedValue()
but with each value of Sum(x,range) as ir changes... which it's looking
like is not possible.
Horribly I might have to use a loop.
Errrgg.
--- In amibroker@xxxxxxxxxxxxxxx,
"sidhartha70" <sidhartha70@xxx> wrote: > > Nope, I've tried
it Bill... > > I get an Error 5, Argument #3 has incorrect type
on the ValuneWhen() > line... > > > > --- In
amibroker@xxxxxxxxxxxxxxx,
"wavemechanic" <timesarrow@> wrote: > > > > 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: amibroker@xxxxxxxxxxxxxxx >
> 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@> 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 > > > > > >
> > > > >
> > ------------------------------------------------------------------------------ >
> > > > > > > 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
********************************* 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
*********************************
__,_._,___
|