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

 

@Gordon

"Что вы имеете в виду под"мгновенным исполнением"? (подразумевается, что это не то же самое, что 'Market Execution')..."

MT4 Server, похоже, имеет в виду (вы увидите это в его ручном списке открытия ордеров) возможность устанавливать стопы в открытом ордере как "Instant Execution"; и "Market Execution", когда они должны быть установлены на 0 и изменены.

@SDC и 1005philip

"Не проще ли просто использовать Symbol() во всех ссылках на символ, тогда даже если на сервере брокера EURUSD вводится как mooncheese, это не будет иметь значения, пока советник также знает, что EURUSD называется mooncheese."

Когда имя символа изменяется брокером, это требует открытия нового графика, на который вы добавите своего советника.

CB

 
cloudbreaker:

MT4 Server, похоже, ссылается (вы увидите это в выпадающем списке ручного открытия ордеров) на возможность устанавливать стопы в открытом ордере как "Instant Execution"; и "Market Execution", когда они должны быть установлены на 0 и изменены.

Будь я проклят, выпадающее меню действительно меняется при входе на счет, который принимает стопы только на 0. Я никогда не замечал этого. Спасибо.
 
SDC:

не проще ли просто использовать Symbol() во всех ссылках на символ, тогда даже если на сервере брокера EURUSD введен как mooncheese, это не будет иметь значения, пока советник также знает, что EURUSD называется mooncheese.

Вау! Тема выросла до 42 сообщений, это рекорд...

Если никто не возражает, я продолжу с того места, на котором остановился...

SDC, Если я не ошибаюсь, Филипп выкладывал свою пользовательскую функцию для создания TickValue, самостоятельно, в отличие от простого вызова предопределенного MarketInfo. Конечно, вызов MODE_TICKVALUE на Symbol() - это самая простая логическая вещь. Но помимо демонстрации/доказательства того, откуда/как TickValue получает свое значение. Я могу ошибаться, но я думаю, что это имеет преимущество для синтеза экзотической пары (пар), которую конкретный брокер может не предлагать. Мы можем пермутировать все доступные базы/контрагенты. У меня нет под рукой примера. Но я уверен, что то, что могут предложить брокеры, не является полной перестановкой доступных базисов/контрагентов. Я просто изучаю то, что написал Филипп. Может быть, это и не пригодится, если не нужно хеджировать/арбитражить или что-то в этом роде...

 

cameo Я буду рад поделиться с вами кодом, который у меня здесь лежит, если вы найдете в нем пользу. Честно говоря, я предполагал, что это просто обыденный/рутинный путь, который большинство людей уже проходили в ходе своих собственных приключений с кодом, поэтому я не хотел оскорблять чей-либо интеллект, предполагая, что это что-то новое для сообщества. (также мой код не совсем то, что я считаю достойным публикации в том виде, в котором он лежит на моем жестком диске, потенциально принося больше вреда, чем пользы в чужих руках, и я очень не хочу, чтобы кто-то потерял деньги из-за моего неубедительного стиля комментирования и т.д.).

Польза (я рассматриваю это скорее как "необходимость") от возможности рассчитать тиковую стоимость на основе фундаментальных данных не столько для хеджирования/арбитража (хотя это, конечно, может быть использовано и там), сколько для чего-то гораздо более простого. В моем случае я считаю это необходимым для вычисления капитала под риском, размещения стоплоссов и т.д.

(также, обратите внимание: значение marketinfo для MODE_TICKVALUE основано строго на цене Bid валютной пары, а не на цене ask, поэтому marketinfo tickvalue фактически технически корректно использовать только для расчетов, которые зависят от цены bid, таких как takeprofit длинной позиции или stoploss короткой позиции... опять же, расхождение незначительное, и, естественно, оно не имеет значения для валютных пар, в которых валюта счета является контр-валютой, таких как EURUSD и так далее).

Проблема с использованием marketinfo Tickvalue заключается в том, что он действителен только для текущих рыночных цен. Tickvalue зависит от рыночной цены для всех валютных пар, кроме тех, в которых валюта счета является контрвалютой. (Тиковая стоимость USDJPY отличается при USDJPY = 99.00 от 98.00 и т.д.).

Причина создания "синтетических" пар, как вы их называете, заключается в том, что для кросс-валютных пар стоимость тика зависит от цены двух валютных пар. Как торгуемого символа, так и валютной пары, образованной валютой счета и валютой встречной валютной пары торгуемого символа.

Пример. Допустим, номинал вашего счета - USD, а вы хотите торговать EURGBP. Стоимость позиции по EURGBP после ее открытия будет зависеть от рыночной цены EURGBP, а также от рыночной цены GBPUSD.

Вы можете открыть длинную позицию по EURGP на уровне 0,8500, и она может простоять по этой цене весь день, но ваша сделка окажется под водой, если GBPUSD в это время будет иметь нисходящий тренд. (именно поэтому вы, возможно, читали пару моих сообщений, в которых я утверждал, что хеджирование необходимо, но непрактично при торговле кросс-валютными парами, если вы хотите управлять рисками).

В моем случае мне нравится программно определять валютные пары, которые являются связующим звеном между валютой счета и кросс-валютной парой, отсюда и использование "синтетического" формирования пар.

 
1005phillip:

cameo Я был бы счастлив поделиться более подробным кодом, который у меня здесь есть, если вы найдете в нем ценность.

Да. Это было бы здорово! Пожалуйста, прикрепите его или напишите мне, если хотите. Спасибо, Филипп...

Преимущество (я рассматриваю это скорее как "необходимость") возможности рассчитать тиковую стоимость на основе фундаментальных данных не столько для хеджирования/арбитража (хотя, конечно, это может быть использовано и там), сколько для чего-то более простого. В моем случае я считаю это необходимым для вычисления капитала под риском, размещения стоплоссов и т.д.

(также, обратите внимание: значение marketinfo для MODE_TICKVALUE основано строго на цене Bid валютной пары, а не на цене ask, поэтому marketinfo tickvalue фактически технически корректно использовать только для расчетов, которые зависят от цены bid, таких как takeprofit длинной позиции или stoploss короткой позиции... опять же, расхождение незначительное, и, естественно, оно не имеет значения для валютных пар, в которых валюта счета является контр-валютой, таких как EURUSD и так далее).

Означает ли это, что другая сторона сделки, т.е. короткая (цена Ask) 'рыночная информация будет иметь расхождения, если рассчитывается независимо?

Проблема с использованием marketinfo Tickvalue заключается в том, что он действителен только для текущих рыночных цен. Tickvalue зависит от рыночной цены для всех валютных пар, кроме тех, в которых валюта счета является контрвалютой. (Tickvalue USDJPY отличается при USDJPY = 99.00 от 98.00 и т.д.)
.

Причина создания "синтетических" пар, как вы их называете, заключается в том, что для кросс-валютных пар стоимость тика зависит от цены двух валютных пар. Как торгуемого символа, так и валютной пары, образованной валютой счета и валютой встречной валютной пары торгуемого символа.

Да. Это четко описано в книге mql4. С тех пор я всегда рассматриваю кросс-валютныепары TickValues' как "плавающие".

Пример. Допустим, номинал вашего счета - USD, и вы хотите торговать EURGBP. Стоимость позиции по EURGBP после ее открытия будет зависеть от рыночной цены EURGBP, а также от рыночной цены GBPUSD.
.

Вы можете открыть длинную позицию по EURGP на уровне 0.8500, и она может простоять по этой же цене весь день, но ваша сделка окажется под водой, если GBPUSD в это время будет иметь нисходящий тренд. (именно поэтому вы, возможно, читали пару моих сообщений ранее, где я утверждал, что хеджирование необходимо, но непрактично при торговле кросс-валютными парами, если вы стремитесь управлять своими рисками).

Я никогда не смотрел на это с такой стороны! Нужно поразмыслить над этим s'more.... :)

В моем случае мне нравится программно определять валютные пары, которые являются мостом между валютой счета и кросс-валютной парой, отсюда и использование "синтетического" формирования пар.

Один вопрос (возможно, глупый): Вы когда-нибудь сталкивались с парой, которая не имеет USD в качестве базы/контрагента, но существует как кросс?


 
gordon:

К сожалению, именование MODE_TICKSIZE и MODE_TICKVALUE добавляет второе определение к Tick (которое, как я предполагаю, и является источником путаницы...). Определение Tick в данном контексте таково: Tick - это наименьшее возможное изменение цены для рассматриваемого символа:

  • MODE_TICKSIZE - размер этого изменения в ценовом выражении (в документации указано "размер тика в пунктах", но это явно неточно).
  • MODE_TICKVALUE - значение этого изменения в валюте депозита счета (рассчитывается брокером на стороне сервера).
Комментарии:
  1. Пункт" (MODE_POINT) - это наименьшее возможное изменение цены слева от размера десятичной точки для данного символа. Это НЕ то же самое, что MODE_TICKSIZE. Технически: MODE_TICKSIZE>=MODE_POINT, хотя почти всегда они равны.
  2. Пипсовка" - это условность, то, с чем мы все согласны. Это не математическое свойство символа или свойство сервера MT4. Так, например, у 4-значного брокера для EURUSD пип равен 1 пункту, а у 5-значного брокера пип равен 10 пунктам...
  3. Есть хорошая дискуссия о том, как автоматически определить размер пипса в пунктах здесь -> https://www.mql5.com/en/forum/124692.
  4. MODE_TICKSIZE может меняться, хотя и крайне редко (Point, с другой стороны, фиксирован). В CB есть метод для работы с этими изменениями здесь -> https://www.mql5.com/en/forum/109552/page3#195878.

