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

RE: [amibroker] size of an array in AFL?



PureBytes Links

Trading Reference Links

I recall some added rider to using Barcount when it was introduced, I think
you had to turn off QuickAFL for Indicators in the preferences, but I am not
absolutely certain of this.

>From the Help files

BarCount constant gives the number of bars in array (such as Close, High,
Low, Open, Volume, etc). Array elements are numbered from 0 (zero) to
BarCount-1. 
To get the first bar you can use array[ 0 ], to get the last bar of array
you can use array[ BarCount - 1 ];
For example:
Close[ 5 ];
Represents the sixth element (bar) of the close array.
Close[ 0 ];
Represents the very first available bar of the close array.
High[ BarCount - 1 ];
Represents the last bar of High array. 

This example illustrates the for statement:
myema[ 0 ] = Close[ 0 ]; 
for( i = 1; i < BarCount; i++ )
{
  myema[ i ] = 0.1 * Close[ i ] + 0.9 * myema[ i - 1 ];
}

Cheers,
Graham
http://groups.msn.com/ASXShareTrading
http://groups.msn.com/FMSAustralia 
-----Original Message-----
From: Ed [mailto:pablito@xxxxxxx] 
Sent: Saturday, 25 October 2003 5:16 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: Re: [amibroker] size of an array in AFL?


to my knowledge: 

LastValue(BarIndex()): gives the number of bars available for the symbol
BarIndex(): gives the bar number counting from the first bar available for
the symbol.

I'm a bit confused about BarCount though. I always thought that BarCount:
gives the number of bars inside an indicator window. So the first bar shown
inside the window is bar-number 0.

However, I put inside the indicator builder:

WriteVal(BarCount);
WriteVal(LastValue(BarIndex());
WriteVal(BarIndex());

The last 2 do as expected.  WriteVal(LastValue(BarIndex()); always gives you
the total number of bars available for a symbol. WriteVal(BarIndex()); gives
you the index of the bar and its output changes when you move the cursor
with the amount of bars you move the cursor back.

However BarCount behaves differently. Actually if a symbol has 2900 bars
WriteVal(BarCount); prints 2900 if you put the cursor on any bar if you show
ALL data in the chart. If I put only 2 bars in a chart WriteVal(BarCount);
prints 52 when I put the curson on the second and last bar.

I played with it a little but did not find out yet exactly how BarCount is
defined.

Maybe somebody can enlighten me?

Thanks, Ed

----- Original Message ----- 
From: Dave Merrill 
To: amibroker@xxxxxxxxxxxxxxx 
Sent: Saturday, October 25, 2003 10:01 AM
Subject: RE: [amibroker] size of an array in AFL?


in most languages, it's possible to find out the size of an array directly,
by examining some property of the array itself or applying some function to
it, without having to know how it was created. some examples are:

    array.length
    array.size
    SizeOfArray(array)

is that possible in AFL? if not, it can be worked around since we do in
general know how every array was created, but it's less elegant and less
self contained.

dave

I'm not sure how to answer this because it depends on which array you are
refering too.

Are you refering to a stock data array of some description? If so you could
use the Barcount constant which will return the number of bars in the array.
Remember it's zero based so the last bar is refered to as: Barcount - 1

Regards,
William Peters
www.amitools.com



-----Original Message-----
From: Dave Merrill [mailto:dmerrill@xxxxxxx]


sorry for the dumb question, but what's the syntax for getting the size
(number of elements) in an array? I want to do something like this, only
that works:

      for(i=1; i<=array.length; i++) {

thanks,

dave


Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at:
http://groups.yahoo.com/group/amibroker/files/groupfaq.html 

Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. 


Yahoo! Groups Sponsor
ADVERTISEMENT




Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at:
http://groups.yahoo.com/group/amibroker/files/groupfaq.html 

Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. 


------------------------ Yahoo! Groups Sponsor ---------------------~-->
Buy Ink Cartridges or Refill Kits for your HP, Epson, Canon or Lexmark
Printer at MyInks.com. Free s/h on orders $50 or more to the US & Canada.
http://www.c1tracking.com/l.asp?cid=5511
http://us.click.yahoo.com/mOAaAA/3exGAA/qnsNAA/GHeqlB/TM
---------------------------------------------------------------------~->

Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/