Цена за трубопровод - страница 2

 

LEHayes, ничего страшного, если вы полностью проигнорируете мой пост. Я только уважаю ваш опыт, но иногда даже самые умные могут что-то упустить. Ваша проблема звучит очень похоже на TickValue, поэтому я и спрашиваю. Это лучшее объяснение, которое я могу найти, похожее на вашу проблему. Из книги, возможно, это может помочь:

Размер одного стандартного лота для одного и того же символа может отличаться в разных дилинговых центрах. <br / translate="no"> Необходимое количество свободных средств для открытия однолотового ордера обратно пропорционально величине предоставляемого кредитного плеча. В то же время стоимость 1 пункта в валюте депозита по символу не связана с предоставляемым кредитным плечом.

Таблица 3. Возможные комбинации стоимости 1 лота и стоимости 1 пункта (валюта депозита - доллар США).
Дилинговый центр 1 Дилинговый центр 2 Дилинговый центр 3
Купить продать 1пт Купить продать 1пт Купить продать 1пт Купить продать 1пт
EUR/USD 1296.40 1296.20 10.00 1296.50 1296.20 10.00 1000.00 1000.00 10.00
GBP/USD 1966.20 1966.00 10.00 1376.48 1376.20 7.50 1000.00 1000.00 10.00
AUD/USD 784,40 784,20 10,00 1569,20 1568,40 20,00 1000,00 1000,00 10,00
USD/JPY 1000.00 1000.00 8.29 1000.00 1000.00 8.29 1000.00 1000.00 8.29
USD/CHF 1000,00 1000,00 8,02 1000,00 1000,00 8,02 1000,00 1000,00 8,02
EUR/CHF 1296.40 1296.20 8.02 1296.35 1296. 35 8.02 1000.00 1000.00 8.02

Цены указаны по состоянию на 16.12.2007.

Кратко рассмотрим некоторые распространенные методы расчета стоимости 1 лота и 1 пункта.

Дилинговый центр 1 (наиболее распространенный)

Для символов, имеющих в качестве взаимной валюты USD, стоимость 1 лота равна текущей цене соответствующей двусторонней котировки, умноженной на 1000, в то время как стоимость 1 пункта равна $10.

Для символов, имеющих в числителе USD, стоимость 1 лота равна $1000.00, тогда как стоимость 1 пункта обратно пропорциональна текущей котировке и равна 1/(Bid). Например, для USD/CHF при Bid= 1,2466 стоимость 1 пункта равна 1/1. 2466 = 8,02.

Для кросс-курсов стоимость 1 лота рассчитывается так же, как и для валюты числителя, а стоимость 1 пункта рассчитывается так же, как и для валюты знаменателя. Например, для EUR/CHF стоимость 1 лота составляет 129,40 (как для EUR/USD), а стоимость 1 пункта - 8,02 (как для USD/CHF).

Дилинговый центр 2

В некоторых дилинговых центрах, учитывая одно и то же правило расчета стоимости, значения стоимости могут быть разными для некоторых символов. Например, стоимость 1 лота и стоимость 1 пункта могут быть пропорционально увеличены или уменьшены. Например, для GBP/USD этот коэффициент может составлять 0,75, а для AUD/USD - 2,0. Такое представление значений стоимости не приводит к каким-либо экономическим изменениям, в таких случаях вам просто необходимо учитывать эту особенность при расчете стоимости ваших ордеров. Следует также обратить внимание на то, что стоимость 1 лота при покупке и продаже активов по кросс-курсам одинакова.

Дилинговый центр 3

Существуют также дилинговые центры, которые устанавливают стоимость 1 лота в размере $1000.00 для любого символа. При этом стоимость 1 пункта остается пропорциональной текущим ценам. Это подразумевает установление специального кредитного плеча для каждого символа. Стоимость 1 пункта всех символов, которые не котируются в привязке к USD, всегда изменяется пропорционально стоимости символа, указанного взаимно.

Вообще, могут существовать и другие принципы построения стоимостных показателей. Само собой разумеется, что перед началом реальной торговли необходимо узнать о методе расчета для конкретного дилингового центра и учесть его при кодировании.

С наилучшими пожеланиями

 
engcomp:

Я не знаю, как к этому относиться. Это граничит с раздражением.

LEHayes, если вы посмотрите, то увидите, что "размер стоп-лосса" является одним из входных данных, а не тем, что пытается определить скрипт.

Кроме того, скрипт не "пытается", а определяет размер лота на основе стоп-лосса и процента риска, который вы определяете.

И наконец, тиковое значение, которое он возвращает, указано в валюте счета. Переводить его в вашу валюту - ваше дело.



Извините за это, теперь я вижу, что стоп-лосс не был использован в расчете.

У меня складывается впечатление, что TICKVALUE не является надежным источником для определения фактической стоимости пункта. Это одна из причин, почему я стесняюсь использовать TICKVALUE. Мне говорили, что он скачет или может меняться. Единственное, что ваш код сделал с TICKVALUE, это определил, нужно ли вам вычислять его против 10 для ситуации с дополнительной цифрой, верно? Ссылаясь на это:

   double tickvalue = (MarketInfo(Symbol(),MODE_TICKVALUE));
   if(Digits == 5 || Digits == 3){
      tickvalue = tickvalue*10;
   }

Короче говоря, можно сказать, что TICKVALUE - это то же самое, что и Pip Value или Price Per Pip. Если я обеспокоен тем, что значение скачет, то, возможно, мне следует проверить значение на достоверность, прежде чем использовать его в расчетах, или использовать другой метод получения цены за пип.

Я думаю, что одна из причин, почему я разочаровываю людей, заключается в том, что в этом макете есть разные термины для описания одного и того же. Стоимость пункта, цена за пункт, стоимость тика и т.д. Возможно, книга о синонимах на этом рынке была бы кстати ;-)

 
LEHayes:

CB, это причина, по которой я вернулся к тому, чтобы докопаться до корня. Когда я делаю поиск, как вы предлагаете, есть более 2800 тем на одном только форуме, так или иначе связанных с этим. Я читал темы о противоречии между тем, является ли тик на самом деле пунктом, или это должно рассматриваться по-другому, потому что тик - это когда брокер решает обновить ваш MT4, это не диктует, что тик будет обновляться каждый пункт. Поэтому далее в аргументации говорится, что это ненадежный источник для получения значения пункта.

Не знаю, поможет ли это, но...

  • Практически все согласны с тем, что "пункт" - это единица движения цены. Они могут не соглашаться по поводу размера - например, равен ли пункт на EURUSD 0,0001 или 0,00001 - но термин достаточно однозначен.
  • Термин "тик" широко используется для обозначения двух разных вещей: либо того же, что и "пункт", либо совершенно иного значения "рыночного события", например, "30 тиков в минуту". Некоторые люди пытаются настаивать на том, чтобы "тик" был зарезервирован для последнего значения, но они ведут проигрышную борьбу. Говоря иначе, MODE_TICKSIZE и MODE_TICKVALUE в MT4 были бы чуть менее спорными, если бы назывались MODE_PIPSIZE и MODE_PIPVALUE.

 
gordon:
Цена за пункт или цена за точку? Если первое, то это актуально -> https://www.mql5.com/en/forum/124692, обсуждается, как определить размер пункта (в пунктах) для символа...


Если я ставлю советника на EURUSD, и цена движется от 1.1234 до 1.1235, я хочу знать денежную стоимость этого единственного движения. Я знаю, что в этом расчете потребуется кредитное плечо и размер лота, но мы можем установить стандартный размер лота в 1 для определения стоимости пункта, а затем позже рассчитать его против мини или микро и т.д.

Честно говоря, парни, я не пытаюсь быть сложным и стараюсь говорить прямо, как могу. Надеюсь, я никого не оттолкну.

 
LEHayes:


Извините за это, теперь я вижу, что стоп-лосс не был использован в расчете.

У меня складывается впечатление, что TICKVALUE не является надежным источником для определения фактической стоимости пункта. Это одна из причин, почему я стесняюсь использовать TICKVALUE. Мне говорили, что он скачет или может меняться. Единственное, что ваш код сделал с TICKVALUE, это определил, нужно ли вам вычислять его против 10 для ситуации с дополнительной цифрой, верно? Ссылаясь на это:

Короче говоря, можно сказать, что TICKVALUE - это то же самое, что и Pip Value или Price Per Pip. Если я обеспокоен тем, что значение скачет, то, возможно, мне следует проверить значение на достоверность, прежде чем использовать его в расчетах, или использовать другой метод получения цены за пип.

Я думаю, что одна из причин, почему я разочаровываю людей, заключается в том, что в этом макете есть разные термины для описания одного и того же. Стоимость пункта, цена за пункт, стоимость тика и т.д. Возможно, книга о синонимах на этом рынке была бы кстати. ;-)

И из статьи


Определим NominalPipValue как стоимость одного пункта в валюте депозита при Volume=1.00.
NominalPipValue можно рассчитать, зная текущий курс выбранной пары.

Допустим, вы торгуете парой EURUSD на стандартном счете с кредитным плечом 1:100. Если валюта вашего депозита USD, то NominalPipValue всегда будет 10$, независимо от курса.
Если валюта вашего депозита EUR, то вы должны учитывать обменный курс, точнее, обратный обменный курс.

NominalPipValue = (10 / обменный курс)

Если текущий курс EURUSD составляет, например, 1,3333, то вы будете иметь:

NominalPipValue = (10$ / 1,3333) = 7,519 евро.

Как видите, это довольно просто. Все становится сложнее, когда вы торгуете такой парой, как USDCHF, а валюта вашего депозита - евро, или GBPJPY, а валюта вашего депозита - евро или доллар. Фактически в этих случаях вам приходится принимать во внимание двойной обменный курс.

К счастью, нам не нужно этого делать, так как в MetaTrader есть специальная функция, которая легко сообщает нам NominalPipValue:

NominalPipValue = MarketInfo(Symbol(),MODE_TICKVALUE) (6)

Это будет работать, какой бы парой вы ни торговали и какая бы валюта вашего депозита ни была... даже слишком просто теперь :)

ВНИМАНИЕ: NominalPipValue меняется в зависимости от курса валют, поэтому его значение при открытии ордера отличается от значения при закрытии ордера. Фактические прибыли/убытки рассчитываются по курсу на момент закрытия ордера.

К сожалению, мы не знаем этого значения в момент открытия ордера... в любом случае для колебаний курса в порядке типичного SL разница в NominalPipValue при открытии и закрытии позиции достаточно мала, чтобы ее можно было игнорировать для целей нашего расчета (менее 1% для SL <= 100pips).

На данный момент мы знаем, что при покупке/продаже 1.00 лота PipValue равен NominalPipValue. В более общем виде мы можем сказать:

1.00 / NominalPipValue = X / PipValue (7)

где "X" - это количество лотов для торговли.
Мы извлекаем X из уравнения (7), превращая его в:

X = PipValue / NominalPipValue (8)

Хорошо, мы достигли нашей цели. Теперь мы знаем, как конвертировать рисковый капитал в лоты!!!

Это может быть полезно новичкам / кому-то...

 
cameofx:

LEHayes, ничего страшного, если вы полностью проигнорируете мой пост. Я только уважаю ваш опыт, но иногда даже самые умные могут что-то упустить. Ваша проблема звучит очень похоже на TickValue, поэтому я и спрашиваю. Это лучшее объяснение, которое я могу найти, похожее на вашу проблему. Из книги, возможно, это может помочь:

С наилучшими пожеланиями


Да, это тот расчет, который я ищу. Определить 1 точку перемещения. Вы попали в точку, теперь меня смущает то, как записать это в функции определения этого значения. У нас есть условие, где USD является либо числителем, либо демонстратором, либо имеет дело с перекрестными парами. Вот где я запутался.
 
jjc:

Не знаю, поможет ли это, но...

  • Практически все согласны с тем, что "пункт" - это единица движения цены. Они могут не соглашаться по поводу размера - например, является ли пункт на EURUSD 0,0001 или 0,00001 - но термин достаточно однозначен.
  • Термин "тик" широко используется для обозначения двух разных вещей: либо того же, что и "пункт", либо совершенно иного значения "рыночного события", например, "30 тиков в минуту". Некоторые люди пытаются настаивать на том, чтобы "тик" был зарезервирован для последнего значения, но они ведут проигрышную борьбу. Говоря иначе, MODE_TICKSIZE и MODE_TICKVALUE в MT4 были бы чуть менее спорными, если бы назывались MODE_PIPSIZE и MODE_PIPVALUE.


Именно это и подводит меня к моим опасениям. Ваше заявление о Tick.
 
cameofx:

И из статьи

Это может быть полезно новичкам / кому-то...


Да, это то, что я тоже ищу. Я думаю, что в этих двух статьях говорится об одном и том же. Итак, из этой статьи я могу с уверенностью предположить, что TICKVALUE - это PipValue или цена за пипс. Скачки или изменения этого значения могут быть вызваны вычислениями на лету, связанными с обменным курсом. Я должен ожидать колебаний.

Извините, ребята, если это так просто, я искренне сожалею, что вызвал такой шум.

 

Спасибо всем за то, что донесли это до моего толстого черепа. По какой-то причине я считал, что TICKVALUE ненадежен.

 
LEHayes:

Спасибо всем, кто донес это до моего толстого черепа. По какой-то причине я считал, что TICKVALUE ненадежен.

TICKVALUE, когда используется сам по себе, может быть ненадежным.

Если вы исследуете TV и TS каждый тик, вы обычно увидите что-то вроде этого:

1 0.0001

1 0.0001

1 0.0001

1 0.0001

Однако, лишь изредка вы можете увидеть что-то вроде этого:

1 0.0001

1 0.0001

2 0.0002

1 0.0001

Поэтому я еще раз упомяну, что TICKVALUE и TICKSIZE следует использовать как соотношение. TV/TS - это формула, которая обеспечит то, что вы ищете.

CB