PureBytes Links
Trading Reference Links
|
Udo,
Tomasz is correct. As the code inside the "if" statement assumes at
least 10 data points are available, the "if" statement must test for
>= 10, not < 10 which is what yours is doing.
GP
--- In amibroker@xxxxxxxxxxxxxxx, Udo Harke <udoharke@xxx> wrote:
>
> HI;
>
> YOU SHOULD CODE
>
> if( !(BarCount >= 10) )
> {
>
> ..... put code that assumes that you have 10 data points available here.
>
> }
>
> instead!
>
> Regards,
>
> Udo
>
> "Tomasz Janeczko (groups)" <groups@xxx> wrote:
> Hello,
>
> You must not assume that you have some fixed number of
> data elements available. *Always* perform a check for BarCount.
>
> So instead of:
>
> for (i = 0; i < 10; i++) myArr[i] = 0;
>
> always include check:
>
> for (i = 0; i < 10 AND i < BarCount; i++) myArr[i] = 0;
>
> alternatively:
>
> if( BarCount >= 10 )
> {
>
> ..... put code that assumes that you have 10 data points available here.
>
> }
>
> Best regards,
> Tomasz Janeczko
> amibroker.com
> ----- Original Message -----
> From: "gp_sydney" <gp.investment@xxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Saturday, June 16, 2007 2:08 AM
> Subject: [amibroker] Re: New file uploaded to amibroker
>
> > > I still do not understand what the difference between the size
of an
> > > array and the number of elements in an array is.
> >
> > They are the same, but when you have a loop writing only 10 elements
> > to an array, that's not how many elements are in the array, it's only
> > the number of elements you've changed. The array might have 1000
> > elements and all you've done is overwrite the first 10.
> >
> > The size of an array is how many elements it's physically possible to
> > change because there's actually memory allocated for their storage. In
> > AmiBroker that's always BarCount.
> >
> > As I sort-of mentioned before, using arrays where the index is
> > something other than bars, and you fix the range of the index to
> > something other than BarCount, can easily lead to problems. If you
> > have such a formula in a backtest and run that across all symbols, the
> > moment you hit a symbol where BarCount is less than the maximum index
> > you use, you'll get an overflow error.
> >
> > For example, if you have the following code in a backtest:
> >
> > for (i = 0; i < 10; i++) myArr[i] = 0;
> >
> > and run it over all symbols, if you hit a new listing that only has
> > five bars on the chart then you'll get an overflow error when myArr[5]
> > is referenced for that symbol.
> >
> > Regards,
> > GP
> >
> >
> >
> >
> > Please note that this group is for discussion between users only.
> >
> > To get 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
> >
> >
> >
> >
> >
>
Please note that this group is for discussion between users only.
To get 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/
|