![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Мое определение теряет свой первоначальный смысл, когда цитируется вне контекста. Чтобы уточнить - слово "цена" в определении для MODE_TICKSIZE относится к фактическим возможным котировкам цены, тогда как в определении для Point оно относится к любой цене.
- Гордон, мое определение тоже не слишком горячее ("Point" = коэффициент умножения для наименьшей десятичной цены), а шестнадцатеричная аналогия такая неубедительная... Но, возможно, у меня есть победитель...
Логика
Брокеру необходимо установить ценовые отношения между парами, чтобы они вращались вокруг MODE_LOTSIZE - 100,000 единиц котируемой валюты и MODE_TICKVALUE - 10 единиц котируемой валюты. Только при этом равном условии взаимосвязи, цена может котироваться между собой. Это, я полагаю, и есть основа построения цены на Форекс.
Point = MODE_LOTSIZE / Tickvalue в котируемой валюте. например:
GBPUSD 0.0001 = 100,000 / 10 USD
USDJPY 0.01 = 100,000 / 1,000 JPY <-- MathRound( MODE_TICKVALUE * последний Bid котируемой валюты)
CHFJPY .... и т.д. если вы или кто-либо другой может подтвердить это, было бы здорово.
Все ставки сделаны, если мы собираемся начать говорить о фьючерсных контрактах. Например, у FXPro есть фьючерсные контракты в почти обычном формате #AAmy, где "my" - это стандартный код экспирации, например M0. EUR_JPY_fut звучит как какой-то странный синтетический контракт.
- Хорошо, Jjc... Я предполагаю, что фьючерсы также имеют разное построение цены и TICK_VALUE. Так что это определенно исключает все нефорексные инструменты. Префиксы и промежуточные фиксы считаются менее вероятными.
- CB Мне было бы очень интересно услышать ваше мнение по поводу вышеприведенного расчета. Спасибо за ваше мнение до сих пор.
наилучшие пожелания
камея
- Гордон, мое определение тоже не слишком удачное ("Point" = коэффициент умножения для наименьшей десятичной цены), а аналогия с шестнадцатеричной системой так неубедительна... Но, возможно, у меня есть победитель...
Логика
Брокеру необходимо установить ценовые отношения между парами, чтобы они вращались вокруг MODE_LOTSIZE - 100,000 единиц котируемой валюты и MODE_TICKVALUE - 10 единиц котируемой валюты. Только при этом равном условии взаимосвязи, цена может котироваться между собой. Это, я полагаю, и есть основа построения цены на Форекс.
Point = MODE_LOTSIZE / Tickvalue в котируемой валюте. например:
GBPUSD 0.0001 = 100,000 / 10 USD
USDJPY 0.01 = 100,000 / 1,000 JPY <-- MathRound( MODE_TICKVALUE * последний Bid котируемой валюты)
CHFJPY .... и т.д. если вы или кто-либо другой может подтвердить это, было бы здорово.
- Хорошо, Jjc... Я предполагаю, что у фьючерсов также есть различные построения Price и TICK_VALUE. Так что это определенно исключает все нефорексные инструменты. Префиксы и промежуточные фиксы считаются менее вероятными.
- CB Мне было бы очень интересно услышать ваше мнение по поводу вышеприведенного расчета. Спасибо за ваше мнение на данный момент.
наилучшие пожелания
камея
FInally have connection to post...
Would the logic change if Digits = 5 or Digits = 3?
Нет engcomp, логика не должна меняться. По крайней мере, это то, что я пытаюсь выяснить.
Я пытаюсь разобраться в нескольких вещах, пока что это : Point, MODE_TICKVALUE, MODE_TICKSIZE, Price. Возможно, в итоге я представлю их в новом свете, но если я смогу использовать их дальше, то это будет того стоить.
IMO, MODE_TICKVALUE, преобразованный в котируемую валюту, очень важен . Так что ради обсуждения я буду называть его QUOTE_TICKVALUE. Кстати, предыдущее уравнение является обратным.
Чтобы вычислить, действительно ли Point является : QUOTE_TICKVALUE (TickValue в котируемой валюте) / MODE_LOTSIZE, у меня есть следующее. (Calc_Point должен соответствовать Point).
Примечание: для кросс-пары, у которой котируемая валюта является базовой в долларовой форме (например, EURGBP), необходимо немного изменить вышеуказанное.Итак, в любой момент времени, по любой цене:
USDJPY, GBPJPY, AUDJPY, XXXJPY............. имеет QUOTE_TICKVALUE --> 1000 [JPY]
EURUSD, AUDUSD, GBPUSD, XXXUSD ........ имеет QUOTE_TICKVALUE --> 10 [USD]
EURCHF, USDCHF, XXXCHF....................... имеет QUOTE_TICKVALUE --> MathPow(10, x) [CHF].
Я должен подчеркнуть, что я "извлекаю" QUOTE_TICKVALUE из плавающего TICK_VALUE. Я думаю, что это означает, что QUOTE_TICKVALUE предопределены брокером, и что более важно: они паралельно будут согласованы между каждой валютой, которая служит в качестве котируемой валюты. Таким образом, пока MODE_LOTSIZE = 100,000 и QUOTE_TICKVALUE USD = 10, мы можем быть уверены, что другие компоненты символа, которые служат валютой котировки, также будут согласованы (т.е. вы не можете изменить 10 USD на 1 USD, не разделив другие QUOTE_TICKVALUE на 10 - это, я полагаю, то, где мы можем определить мою Valid_Point в целом). Надеюсь, это понятно...
Я не могу (ради жизни) иметь net и MT4 одновременно в эти дни (это сложно...). Так что если кто-то может помочь или проверить, было бы здорово.
камея
Я нашел то, что мне нужно, Valid_Point и даже больше. Более глубокое понимание Point, TickValue, Ticksize, Symbol(), и цены в целом. Спасибо всем, кто поделился своими соображениями и комментариями с тех пор, как LEHayes начал эту тему.
С наилучшими пожеланиями
Камея
Блин, посмотрите, сколько мозгового штурма я устроил. Надеюсь, это было полезно. У меня не было времени следить за этой темой, но я надеюсь получить шанс просмотреть ее.
После всех этих обсуждений и отличной работы, пришли ли мы к тому, что у нас есть какая-то стандартная функция для генерации того, что мы искали? Этот вопрос призван подвести нас к итогу.
Есть ли у кого-нибудь опыт использования вышеприведенных советов по расчету на металлах или других символах, отличных от кросс-валют?
Я нашел эту тему, так как меня интересовал расчет изменения цены в валюте счета от движения одного пункта в символе.
Моя базовая теория была следующей:
Цена за пункт = Размер контракта * Пункт
Цена за пункт в валюте счета = Цена за пункт * Кросс-курс счетчика,
где
Размер контракта = MarketInfo(Symbol(), MODE_LOTSIZE)
Пункт = Пункт = MarketInfo(Symbol(), MODE_POINT)
Account Counter Cross rate - это цена встречной валюты символа, выраженная в валюте счета (CCCAAA bid rate, где AAA - валюта счета, а CCC - встречная валюта символа).
Я проверил вышесказанное на демо-счетах разных брокеров (icm, insta, fxopen, fxopen ecn) против фактических сделок лотом 1.0 в истории счета. Я также проверил метод расчета тикового значения у cloudbreaker.
Я обнаружил следующее:
- Цену движения одного пункта символа нелегко рассчитать у разных брокеров, а в случае металлов
- даже формула cloudbreaker'а tickvalue * point / ticksize может привести к ложным результатам (insta - серебро, icm - eurusd, fxopen - серебро и золото).
- в случае icm - золото, даже Contract size * Point приводит к плохому результату (0.5 вместо фактических 5.0, это ошибка данных брокера?).
Вы можете найти подробные результаты здесь:Цена одного пункта.
Таким образом, я пришел к выводу, что не существует 100% уверенного метода расчета цены за пункт.
Прилагается небольшой скрипт, который я разработал и который может ответить на ваш вопрос.
Поскольку у скриптов нет параметров "extern", вам придется изменить их в коде и перекомпилировать.
Просто загрузите его в папку experts/scripts, скомпилируйте и прикрепите к графику.
Дайте мне знать, как это работает, Хельмут.