You can't do loops over arrays to arbitrary index values (in this case
63 and 127) unless you are sure that you will never run the code over
a stock that has less than that many bars. Array indices reference
bars, and every stock will likely have a different number of bars. If
you run this over a portfolio of stocks, the moment you hit a stock
with less than 64 bars you'll get that error on the first loop.

Normally you should use BarCount, or some smaller value, as the loop
limit. If you want to use a fixed value unrelated to BarCount, then
you need to add a test for your value exceeding BarCount before you
enter the loop, and skip the whole loop for stocks with insufficient
bars. Loops are usually to iterate over all bars though, so using
BarCount in the loop termination condition makes sense.

Note that valid indices are from zero to BarCount-1, so you need to
use strictly less than BarCount (ie. "< BarCount").

Regards,
GP


--- In [email protected], Humblybob <[EMAIL PROTECTED]> wrote:
>
>   Would be highly obliged if someone can help me with correcting
this error
> in an afl. I am not a programmer and hence struggle with this. I do
realize
> that this error has to do with the number of bars. What values do I
need to
> change so that this afl works with even those scrips that have even
1 or no
> bars.
> 
> limitvalue=63
>  startValue = 64;
> 
> //----
> 
>    for (i = 0; i <= limitValue; i++) list [i] = -1000000;
> 
>    for (i = startValue; i <= 127; i++)   list [i]
> ------------------------------------------------^
> 
> Error 10.
> Subscript out of range.
> You must not access array elements outside 0..(BarCount-1) range
> 
> 
> Many thanks in advance.
>


Reply via email to