Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Интересуют возможности MQL5? Загляни в документацию!
koko_moko
317
koko_moko 2015.04.15 14:58 
надо же в массив под таким индексом записать это значение цены
Boris
3902
Boris 2015.04.15 15:58  
Замените i на любую цифру, и может, заиницилизируется! А i оставьте для цикла!
Ihor Herasko
8893
Ihor Herasko 2015.04.15 16:34  
Скорее всего, HiBuffer не имеет достаточный размер. Проверьте максимально возможное значение i в цикле и сравните его с размером массива HiBuffer. 
koko_moko
317
koko_moko 2015.04.15 16:35  
borilunad:
Замените i на любую цифру, и может, заиницилизируется! А i оставьте для цикла!
с ицфрой то же самое 
koko_moko
317
koko_moko 2015.04.15 16:39  
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[]; 

Boris
3902
Boris 2015.04.15 17:01  

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

Так нельзя 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--) 

koko_moko
317
koko_moko 2015.04.15 17:37  
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++) тоже не работает  

Boris
3902
Boris 2015.04.15 17:49  

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

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

int limit=Bars-1-IndicatorCounted();

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

Alexey Viktorov
6064
Alexey Viktorov 2015.04.15 17:55  
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++"

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

koko_moko
317
koko_moko 2015.04.15 19:13  
AlexeyVik:

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

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

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

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