Пишите брокеру, кривые руки ничем не исправить.
Пишите брокеру, кривые руки ничем не исправить.
Да, но зато можно исключить участие кривых рук, я об этом и веду речь. При текущем порядке вещей, брокер вынужден хранить избыточную информацию на сервере, а это всегда потенциальный источник противоречий.
Если копнуть глубже, то дело не ограничивается лишь ticksize и digits. К примеру, есть ещё такой противоречивый момент как способ расчёта прибыли по инструменту, определяемый параметром ENUM_SYMBOL_CALC_MODE.
В одних случаях эта прибыль у них рассчитывается по формуле: (close_price-open_price)*Contract_Size*Lots, а в других - по формуле: (close_price-open_price)*TickPrice/TickSize*Lots.
Однако разбирающийся человек понимает, что это - одно и то же (масло масляное). Просто во втором случае расчёт идёт задом наперёд, т.к. TickPrice - это производная величина, вычисляемая как ContractSize*TickSize. И она в реальности нигде не должна храниться. Основные характеристики любого контракта, указывающиеся на сайте биржи, это размер контракта и размер тика. Стоимость тика нигде не указывается, ибо это вычисляемая величина. Т.е. расчёт для любого инструмента сводится к первой формуле. А здесь нагородили огород, из-за чего брокер вынужден хранить все 3 параметра как независимые переменные, хотя в расчёте использует только две из них, а в третьей фактически может содержаться всякий мусор (и это порой случается, внося путаницу). Как следствие, для форекса и акций нельзя верить тому, что выдаёт SYMBOL_TRADE_TICK_VALUE, а для фьючерсов - тому что выдаёт SYMBOL_TRADE_CONTRACT_SIZE, ибо это лишние параметры, нигде не участвующие, но хранящиеся у брокера.
Да, но зато можно исключить участие кривых рук, я об этом и веду речь.
С конструктивными предложениями пишите в сервис-деск. Либо ответят по существу, либо исправят.
Хотя, возможно, вы просто не видите проблему со всех сторон.
С конструктивными предложениями пишите в сервис-деск. Либо ответят по существу, либо исправят.
Хотя, возможно, вы просто не видите проблему со всех сторон.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Столкнулся с такой проблемкой. По некоторому фьючерсу размер тика равен 0.0125. Однако точность котирования (SYMBOL_DIGITS) равна 3. Т.е. округляется до предпоследней цифры (ну это брокер выставил такое значение на сервере). Из-за этого котировки в терминале получаются не кратными, и по сути не правильными (не соответствуют биржевым).
Корректную котировку приходится высчитывать по формуле: realprice = round(mt5price / ticksize) * ticksize. И корректное значение digits тоже приходится высчитывать, чтобы правильно отображать эти котировки.
В общем это всё очень костыльно. Необходимо внести исправления в терминал, чтоб он выдавал правильные котировки. Надо понимать, что точность котирования определяется исключительно ticksize, из которого уже и вычисляется digits чисто математически. Т.е. для 0.0125 значение digits будет 4. А не так, чтоб digits была независимой переменной как сейчас. Она должна автоматически вычисляться на клиентской стороне, а не передаваться с сервера. Тогда всё будет чётко и точно.
Другое дело - это точность отображения котировок в терминале. А это уже вопрос чисто графического интерфейса, настроек и пожелания пользователя. Если кому-то мешают лишние цифры, то ради бога, пусть выставит себе меньшую точность в настройках графика. Но внутри системы (и внутри MQL) все котировки должны быть абсолютно точными, без округлений.