i должно быть от 0 до rates_total-1
проверку вставте, и выходите из цикла когда до конца добрались
i должно быть от 0 до rates_total-1
проверку вставте, и выходите из цикла когда до конца добрались
Игорь, спасибо за ответ.
Там в коде значение nPoint1, которое потом присваивается i, назначается во входном параметре и равно 34. При перетаскивании фиботаймс оно изменяется на произвольное число в промежутке от 0 до rates_total-1(на самом деле там в цикле значение i будет всегда заведомо меньше rates_total-1, а первое значение всегда заведомо больше нуля). Дело в том, что уже при первом присваивании вылетает ошибка. Проверял размерность массива, она равна нулю. Т.е. массив не инициализируется. Значения индекса на первом шаге равно 34.
Игорь, спасибо за ответ.
Там в коде значение nPoint1, которое потом присваивается i, назначается во входном параметре и равно 34. При перетаскивании фиботаймс оно изменяется на произвольное число в промежутке от 0 до rates_total-1(на самом деле там в цикле значение i будет всегда заведомо меньше rates_total-1, а первое значение всегда заведомо больше нуля). Дело в том, что уже при первом присваивании вылетает ошибка. Проверял размерность массива, она равна нулю. Т.е. массив не инициализируется. Значения индекса на первом шаге равно 34.
причина этой ошибки -- однозначный выход значения i за rates_total-1
вы привели код без той части, где идёт присвоение значения i -- т.е. без этой части дать точный ответ невозможно
Игорь, спасибо за ответ.
Там в коде значение nPoint1, которое потом присваивается i, назначается во входном параметре и равно 34. При перетаскивании фиботаймс оно изменяется на произвольное число в промежутке от 0 до rates_total-1(на самом деле там в цикле значение i будет всегда заведомо меньше rates_total-1, а первое значение всегда заведомо больше нуля). Дело в том, что уже при первом присваивании вылетает ошибка. Проверял размерность массива, она равна нулю. Т.е. массив не инициализируется. Значения индекса на первом шаге равно 34.
!!! это пятёрка - OnInit()
int init() //все советчики, включая меня, проглядели :D
При портировании кода индикатора во время исполнения вылетает ошибка - буферный массив не инициализируется, хотя такой же код на 4-ре работал отлично. Подозреваю, что неправильно задал какие-то опции компиляции.
Код для мт5
Сам индикатор представляет из себя полуавтоматический построитель каналов. При присоединении к графикусначала создаются временные фибо зоны, затем точки их построения руками устанавливаются на нужные быры и происходит построение свинга и канала на его основе.
Неделю мучаюсь и ломаю голову, но правильного решения найти не могу. Прошу помочь.
типичная ошибка, при этом освещённая в документации.. неявно конечно, но про неё сказано
при работе с массивами ВСЕГДА задавайте направление индексации.
то есть получив на входе в функцию anytype &arr[]; первое что надо делать это ArraySetAsSeries(arr, ...)
при выходе из функции желательно восстановить прежнее,иначе тоже проблемы
... Т.е. массив не инициализируется. ...
пока не ясно, о чём вы здесь говорите -- но
PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0);
-- это не инициализация массива -- это установка пустого значения, для которого нет отрисовки.
элементы индикаторного буфера надо инициализировать явно.
причина этой ошибки -- однозначный выход значения i за rates_total-1
вы привели код без той части, где идёт присвоение значения i -- т.е. без этой части дать точный ответ невозможно
В приведенной мной части кода есть строка i=nPoint1;
Я дал пояснения, что nPoint1 - это индекс бара одной из точек построения временных фибо, которые двигаются руками. Изначально в input это значение равно 34. Пот ом в цикле while идет присвоение значения члену массива с индексом i. Там только есть ограничение через if. В остальном все как обычно.
!!! это пятёрка - OnInit()
пояснения без кода стоят =0.
если хотите подсказки по этой ошибке -- надо видеть код.
если не хотите его в ветке показывать для всех -- то можете мне в личку прислать.
К первому посту прикреплен файл с кодом.
Спасибо, все заработало.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
При портировании кода индикатора во время исполнения вылетает ошибка - буферный массив не инициализируется, хотя такой же код на 4-ре работал отлично. Подозреваю, что неправильно задал какие-то опции компиляции.
Код для мт5
Сам индикатор представляет из себя полуавтоматический построитель каналов. При присоединении к графикусначала создаются временные фибо зоны, затем точки их построения руками устанавливаются на нужные быры и происходит построение свинга и канала на его основе.
Неделю мучаюсь и ломаю голову, но правильного решения найти не могу. Прошу помочь.