Ошибки, баги, вопросы - страница 2342

 
fxsaber:
Ресурсы ограничены этим размером?

Значит, тем более, целесообразно уплотнять передаваемые данные.

 
fxsaber:

В этом смысле MT4 много мудрее MT5 поступал - вылета из программы не происходило и можно было LastError анализировать.

Во первых: продолжение выполнение программы после возникновения неустранимой критической ошибки это не мудрость, а глупость.

Во вторых: после выполнение этого в MetaTrader 4 765x32 дело до PrintError() так и не дошло

В третьих: если убрать strict то дошло, но GetLastError() возвращает 0, соответственно непонятно что там анализировать

 
fxsaber:
Как уведомить пользователя об остановке советника?

В этом смысле MT4 много мудрее MT5 поступал - вылета из программы не происходило и можно было LastError анализировать.

А при обращении к массиву разве не логично проверить индекс обращения ?

 
A100:

Во первых: продолжение выполнение программы после возникновения неустранимой критической ошибки это не мудрость, а глупость.

Во вторых: после выполнение этого в MetaTrader 4 765x32 дело до PrintError() так и не дошло

В третьих: если убрать strict то дошло, но GetLastError() возвращает 0, соответственно непонятно что там анализировать

Не было задачи показать, что MT4 лучше MT5. Надо было решить практическую задачу.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Библиотеки: HistoryTicks

fxsaber, 2018.12.10 13:55

получить сообщение, что советник остановился из-за array out of range (не по вине автора советника). Например, из-за нехватки памяти или другого сбоя. Т.е. Вы будете сразу знать, что произошла нештатная остановка советника, а не случайно заметите это через несколько часов.


Неприятно, когда советник остановился, а об этом никак не сообщается.

Georgiy Merts:

А при обращении к массиву разве не логично проверить индекс обращения ?

Не логично.

 
Nikolai Semko:

Значит, тем более, целесообразно уплотнять передаваемые данные.

Проверил, 60Мб спокойно (MT4/5) пишутся в Ресурсы. Так что если и есть ограничение, то выше.

 

Маловажное замечание, но все же.

При отправке в Хранилище - первая панель "Фиксация" - работает нормально, а вторая, подтверждением, у меня во-первых, не ждет нажатия клавиши ОК, а сразу гаснет, а во-вторых - на ней не отображаются все отправленные файлы. Хотя, проверил - файлы отправляются нормально.

Это только у меня так ?

Вроде правильно - когда после отправки высвечивается список отправленных файлов с подтверждением, что все прошло хорошо.

 
fxsaber:
 

Не логично.

И почему ?

Мне кажется, что не требуется проверять индекс там, где, исходя из логики программы - никак не может появиться индекс, выходящий за пределы массива. И то, даже в этом случае - надо ставить ASSERT, на всякий случай.

Там же, где индекс зависит от предыдущих действий, связанных со внешними параметрами, с котировками, с действиями пользователя - проверка на индекс обращения должна быть обязательно.

По-твоему, это не так ?

 
Georgiy Merts:

И почему ?

Мне кажется, что не требуется проверять индекс там, где, исходя из логики программы - никак не может появиться индекс, выходящий за пределы массива.

Согласен.

И то, даже в этом случае - надо ставить ASSERT, на всякий случай.

Не согласен, т.к. сильно страдает читабельность кода.

Там же, где индекс зависит от предыдущих действий, связанных со внешними параметрами, с котировками, с действиями пользователя - проверка на индекс обращения должна быть обязательно.

Здесь не понял, что имеется в виду под внешними параметрами. Каждый раз проверять, что ArrayResize или ArrayCopy завершились штатно, а не банально память закончилась - раздувать код через ASSERT, а это та еще гадость. Если же не проверять, то получим незаметную остановку советника. Пока нашел только одно решение - замена ArrayResize и ArrayCopy.

 
Slava:

Кто мешает?

ChartSaveTemplate(chart_id,"\\Files\\MyPreferredTemplates\\cewl.tpl");

Функция не создает папки, пишет шаблон только если папка уже есть .... Если папки нет ошибка 4112

То есть предварительно нужно подготовить папки...

Интересно получается, функцией FileOpen мы не можем создать каталог в папке шаблонов а функция ChartSaveTemplate каталоги не создает...

То есть если хочешь сохранить шаблоны в папки подпапки то создавай папки руками....

 

out of memory 

при переборе GlobalVariables

может возникнуть?