как проверить массив
вот такая строчка привела к ошибке и соответственно зависанию советника.
2015.03.18 21:45:05.839 array out of range in 'Diamant Scalper.mq4' (826,25)
Очевидно, что тик пришел, а данные куда то делись. Может процессора не хватило, может с памятью что...
Как проверить корректный ли массив High[x] и Low [x] ?
или со static спецификатором?
может вы данный код в init использовали?
или со static спецификатором?
Нужно в коде гарантировать при любых обстоятельствах запись в массив перед тем, как Вы что-то попытаетесь получить из массива.
и как это сделать? Можете привести пример такой проверки ?
и как это сделать? Можете привести пример такой проверки ?
При обращении к любому члену массива по индексу (допустим i) нужно убедиться что i>=0 и i<ArraySize(High). Иначе будет аварийное завершение Вашего советника.
О.. сори. Это МТ4 - сразу не заметил...
вот такая строчка привела к ошибке и соответственно зависанию советника.
2015.03.18 21:45:05.839 array out of range in 'Diamant Scalper.mq4' (826,25)
Очевидно, что тик пришел, а данные куда то делись. Может процессора не хватило, может с памятью что...
Как проверить корректный ли массив High[x] и Low [x] ?
Было как-то такое, при обращении к Time[0] вылетала программа.. при переключении тф вроде.
if(ArraySize(Time)<1) return;//как-то так, достаточно один любой массив-таймсерию проверить.
и как это сделать? Можете привести пример такой проверки ?
Нет. Не проверки. А именно обеспечить в коде железную логику - в массив нужно записать, чтобы потом из него запрашивать. А проверить можно так:
//--- вспомогательная переменная int size; //--- создание массива double one_dim[]; size=ArraySize(one_dim); Print("Размер массива: ",size); //--- если размер равен "0" - всё, гайка, массив пустой.
Нет. Не проверки. А именно обеспечить в коде железную логику - в массив нужно записать, чтобы потом из него запрашивать. А проверить можно так:
У меня в начале советника стоит проверка
if(Bars<200) return;
Ее как раз советник проходит.
Спасибо за способ.
Но что-том не подсказывает что использование iHigh или iLow однозначно не приведет к критической ошибке и соответственно эксперт продолжит работу.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
вот такая строчка привела к ошибке и соответственно зависанию советника.
2015.03.18 21:45:05.839 array out of range in 'Diamant Scalper.mq4' (826,25)
Очевидно, что тик пришел, а данные куда то делись. Может процессора не хватило, может с памятью что...
Как проверить корректный ли массив High[x] и Low [x] ?