Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1206
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Alert("Разбег "+DoubleToString(delta,_Digits));
или Alert(StringFormat("Разбег %.5f",delta));
и вообще привыкайте, это просто разные представления одного и того-же числа. Вспомните школьные годы чудесные - это оттуда
Спасибо. А если мне нужно использовать значение delta как число и сравнивать? Например.
Это будет корректно?Спасибо. А если мне нужно использовать значение delta как число и сравнивать? Например.
Это будет корректно?Можно сравнивать два вещественных числа таким образом:
https://www.mql5.com/ru/docs/basis/types/double
Можно сравнивать два вещественных числа таким образом:
https://www.mql5.com/ru/docs/basis/types/double
Можно, если вы уверены что они не могут быть очень близки по значению. Ведь мягкое с тёплым сравнивают.
Не понял. Например. Беру количество пунктов, которое прошла цена за один тик. Если цена прошла больше 20 пунктов, то выскакивает Alert.
Получается сравниваю разницу цен (1.12300-1.12321=0.00021) с каким-либо нужным мне максимальным значением (0.00020).
0.00021>0.00020.
Причем тут мягкое с теплым?
Не понял. Например. Беру количество пунктов, которое прошла цена за один тик. Если цена прошла больше 20 пунктов, то выскакивает Alert.
Получается сравниваю разницу цен (1.12300-1.12321=0.00021) с каким-либо нужным мне максимальным значением (0.00020).
0.00021>0.00020.
Причем тут мягкое с теплым?
нужны пунты, вот и сравнивайте пункты.они кстати целые.
а double сравнивают с точностью до epsilon (DBL_EPS если память не изменяет), иначе может выйти что 3.0-0.2 > 2.0+0.8 (образно, цифры могут быть другие)
нужны пунты, вот и сравнивайте пункты.они кстати целые.
а double сравнивают с точностью до epsilon (DBL_EPS если память не изменяет), иначе может выйти что 3.0-0.2 > 2.0+0.8 (образно, цифры могут быть другие)
тогда лучше пример @fxsaber для этих целей использовать:
скрипт для проверки:
Не понял. Например. Беру количество пунктов, которое прошла цена за один тик. Если цена прошла больше 20 пунктов, то выскакивает Alert.
Получается сравниваю разницу цен (1.12300-1.12321=0.00021) с каким-либо нужным мне максимальным значением (0.00020).
0.00021>0.00020.
Причем тут мягкое с теплым?
Ну иногда не надо читать всё что написано.
Вы взяли числа которые нормально представлены системой. А возьмите такие
и получите
по идее a-b==с но компьютер даст такие погрешности. Об этом много писалось на форуме, поищите и почитайте.
Но можно взять нормализованную разницу и нормализованное контрольное значение и их сравнивать.
Всем доброго времени. Вопрос: в МТ4 при работе в тестере с кроссами (парами без бакса) как тестер считает результаты по закрытым позициям, если счёт, на котором идёт тестирование, долларовый? Тестер для пересчёта итога позиции в доллары берёт курс базовой валюты кросса к доллару на текущий момент или на момент исследуемого интервала? Я сильно подозреваю, что на текущий момент. Если да, то нельзя ли заставить его считать на момент интервала?
Знает кто-нибудь?
считать самому MODE_TICKVALUE для каждого тика.
Можно, если вы уверены что они не могут быть очень близки по значению. Ведь мягкое с тёплым сравнивают.
Если prom18 нужно сравнить два числа, в пределах Digits знаков, то только такой метод и подходит:
Но, как видно, у него разброс еще больше: https://www.mql5.com/ru/forum/160683/page1205#comment_17247843. Поэтому, в примере точность сравнения я специально уменьшил на два знака. Конечно, такой разброс в значениях цен является довольно неточным... Но как ещё сравнивать два числа в подобных случаях?... Если бы отклонение было за Digits, то тогда можно было бы и EqualDoubles не использовать, а отсечь всё лишнее с помощью NormalizeDouble.
Хотя, еще можно сделать так: