У Вас неправильное понимание значения MODE_TICKVALUE:
MODE_TICKVALUE | 16 | Размер минимального изменения цены инструмента в валюте депозита |
Мы не используем эту величину в своих расчетах профитов.
О сложных случаях пересчета: при отсутствии прямого курса используется конвертация через доллар.
Вы привели определение, которое так и понимаю. Именно на основаниии этого определения и написал вышеприведенный код.
При вычислении TickValue вы используете только BID-цену. С такой же логикой могли использовать и только ASK-цену. Но надо же использовать, как одну, так и другую цену для расчета TickValue.
Например, для расчета TickValue USDJPY для USD-счета вам надо JPY перевести в USD. Это делается через ASK-цену USDJPY, а не BID, как у вас.
Так или иначе косвенно для расчета профитов вы не можете не использовать на определенном этапе TickValue. Если у вас логика такая же при его расчете там, то профит считается иногда некорректно.
P.S. Может показаться, что пытаюсь сделать "из мухи слона", но есть ясное понимание, что у вас ошибка.
P.P.S. По теме валютирования пока определенного решения не приняли?
Вы привели определение, которое так и понимаю. Именно на основаниии этого определения и написал вышеприведенный код.
При вычислении TickValue вы используете только BID-цену. С такой же логикой могли использовать и только ASK-цену. Но надо же использовать, как одну, так и другую цену для расчета TickValue.
Например, для расчета TickValue USDJPY для USD-счета вам надо JPY перевести в USD. Это делается через ASK-цену USDJPY, а не BID, как у вас.
Ничего переводить не надо, USDJPY означает цену американского доллара в йенах и котируется в йенах. При точности 2 знака после запятой TickValue будет означать 0.01. То есть, минимальное допустимое изменение котировочной цены. Цена может измениться с 95.60 до 95.61, но не до 95.604. Ничего никуда конвертироватьне нужно.
Rosh, вы путаете TickSize с TickValue.
Да, точно, перепутал.
У Вас неправильное понимание значения MODE_TICKVALUE:
MODE_TICKVALUE | 16 | Размер минимального изменения цены инструмента в валюте депозита |
Мы не используем эту величину в своих расчетах профитов.
О сложных случаях пересчета: при отсутствии прямого курса используется конвертация через доллар.
:) День добрый. А сообственно эта тема выросла из темы на форуме mql4 .
И на самом деле "ошибка" немного другая - по сути там показывается через маркетинфо один бид а при расчете используется значение по текущему рынку. То есть получается расхождение. Что не есть хорошо.
https://www.mql5.com/ru/forum/123136/page3
***
То getch -
Только зачем сюда в mql5 было постить то что никак к нему не относится?
Тут такой "ошибки" быть не может - тестер то мультивалютный. :)
SProgrammer, вам там же уже написал о TickValue для тестера MT4:
Это не ошибка (расчет TickValue в тестере).
Вы имеете возможность тестировать стратегии на USD-счете, например, на GBPJPY, не имея истории на USDJPY. В этом есть свои плюсы и минусы.
Чтобы корректно считать TickValue в тестере, необходимо, чтобы он работал по тиковой истории сразу нескольких торговых инструментов.
В данной ветке поднят вопрос расчета TickValue и прибыли не в тестере, а в реальной торговле на MT5.
SProgrammer, вам там же уже написал о TickValue для тестера MT4:
Это не ошибка (расчет TickValue в тестере).
Вы имеете возможность тестировать стратегии на USD-счете, например, на GBPJPY, не имея истории на USDJPY. В этом есть свои плюсы и минусы.
Чтобы корректно считать TickValue в тестере, необходимо, чтобы он работал по тиковой истории сразу нескольких торговых инструментов.
В данной ветке поднят вопрос расчета TickValue и прибыли не в тестере, а в реальной торговле.
Так я ошибки тут вообще не вижу. :) Расчет прибыли идет по другому. :)
Ну да лано - все, что называется вопрос исчерпан.
Хотя Вы зачем-то взяли тему про _одно_ и придумал _свое_, которого нет. :)
Ладно - проехали... Без обид, ладно? :)
В данной ветке поднят вопрос расчета TickValue и прибыли не в тестере, а в реальной торговле на MT5.
Мы не используем параметр TickValue в расчетах. Там используются прямые формулы конверсий.
Так я ошибки тут вообще не вижу. :) Расчет прибыли идет по другому. :)
Все. Вы зачем-то взяли тему про _одно_ и придумал _свое_, кторого нет. :)
Не представляю, как по другому (не через TickValue) можно вычислять прибыль.
В вашей теме я написал скрипт, который обнаружил ошибку расчета TickValue в реальной торговле.
Хочется, чтобы этой ошибки в MT5 не было.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В MT4 столкнулся с неверным расчетом значения MODE_TICKVALUE для FOREX-инструментов. Скрипт на MQL4, показывающий это:
Например, на USD-счете TickValue GBPJPY считается неправильно. Из-за этого прибыль по этой паре и многим другим показывается (и начисляется) завышенная.
Также встает вопрос правильного расчета TickValue при подобных ситуациях:
как считается TickValue AUDNZD на EUR-счете, когда у брокера нет пары EURNZD? Понятно, что TickValue считается через синтетический кросс EURNZD, но здесь встает вопрос неоднозначности, т.к. синтетических кроссов EURNZD может быть несколько и их цены могут (как правило) различаться. По какому синтетическому инструменту будет вычисляться TickValue и прибыль на MT5?
Проблему TickValue поднял на MT5, т.к., очевидно, ошибки, как правило, качуют от одной версии терминала к другой.
Далее еще тема по расчету прибыли:
На самом деле MetaTrader4/5 прибыль вообще считает неправильно - он сразу переводит валюту прибыли в базовую валюту счета. Правильно это делать на момент валютирования.
На межбанке Equity постоянно меняется, если вы открыли и закрыли позицию с валютой прибыли не равной валюте счета (например, на USD-счете совершили сделку на USDJPY). И только в момент валютирования (возможно, неправильно использую этот термин) Equity фиксируется (на примере - прибыль в JPY переводится по текущему курсу USDJPY в USD).
Как на MT5 эта разница в подходах расчета прибыли состыковывается? На момент валютирования добавляется/списывается соответствующая сумма?
Это касается не только FOREX-инструментов, т.к. некоторые фондовые инструменты считаются в разных валютах.