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

 
Nikolai Semko #:

для нормализации положительной цены текущего символа можно использовать что-то вроде:

работает быстрее чем  NormalizeDouble 

Когда делал похоже с объёмом, оказалось что иногда результат отличен от NormalizeDouble.

 
MrBrooklin #:

Здравствуйте, Андрей! Поделитесь способом правильного использования. У меня была такая же проблема с NormalizeDouble .

С уважением, Владимир.

P.S. Сваял скрипт, запустил на двух разных терминалах и ... О, чудо!!! Всё нормализовалось! Похоже что-то уже подправили.

,

 

fdCG03=NormalizeDouble(fdCG03,5);Print("199 "+fdCG03);

ответ

2022.05.11 21:58:31.324 2019.07.03 00:00:00   199 1.1284399999999999


 
Andrei Sokolov #:

,

Вывод на печать нужно делать при помощи DoubleToString().

Документация по MQL5: Преобразование данных / DoubleToString
Документация по MQL5: Преобразование данных / DoubleToString
  • www.mql5.com
DoubleToString - Преобразование данных - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Yury Lemeshev #:
Друзья, а как округлить 1.1284399, до 1.12844? NormalizeDouble не помогает
Корень проблемы в том, что не каждое десятичное дробное число может быть представлено двоичным дробным числом.
 
Artyom Trishkin #:

Вывод на печать нужно делать при помощи DoubleToString().

Спасибо

 
Sergey Dzyublik #:

Bug MT5 (build 3280), не понятно почему выбор перегружаемой функции зависит от "истории происхождения" аргумента Container, который ни коем образом в самой перегрузке участия не принимает.
Потратил более 3-х часов, проблему удалось локализировал, однако, все равно получилось не то, что было с самого начала.
Изначально баг был еще коварнее - только при использовании l-value указателей, сейчас же в примере воспроизводим для l-value и r-value указателей.

C++ online: https://onlinegdb.com/pCjzGFT8p

Спасибо за сообщение и предоставленный код.

Некорретно учитывался кастинг указателей, поправил

 

При прогоне в тестере советника завис терминал наглухо, пришлось убить процесс.

После запуска терминала обнаружил, что все счета "слетели"!!! Да, проблем нет залогиниться вновь на нужных счетах, но зачем нужны эти дополнительные телодвижения пользователю - огромный вопрос.

Убедительная просьба к разработчикам, в очередной, незнамо какой раз, сделайте, пожалуйста, сохранение всех залогиненых счетов в терминале по желанию пользователя в зашифрованный файл и возможность последующего восстановления счетов. Для параноиков можно обеспечить 5ти, 10ти, 10000000кратное 512 битное шифрование. Вот уже который раз это происходит, на ум приходят только нецензурные слова восхищения подобными сюрпризами.

 
Andrey Dik #:

проблем нет залогиниться вновь на нужных счетах

Для меня это была бы серьезная проблема. Хорошо, не сталкивался с таким багом.

Резервное сохранение всех данных счетов - копирование папки config.

Здесь автоматизировал полностью клонирование Терминала - работает великолепно. Только желательно это делать, когда основной Терминал выгружен.

Несколько MT5-тестеров параллельно на одной машине.
Несколько MT5-тестеров параллельно на одной машине.
  • www.mql5.com
Автоматизация MT5-Тестера потребовала параллельного использования нескольких Тестеров на одной машине: оптимизация ( MultiTester ) и одиночные проходы ( Validate и TesterDashboard ). Необходимость
 
fxsaber #:

Для меня это была бы серьезная проблема. Хорошо, не сталкивался с таким багом.

Резервное сохранение всех данных счетов - копирование папки config.

Здесь автоматизировал полностью клонирование Терминала - работает великолепно. Только желательно это делать, когда основной Терминал выгружен.

Копирование папки config достаточно, что бы моно было восстановить счета?

Как костыльное решение ковыряние во внутренностях терминала конечно сойдет, но должно же быть нормальное решение от разработчиков, с приличным интерфейсом.. В конце концов есть исходные коды кошельков типа KeePass, которые можно было бы использовать в нуждах MT5.

Причина обращения: