![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Т.е.
double a=OrderOpenPrice()
переменная "а" пусть ведёт себя как и раньше, а значение OrderOpenPrice() и т.п. всегда было по умолчанию нормализовано.
Такое возможно?
Но! Если используется банковское свопирование через переоткрытие позиций, то цена OrderOpenPrice() будет иметь бОльшее количестов знаков после запятой.
Пример (значения примерные):
Вот так вот легко OrderOpenPrice меняет точность с 4х знаков после запятой до 5 знаков после запятой.
ps: рекомендую не выдумывать правила математических операций и округлений, а принять все как есть. Мы не с потолка взяли условия - уже 8-й год пишем торговый софт.
По закрытию этой сделки мне всё равно учтут не 1.45703, а "округлённое" значение. При всех конечных расчётах всё равно используется цена кратная Point.
Так почему при работе пользователя используется "промежуточная" цена? Пусть терминал работает с "промежуточными" значениями, а пользователю по запросу выдаётся уже нормализованная цена. ту, которую ему потом зачтут.
Я понимаю, что нам дают возможность увидеть "реальные рабочие" цены, но зачем они пользователю, если деньги дают только по ценам кратным Point?
По закрытию этой сделки мне всё равно учтут не 1.45703, а "округлённое" значение. При всех конечных расчётах всё равно используется цена кратная Point.
Так почему при работе пользователя используется "промежуточная" цена? Пусть терминал работает с "промежуточными" значениями, а пользователю по запросу выдаётся уже нормализованная цена. ту, которую ему потом зачтут.
Я понимаю, что нам дают возможность увидеть "реальные рабочие" цены, но зачем они пользователю, если деньги дают только по ценам кратным Point?
Про банки, которые начисляют свопы переокрытием я не подумал ... хотя изначальный вопрос возник на интрадэевских операциях, где о свопах речь не идёт и цена ни просто не "ровная", а отличается на 0.00...01 от должной из-за чего и ошибка.
:)
кстати, а почему на форуме нет смайлов? хотя бы самых примитивных?
И где я только раньше был.... :(..... два дня потерял, пока это в эксперте отловил.... пытался так:
if (OrderOpenPrice()==NormalizeDouble(LevelOpen, Digits)..........
а надо было так:
if (NormalizeDouble(OrderOpenPrice(),Digits)==NormalizeDouble(LevelOpen, Digits)..........
Так что "примитавные" не подойдут, ту матершинные просяися :)
Тему специально не перечитывал дабы не сбиться с мысли...
И так... имеем округление вниз. С этим всё понятно, НО! имеем при этом и накапливающуюся ошибку.
Есть ли возможность создать пользовательскую функцию со своим типом нормализации?
Например "математическую штатную" или с округлением вверх.
Таким образом слагая расчёты произведёные мкл4 со своими расчётами получим более точный результат.
Максимум поледеницы младшего разряда при любом количестве сложений...
*
Или я на неверном пути, точнее пошел на поводу у мысли? :)))