Код где?
Привет всем!
Давно не помню, чтобы появлялась ошибка ERR_ZERO_DIVIDE 4013 (Деление на ноль).
Ищите в своем коде деления "/".
Для всех переменных в знаменателе, которые могут принимать "0" необходимо перед
делением проводить проверку "if(xyz!=0) { ...".
Если в тестере, то скорее всего дыра в котирах, и на запрос цены получаете ноль.
шерстить внимательно код, ставить ограничения везде где можно - хуже не будет.
большой это сколько - больше мегабайта кода ;) ?
Ищите в своем коде деления "/".
Для всех переменных в знаменателе, которые могут принимать "0" необходимо перед
делением проводить проверку "if(xyz!=0) { ...".
может быть и при умножении на EMPTY_VALUE
Если в тестере, то скорее всего дыра в котирах, и на запрос цены получаете ноль.
шерстить внимательно код, ставить ограничения везде где можно - хуже не будет.
большой это сколько - больше мегабайта кода ;) ?
Смотреть все деления это понятно. Но вот приведенный мной код должен ведь отловить ошибку? Или нет??
Нет
Не обязательно деление на ноль.
У меня была сборка с несколькими #include <***.mqh> и, когда в тексте основного модуля я неправильно обратился к одной функции,
то компиляция прошла нормально, а при работе эксперта, в журнале стала проскакивать эта ошибка.
Подробностей уже не помню, давно было, но причину нашел с большим трудом.
Потому, что при делении на ноль выполнение программы немедленно прерывается.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Привет всем!
Давно не помню, чтобы появлялась ошибка ERR_ZERO_DIVIDE 4013 (Деление на ноль).
Для отлова понавставлял везде где можно такой код:
nErr=0; nErr=GetLastError(); if (nErr!=0) { sErr="MyFuncName() ERR="+nErr+" "+fsErrId(nErr)+" dt="+fsDT(TimeCurrent()); Print(sErr); fbWriteToFileErrs(sErr); }
Не помогает! Нет ошибок! Может билд виноват? Встречается редко, в тестере, не при оптимизации (хотя там ее вообще не заметишь, имхо).
Когда она случается, тестер дает сообщение об ошибке, закрывает все ордера и все.
Что можно сделать??