Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Перечитайте свой первый пост. Поймёте, что Вы спросили о чём-то , но ничего прт этом не сказали.
Ок В моем понимании - правильный вопрос, но это субъективно. Я попробую попросить вставить в ответ пропущенные слова
"Проблема с динамическим массивом (в части "выхода за его пределы") не всегда возникает при одиночном тестировании, но обязательно возникнет в случае оптимизации если... В примере кода видно, что массив используется в структуре, далее в него пишутся значения индикатора (последние 10), потом происходит сортировка этих значений, но это не решит проблемы, ошибка будет возникать потому что нет ... и надо использовать функцию ... " Лучше?
PS функция CopyBuffer() старается распределить размер принимающего массива под размер копируемых данных (c)
PSS не возникает проблем относительно размера массива при использовании его в copybuffer Может ли это быть следствием того, что просто не пишутся никакие данные по какой-то причине в него и он пустой и кол-во элементов 0? Но почему он не пустой при тестировании? Может даже риторическое
Раззадорило Ваше телепатическое общение с Модератором )
Попытайтесь сами разобраться array out of range line 15, col 51 https://www.mql5.com/ru/docs/series/copybuffer
Я полагаю, что именно copybuffer Но как-то выборочно - только при оптимизации. И вот кажется решение уже рядом. Индюков несколько и грузятся их параметры из БД - агентов 48 (ядер). Выходит, что тупо не успевают получить значения - прогрузиться (при одиночном - один агент и все происходит быстрее, а в 48 тормозит и не успевает за тиком)?
Ок В моем понимании - правильный вопрос, но это субъективно. Я попробую попросить вставить в ответ пропущенные слова
"Проблема с динамическим массивом (в части "выхода за его пределы") не всегда возникает при одиночном тестировании, но обязательно возникнет в случае оптимизации если... В примере кода видно, что массив используется в структуре, далее в него пишутся значения индикатора (последние 10), потом происходит сортировка этих значений, но это не решит проблемы, ошибка будет возникать потому что нет ... и надо использовать функцию ... " Лучше?
В Вашем вопросе "выхода за его пределы" есть ответ -> увеличьте пределы и не усложняйте жизнь )
В Вашем вопросе "выхода за его пределы" есть ответ -> увеличьте пределы и не усложняйте жизнь )
Пределы задает copybuffer (ну как бы в теории если я правильно понимаю) Ну и на всякий - делал я ресайз и на 11 элементов - не решило задачу. Проблема в том, что нет в нем ничего по какой-то причине (это пока догадка) он уже [0] выходом за пределы При тестировании есть, при оптимизации - нет
Покажите как вычисляете data[0]
Если правильно понимаю вопрос
Пределы задает copybuffer (ну как бы в теории если я правильно понимаю) Ну и на всякий - делал я ресайз и на 11 элементов - не решило задачу. Проблема в том, что нет в нем ничего по какой-то причине (это пока догадка) При тестировании есть, при оптимизации - нет
Пределы задаете Вы а copybuffer выполняет
Покажите как вычисляете data[0]
Похоже что проблема в этом
Пределы задаете Вы а copybuffer выполняет
Похоже что проблема в этом
Это из документации
Ну вот - шах и мат Часть локальных агентов успевают схватить котировки и наполнить массив Но большая часть вываливается в аут из-за скорости. Не в массивах дело и не в коде, а в процедуре. Теперь (поскольку я с таким не сталкивался, а хочется решить задачку как можно быстрее, уж простите - не лень, а оптимизация времени). Кто подскажет: как в случае отсутствия значений индикатора в массиве (из-за того что они не успевают прогрузится к первому тику) не вываливать ошибку размерности массива (ибо в таком случае он пустой - 0 членов после copybuffer), а вернуть сову снова в стадию получения данных?