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

 
Andrei Sokolov # :

Так достаточно данных? 


Подтверждено и передано в MetaQuotes.

 
JRandomTrader # :

Какая информация требуется тут: https://www.mql5.com/ru/forum/508827/page37#comment_60019414 ?

Wine 11.10 поставил, crashlog прислать предлагал (проигнорировано), билды, между которыми внесена проблема, указывал.

MetaQuotes уже в курсе вашей проблемы, и я предоставил обновленную информацию. Больше я ничего сделать не могу. (Сложность в том, что проблему практически невозможно воспроизвести).
 
Alain Verleyen #:
MetaQuotes уже в курсе вашей проблемы, и я предоставил обновленную информацию. Больше я ничего сделать не могу. (Сложность в том, что проблему практически невозможно воспроизвести).
Дополнительно: возможно, проблема как-то связана с большим количеством файловых операций (много мелких файлов), хотя уже сделал отложенную запись по OnTimer()
 

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

zero divide, 320,44

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

Какова причина?

 
VVT #:

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

zero divide, 320,44

Делений на ноль в коде нет, этот же код без изменений прекрасно работает уже несколько лет и пару дней назад успешно отработал

Какова причина?

Ну вы хоть одну эту строку кода показали бы…
 
VVT #:

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

zero divide, 320,44

Делений на ноль в коде нет, этот же код без изменений прекрасно работает уже несколько лет и пару дней назад успешно отработал

Какова причина?

Forum on trading, automated trading systems and testing trading strategies

Problem with Update Build 5800

Vladislav Boyko, 2026.04.19 08:43

A recent build fixed an issue where division by 0 might not result in a "zero divide" error at runtime. The problem is in your code; a runtime crash is the expected result of division by 0.

You can disable the floating point dividers check in the project properties, then your advisor will stop crashing at runtime:

But this will only mask the real problem - your code is unreliable.

(перейдите к посту по ссылке и используйте встроенный переводчик - он нормально справляется)
 
Alexey Viktorov #:
Ну вы хоть одну эту строку кода показали бы…
NormalizeDouble(Free*MaxRiskCalc/(100*One_Lot) должен выдавать многозначное значение и без 0 в начале
 
Vladislav Boyko #:
(перейдите к посту по ссылке и используйте встроенный переводчик - он нормально справляется)
Спасибо но этого никогда не происходило и при тестах тоже
 
VVT #:
этого никогда не происходило и при тестах тоже

Проверка деления на 0 была улучшена 3 месяца назад

Вы можете прочитать всю цепочку комментариев по этому поводу, кликая на #:

 
VVT #:
NormalizeDouble(Free*MaxRiskCalc/(100*One_Lot) должен выдавать многозначное значение и без 0 в начале

Это меньше одной строки даже.

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

https://www.metatrader5.com/ru/metaeditor/help/mql5storage/projects#properties

  • Проверять вещественные делители — приложения с отключенной проверкой работают несколько быстрее, поскольку ошибки деления на ноль не проверяются при исполнении кода.
Вторая опция проще. Но если деление на 0 приведет к багу (с отключенной проверкой в рантайме), то у вас потом практически не будет шансов выяснить выяснить причину бага.