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. >
