"Подвох" в том что написано:
Period1 = Period1Param;
Period2 = Period2Param;
Period3 = Period3Param;
StartBar = Period3;
затем
for (int bar = StartBar; bar < barsCount; bar++)
А ниже, в 109 строке (в которой и возникает ошибка)
if ((nMA1[bar-1] > nMA2[bar-1]) && (nMA1[bar-2] <= nMA2[bar-2])) bBuy = true;

Если Period3 < 2, то будет ошибка. Индекс в квадратных скобках "bar-2" на первой итерации будет отрицательным

Цикл - по исходному таймфрейму, а массив создан по сжатому, более короткому, поэтому и ошибка.


Отредактировано Gji (Fri Dec 23 2011 04:00 PM)