почему вылетает индикатор в инициализации на этой строке HiBuffer[i]= iHigh(NULL,0,i); ???

 
Замените i на любую цифру, и может, заиницилизируется! А i оставьте для цикла!
 
Скорее всего, HiBuffer не имеет достаточный размер. Проверьте максимально возможное значение i в цикле и сравните его с размером массива HiBuffer. 
 
borilunad:
Замените i на любую цифру, и может, заиницилизируется! А i оставьте для цикла!
с ицфрой то же самое 
 
Scriptong:
Скорее всего, HiBuffer не имеет достаточный размер. Проверьте максимально возможное значение i в цикле и сравните его с размером массива HiBuffer. 

ну явного ограничения для i в цикле нет.

 

for (int i=1;ok==false;i++)

      { if ()

HiBuffer[i]= iHigh(NULL,0,i);

ok = true; 

return(INIT_SUCCEEDED);

         } 

 

и вот как он задается double         HiBuffer[]; 

 

Посмотрите в Доке, как делать циклы в индикаторах!

Так нельзя for (int i=1;ok==false;i++) 

Может быть,  for (int i=0;i<bar;i++)  Посмотрите любой индикатор!

Или: int limit=Bars-1-IndicatorCounted();

for (int i=limit;i>=0;i--) 

 
borilunad:

Посмотрите в Доке, как делать циклы в индикаторах!

Так нельзя for (int i=1;ok==false;i++) 

Может быть,  for (int i=0;i<bar;i++)  Посмотрите любой индикатор!

Или: int limit=Bars-1-IndicatorCounted();

for (int i=limit;i>=0;i--) 

 

нет дело не в этом. for (int i=1; i==99;i++) тоже не работает  

 

Пробуйте другие варианты! А этот и с цифрами не заработает! Нужно же указывать откуда куда прибавлять или вычитать!

Этот скорей всего:

int limit=Bars-1-IndicatorCounted();

for (int i = limit; i >= 0; i--) 

 
borilunad:

Посмотрите в Доке, как делать циклы в индикаторах!

Так нельзя for (int i=1;ok==false;i++) 

Может быть,  for (int i=0;i<bar;i++)  Посмотрите любой индикатор!

Или: int limit=Bars-1-IndicatorCounted();

for (int i=limit;i>=0;i--) 

mario_SC--:


нет дело не в этом. for (int i=1; i==99;i++) тоже не работает 

А ты попробуй прочесть как будет звучать цикл на русском языке.

"от i = 1; пока i == 99; i++"

Я думаю так никакой цикл работать не будет.

 
AlexeyVik:

А ты попробуй прочесть как будет звучать цикл на русском языке.

"от i = 1; пока i == 99; i++"

Я думаю так никакой цикл работать не будет.

тут с условием ты прав. но всеравно то что я с самого начала писал условие, что с цифрами и "правильным" условием - цикл то РАБОТАЕТ. я по отладчику смотрю. ВЫЛЕТАЕТ когда доходит до этого массива. Может я неправильно в него записываю ?
 
mario_SC--:
тут с условием ты прав. но всеравно то что я с самого начала писал условие, что с цифрами и "правильным" условием - цикл то РАБОТАЕТ. я по отладчику смотрю. ВЫЛЕТАЕТ когда доходит до этого массива. Может я неправильно в него записываю ?
Вы пытаетесь работать с массивом, память для которого еще не распределена; иначе говоря - этого массива еще нет. Не надо инициализировать массивы индикаторных буферов, это сделает система без Вашего участия, но использовать эти массивы ранее, чем в start()/OnCalculate не стоит.