Ошибка, связанная с точностью представления данных. Прошу разработчиков обратить внимание! - страница 2
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
(Проверка: если TakeProfit для короткой позиции "ниже", чем некоторый уровень PCL1+Spread, то TakeProfit переносится на этот уровень.)
В рассматриваемом примере последний раз TakeProfit был перенесен в 01:32 17.06.04 на уровень 0.6569; самый правый на рисунке бар - в 01:47 имеет Low=0.6567 (это Bid, Ask=0.6569).
Еще один вопрос на эту же тему. Фрагмент программы:
В результате имеем:
В создаваемом нами файле имеем:
Возникает вопрос: почему при равенстве OrderStopLoss() и Bid-Point*TrailingStop срабатывает условие "МЕНЬШЕ"? Можно предположить, что точность левой и правой части условия выше, чем Digits=4 знака после десятичной точки, но откуда берутся дополнительные дробные доли? OrderStopLoss() по идее должно иметь точность Digits=4, переменная TrailingStop - целое (int), предопределенная переменная Point должна иметь точность Digits=4 по определению. Исторические котировки нормализированы с точностью до 4-х знаков после десятичной точки. Кроме того, в файл записываются данные с точностью до 8-ми знаков после десятичной точки, мы можем видеть, что дробных частей, меньше чем 0.0001 нет.
P.S. При записи
вышеуказанной ошибки не возникает, если нормализовать только правую часть - возникает в половине случаев, если нормализовать каждое слагаемое
- возникает во всех случаях как и раньше. Напрашивается вывод - ошибки вносятся в процессе вычисления языком MQL?
Вывод несколько другой - Вам нужно почитать про работу с вещественными числами. А начать нужно с основ представления вещественных чисел и погрешностей (причем к этим погрешностям ни C, ни C++, ни MQL4 никакого отношения не имеют).
Обсуждение по теме: "MQL4: Вопрос к мастерам MQL4. Опять про Double Compare."
Поиск: https://www.mql5.com/ru/search/?keyword=%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5+%D0%B2%D0%B5%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D1%85