PureBytes Links
Trading Reference Links
|
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/
|