[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] Re: Finding the last true value in an array...



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

*********************************




Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___