Если я могу предложить то, что было моей интерпретацией на сегодняшний день - добавление к тому, что Гордон очень хорошо изложил выше.

  • Point : Всегда заканчивается на 1. Это коэффициент пересчета в соотношение, которое мы назвали "цена".
  • MODE_TICKSIZE : Наименьшая единица изменения цены в пунктах.
  • MODE_TICKVALUE : Текущая стоимость контрвалюты в пересчете на ее базовый коэффициент.
 

cameofx:

Point : Всегда заканчивается на 1. Это коэффициент преобразования соотношения, которое мы назвали "цена".
Добавляя уточнение к словам Гордона "почти всегда", я не могу сразу вспомнить инструмент Форекс, где это не так, но это редко бывает, когда брокеры предлагают металлы, индексы и т.д. Например, на контракте Альпари на золото TICKSIZE составляет 0,05 (а Point - 0,01). Насколько мне известно, MarketInfo(Symbol(),MODE_POINT) = MathPow(10, -MarketInfo(Symbol(), MODE_DIGITS))
 
cameofx:

Да. Это было бы здорово! Пожалуйста, прикрепите его или напишите мне, если хотите. Спасибо, Филипп...


Включены в прикрепленный rar файл. Я уверен, что у вас будут вопросы по использованию, задавайте.


cameofx:

Означает ли это, что другая сторона сделки, т.е. короткая (цена Ask) 'рыночная информация будет иметь расхождения, если рассчитывается независимо?



Это верно. Но процентная ошибка - это просто спред в пунктах, деленный на цену спроса (~0.02%-0.05% в зависимости от валютной пары)... это имеет значение, только если вы хотите учесть все до последней копейки.


cameofx:

Я никогда не смотрел на это с такой стороны! Нужно поразмыслить над этим s'more.... :)


Я включил файл excel в прикрепленный файл rar в надежде помочь вам в ваших размышлениях.

cameofx:

Один вопрос (возможно, глупый): Вы когда-нибудь сталкивались с парой, у которой USD не является базой/контрагентом, но существует как кросс?



В том виде, в котором ваш вопрос задан сейчас, простой ответ - да, каждый кросс без USD соответствует вашему критерию. Но я думаю, что вы хотели задать другой вопрос - встречал ли я брокера, который предлагает кросс-валютную пару и в то же время не предлагает необходимую валютную пару, содержащую контрвалюту кросс-пары и валюту номинала счета?

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

Допустим, у вас есть счет, деноминированный в евро, и вы покупаете 1 лот GBPUSD. Контрвалютой в GBPUSD является доллар США. Поэтому для расчета прибыли/убытка по позиции GBPUSD вашему брокеру (и вам) также необходимо знать цену EURUSD. (EUR - это валюта вашего счета, USD - контрвалюта кросс-пары, в которой вы открыли позицию).

Если у брокера нет EURUSD в качестве предлагаемой пары, то терминал MT4 не сможет рассчитать плавающую прибыль/убыток вашей позиции на тиковой основе. Таким образом, вы никогда не найдете брокера, предлагающего вам возможность торговать кросс-парой (относительно номинала вашего счета) без предложения основной валютной пары, содержащей валюту вашего счета.
 
jjc:
Добавляя уточнение к словам Гордона "почти всегда", я не могу сразу вспомнить инструмент Форекс, где это не так, но это редко бывает, когда брокеры предлагают металлы, индексы и т.д. Например, на контракте Альпари на золото TICKSIZE составляет 0,05 (а Point - 0,01). Насколько я знаю, MarketInfo(Symbol(),MODE_POINT) = MathPow(10, -MarketInfo(Symbol(), MODE_DIGITS)).
Согласен с обоими. Я никогда не видел случая, когда MODE_POINT и MODE_DIGITS не подтверждали бы эту формулу.
 
cameofx:
Пункт : Всегда оканчивается на 1.
"Пункт" (MODE_POINT) - это наименьшее возможное изменение цены", следовательно, очевидно, что он должен заканчиваться на 1.
MODE_TICKSIZE : Наименьшая единица движения цены в пунктах.

Как я уже говорил, хотя в документации утверждается, что "размер тика в пунктах", это явно неточно. Это в ценовом выражении.

MODE_TICKVALUE : Текущая стоимость контрвалюты в пересчете на ее базовый коэффициент.

Это определение непонятно... (возможно, английский не является вашим родным языком?).
Причина обращения: