Ошибки, баги, вопросы - страница 2342
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ресурсы ограничены этим размером?
Значит, тем более, целесообразно уплотнять передаваемые данные.
В этом смысле MT4 много мудрее MT5 поступал - вылета из программы не происходило и можно было LastError анализировать.
Во первых: продолжение выполнение программы после возникновения неустранимой критической ошибки это не мудрость, а глупость.
Во вторых: после выполнение этого в MetaTrader 4 765x32 дело до PrintError() так и не дошло
В третьих: если убрать strict то дошло, но GetLastError() возвращает 0, соответственно непонятно что там анализировать
Как уведомить пользователя об остановке советника?
В этом смысле MT4 много мудрее MT5 поступал - вылета из программы не происходило и можно было LastError анализировать.
А при обращении к массиву разве не логично проверить индекс обращения ?
Во первых: продолжение выполнение программы после возникновения неустранимой критической ошибки это не мудрость, а глупость.
Во вторых: после выполнение этого в MetaTrader 4 765x32 дело до PrintError() так и не дошло
В третьих: если убрать strict то дошло, но GetLastError() возвращает 0, соответственно непонятно что там анализировать
Не было задачи показать, что MT4 лучше MT5. Надо было решить практическую задачу.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: HistoryTicks
fxsaber, 2018.12.10 13:55
получить сообщение, что советник остановился из-за array out of range (не по вине автора советника). Например, из-за нехватки памяти или другого сбоя. Т.е. Вы будете сразу знать, что произошла нештатная остановка советника, а не случайно заметите это через несколько часов.
Неприятно, когда советник остановился, а об этом никак не сообщается.
А при обращении к массиву разве не логично проверить индекс обращения ?
Не логично.
Значит, тем более, целесообразно уплотнять передаваемые данные.
Проверил, 60Мб спокойно (MT4/5) пишутся в Ресурсы. Так что если и есть ограничение, то выше.
Маловажное замечание, но все же.
При отправке в Хранилище - первая панель "Фиксация" - работает нормально, а вторая, подтверждением, у меня во-первых, не ждет нажатия клавиши ОК, а сразу гаснет, а во-вторых - на ней не отображаются все отправленные файлы. Хотя, проверил - файлы отправляются нормально.
Это только у меня так ?
Вроде правильно - когда после отправки высвечивается список отправленных файлов с подтверждением, что все прошло хорошо.
Не логично.
И почему ?
Мне кажется, что не требуется проверять индекс там, где, исходя из логики программы - никак не может появиться индекс, выходящий за пределы массива. И то, даже в этом случае - надо ставить ASSERT, на всякий случай.
Там же, где индекс зависит от предыдущих действий, связанных со внешними параметрами, с котировками, с действиями пользователя - проверка на индекс обращения должна быть обязательно.
По-твоему, это не так ?
И почему ?
Мне кажется, что не требуется проверять индекс там, где, исходя из логики программы - никак не может появиться индекс, выходящий за пределы массива.
Согласен.
И то, даже в этом случае - надо ставить ASSERT, на всякий случай.
Не согласен, т.к. сильно страдает читабельность кода.
Там же, где индекс зависит от предыдущих действий, связанных со внешними параметрами, с котировками, с действиями пользователя - проверка на индекс обращения должна быть обязательно.
Здесь не понял, что имеется в виду под внешними параметрами. Каждый раз проверять, что ArrayResize или ArrayCopy завершились штатно, а не банально память закончилась - раздувать код через ASSERT, а это та еще гадость. Если же не проверять, то получим незаметную остановку советника. Пока нашел только одно решение - замена ArrayResize и ArrayCopy.
Кто мешает?
ChartSaveTemplate(chart_id,"\\Files\\MyPreferredTemplates\\cewl.tpl");
Функция не создает папки, пишет шаблон только если папка уже есть .... Если папки нет ошибка 4112
То есть предварительно нужно подготовить папки...
Интересно получается, функцией FileOpen мы не можем создать каталог в папке шаблонов а функция ChartSaveTemplate каталоги не создает...
То есть если хочешь сохранить шаблоны в папки подпапки то создавай папки руками....
out of memory
при переборе GlobalVariables
может возникнуть?