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

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



PureBytes Links

Trading Reference Links

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@xxx> 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/