Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
К примеру вы NormalizeDouble( цена ,4). Выводите ее на печать, все вроде нормально "1.3333", но если вы попытаетесь ее найти, будите удивлены, в отрицательном результате, так на самом деле это число может иметь значение "1.33330001"
так вы оба сравниваемых числа нормальзуйте при поиске и все.
если спрашивают значит не ясно в чем у вас был затык.
при поиске так же следует использовать нормализацию.
Если бы проблем с корректной нормализацией не существовало, то этого поста бы не было.
Если бы проблем с корректной нормализацией не существовало, то этого поста бы не было.
Я вас умоляю, 99% ошибок сидят и смотрят в монитор. Эта одна из них.
К примеру вы NormalizeDouble( цена ,4). Выводите ее на печать, все вроде нормально "1.3333", но если вы попытаетесь ее найти, будите удивлены, в отрицательном результате, так на самом деле это число может иметь значение "1.33330001"
Это как раз корректная нормализация. Следствие особенностей двоичного представления дробных чисел. Описано в документации: https://www.mql5.com/ru/docs/convert/normalizedouble
Просто Print () не показывает этой единицы в последнем знаке. Сделайте Print(DoubleToString(цена, 16).
Я вас умоляю, 99% ошибок сидят и смотрят в монитор. Эта одна из них.
Я изложил свое мнение по поводу возникшей ошибки. Если в вашей практике проблем с нормализацией не возникало, я рад, но это не значит ее не существует, доказывать это я вам точно не буду.
в том то и дело, что не решен. Можете по поэкспериментировать закинуть в массив цены через NormalizeDouble, а после попытаться найти эту цену в массиве, уверяю результат будет не однозначный.
Есть хранение данных и есть их представление. Попробуйте сначала сохранить данные в массиве, а после извлечь их, или найти, используя NormalizeDouble.
по вашему вопросу. если с норимализацией у вас все ок, добавьте в код логированиие всех действий в журнал, чтобы видеть не просто 130ю ошибку, а конкретно какая сейчас цена и что конкретно советник отправлял в торговом приказе, какие числа.
я уже сталкивался с тем как особенно упоротые брокеры сыпят неверные ошибки маскируя тем самым реквоты, возможно эта та же история.если по логам выясниться что у вас все хорошо - притензии к брокеру, не иначе.
вообще лучше каждое действие максимально логировать, особенно все торговые приказы, но и не "засирать" журнал мусором.
К примеру вы NormalizeDouble( цена ,4). Выводите ее на печать, все вроде нормально "1.3333", но если вы попытаетесь ее найти, будите удивлены, в отрицательном результате, так на самом деле это число может иметь значение "1.33330001"
Заполняйте массив существующими ценами, а в том месте где нужно применить - нормализуйте.
А вообще, проблем с нормализацией нет, если правильно написать код.
по вашему вопросу. если с норимализацией у вас все ок, добавьте в код логированиие всех действий в журнал, чтобы видеть не просто 130ю ошибку, а конкретно какая сейчас цена и что конкретно советник отправлял в торговом приказе, какие числа.
если по логам выясниться что у вас все хорошо - притензии к брокеру, не иначе.
вообще лучше каждое действие максимально логировать, особенно все торговые приказы, но и не "засирать" журнал мусором.
Да, дельная мысль.
Вообще, хотелось бы конечно по номеру ошибки однозначно понимать причину её появления. А в ошибке 130 куча разных причин намешана, вот и мучаемся.