int listTickets[][6]; int OnInit() { if(ArrayRange(listTickets, 0) >= 2) { if(listTickets[1][4] == 0) { // не важно что делаем; } } else { printf( "ArrayRange 1: %s", IntegerToString(ArrayRange(listTickets, 1))); printf( "ArrayRange 0: %s", IntegerToString(ArrayRange(listTickets, 0))); } return(INIT_SUCCEEDED); }
Проверил. Даже откомпилированный на графике запустил. Без ошибок.
Да и по коду сразу видно что все нормально.
До последнего обновления такой код не вызывал никаких ошибок.
Массив объявлен на уровне глобальных переменных.
затем по условию увеличивается размер массива в первом измерении и в зависимости от типа позиции или ордера по индексу второго измерения заносится в массив тикет ордера/позиции. И остальные индексы заполняются нулями.
Затем при условии что в массиве не менее двух элементов проверяется есть-ли в массиве тикет такого типа ордер или позиция
А теперь на стадии компиляции выдаёт
Не перебор-ли это? Как вы думаете?
Да и что-то я никак не соображу как-бы обойти это. Даже попытка увеличения размера массива в OnInit не избавляет от этой ошибки компиляции. Если сделать массив статическим, не известно сколько может быть ордеров в итоге, а изменить размер уже будет невозможно.
Сделать с запасом... память не безразмерная.
Всё нормально работает, и конструкция вполне жизнеспособна. Я буквально дня три назад переделал у себя такие массивы, в массив структуры, немного проще работать со структурой.
Проверил. Даже откомпилированный на графике запустил. Без ошибок.
Да и по коду сразу видно что все нормально.
Интересно, тогда я не понимаю что происходит... А какой билд? До 1795 у меня тоже всё работало. Или вы проверяете в mql4? Моя вина, не уточнил что пишу в mql5.
Интересно, тогда я не понимаю что происходит... А какой билд? До 1795 у меня тоже всё работало. Или вы проверяете в mql4? Моя вина, не уточнил что пишу в mql5.
Проверяю в мт5, билд компилятора 1795
Интересно, тогда я не понимаю что происходит... А какой билд? До 1795 у меня тоже всё работало. Или вы проверяете в mql4? Моя вина, не уточнил что пишу в mql5.
Перезагрузись.
Всё нормально работает, и конструкция вполне жизнеспособна. Я буквально дня три назад переделал у себя такие массивы, в массив структуры, немного проще работать со структурой.
Я тоже думал что со структурой проще и наглядней. Но при увеличении размера массива надо выбросить мусор, а это поэлементный перебор всего списка структуры. Тогда как в таком массиве это делается одной строкой.
Возможно придётся возвращаться к структуре.
Я тоже думал что со структурой проще и наглядней. Но при увеличении размера массива надо выбросить мусор, а это поэлементный перебор всего списка структуры. Тогда как в таком массиве это делается одной строкой.
Возможно придётся возвращаться к структуре.
В структуру всего 2-мя кликами можно добавить нужное поле, с ней наглядней работать. Не мне вам объяснять)
Перезагрузись.
Чудеса, да и только.
В следующий раз переставлю ОС.
В структуру всего 2-мя кликами можно добавить нужное поле, с ней наглядней работать. Не мне вам объяснять)
Добавить-то не проблема. А очистить от мусора простой двухмерный массив попроще, как мне показалось.
Чудеса, да и только.
В следующий раз переставлю ОС.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
До последнего обновления такой код не вызывал никаких ошибок.
Массив объявлен на уровне глобальных переменных.
затем по условию увеличивается размер массива в первом измерении и в зависимости от типа позиции или ордера по индексу второго измерения заносится в массив тикет ордера/позиции. И остальные индексы заполняются нулями.
Затем при условии что в массиве не менее двух элементов проверяется есть-ли в массиве тикет такого типа ордер или позиция
А теперь на стадии компиляции выдаёт
Не перебор-ли это? Как вы думаете?
Да и что-то я никак не соображу как-бы обойти это. Даже попытка увеличения размера массива в OnInit не избавляет от этой ошибки компиляции. Если сделать массив статическим, не известно сколько может быть ордеров в итоге, а изменить размер уже будет невозможно.
Сделать с запасом... память не безразмерная.