Ошибки, баги, вопросы - страница 2360
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ошибка для разработчиков.
Скрипт не компилируется, определите почему))). Используйте прикрепленный файл.
Этот же файл:
Все компилируется, удалите строку Error
Все компилируется, удалите строку Error
ограничение на длину строки в редакторе
ограничение на длину строки в редакторе
Строка не отображается, когда она становиться больше 4095 символов.
Просьба объяснить глупцу, из-за чего здесь такое происходит?
Допустим мы можем оперировать только с нечётными числами, а если результат арифметической операции становится чётным, то он полагается равным ближайшему сверху нечётному числу, тогда:
33 != 31
Несколько часов потратил на поиск расхождений. Нашел такое
Особенности double знаю, но не такие, что если поменять порядок сложения (за исключением относительно сильно отличных чисел), то результат будет разный! Просьба объяснить глупцу, из-за чего здесь такое происходит?
В исходнике нужно смотреть только на две нижние строки.
Как Вы сами любите говорить, аголитм, который закладывается на точность округления double до одинаковой цифры на пределе указанной точности - "кривой". Причина, очевидно. в том, что одинаковое значение, получаемое разными способами (перемена местами множителей, раскрытие скобок и т.п.) в представлении double могут оказываться разными числами, максимално приближенными к нужному с разных сторон. Округлите до следующей цифры, а дальше сами решите, как действовать с последней...
Когда делаете size+point, то переполняете мантиссу с последующим округлением/отбросом (в зависимости от режима fpu.
В общем - результат двух даблов будет одинаковым только тогда, когда они получены одним и тем же способом (если не считаем случаев, когда имеем дело с целыми).
Спасибо за ответы, каждый был ценен. Впервые столкнулся (заметил), что добавление к ЦЕНЕ одних и тех же пунктов, но в разной последовательности создает разные ЦЕНЫ. Отсюда в Тестере получаются отличающиеся результаты.
Когда обсуждали даблы, были понятны, когда и почему можно сравнивать их между собой. Но цена плюс пункты и разный результат на выходе - впервые так явно сказались на результате ТС.
Получается, что для избежания этих неоднозначностей, нужно к вычисленной цене добавлять на мизер меньше полупункта, а затем нормализовывать.
Получается, что для избежания этих неоднозначностей, нужно к вычисленной цене добавлять на мизер меньше полупункта, а затем нормализовывать.
А ещё есть мнение, что если результаты ТС сильно меняются от таких незначительных вещей, нужно сказать "спасибо" и выкинуть такую ТС в мусор.
Спасибо за ответы, каждый был ценен. Впервые столкнулся (заметил), что добавление к ЦЕНЕ одних и тех же пунктов, но в разной последовательности создает разные ЦЕНЫ. Отсюда в Тестере получаются отличающиеся результаты.
Когда обсуждали даблы, были понятны, когда и почему можно сравнивать их между собой. Но цена плюс пункты и разный результат на выходе - впервые так явно сказались на результате ТС.
Получается, что для избежания этих неоднозначностей, нужно к вычисленной цене добавлять на мизер меньше полупункта, а затем нормализовывать.
Может стоит отобразить в особенностях?
А ещё есть мнение, что если результаты ТС сильно меняются от таких незначительных вещей, нужно сказать "спасибо" и выкинуть такую ТС в мусор.
Не сильно меняются, а просто меняются. Этого достаточно, чтобы начать расследование.