Сделка по фьючерсу открывается по цене Last, а не по Bid или Ask. Это нормально?

 

Работая с Forex-инструментами, всегда считал, что цена покупки Ask, цена продажи Bid - и что это справедливо для любых инструментов. Соответственно при расчёте TP и SL отступал от цены совершения сделки. Обратился ко мне один клиент, который сообщил, что у него не верно откладываются дистанции SL и TP от цены открытия сделки. Посмотрел и действительно иногда сделка открывается по Ask или Bid, а иногда по цене внутри спреда. Как выяснилось, это цена Last. И иногда Last совпадает с Ask или Bid, в этом случае цена открытия выглядит "правильной", а иногда не совпадает и соответственно, все расчёты TP и SL оказываются некорректными.

Спецификация торгового инструмента:

Я так понимаю, что это фьючерс. Нормальная ли это ситуация и во всех ли фьючерсах ценой открытия выступает цена Last? 

 

При биржевом потоке данных, по цене внутри спреда могут исполнятся встречные заявки, что и будет порождать цену Last.
Это и просматривается из вашего описания. По Bid Ask исполняется когда нет встречных заявок. 
Терминальный TP реализован в форексом исполнении, то есть срабатывает маркетом по обратной стороне спреда.
Чтобы TP работал правильно, используйте лимитные заявки для фиксации прибыли, а не стандартный TP.
SL без изменений, он всё равно маркетом бьет. Но лучше всё же пользовать Stop ордера, а не стандартный SL из терминала.
Так же для расчета дистанции фиксации прибыли или убытка, используйте среднюю фактическую цену открытия позиции.

Терминальные SL и TP находятся на сервере mt5, а вот Limit ордера размещаются на бирже, Stop ордера размещаются на сервере провайдера котировок.
Разницу улавливаете? Разберитесь наконец как работают биржевые Limit и Stop ордера, и работайте ими.
Это бич 90% этого форума.

 
Roman:

При биржевом потоке данных, по цене внутри спреда могут исполнятся встречные заявки, что и будет порождать цену Last.
Это и просматривается из вашего описания. По Bid Ask исполняется когда нет встречных заявок. 
Терминальный TP реализован в форексом исполнении, то есть срабатывает маркетом по обратной стороне спреда.
Чтобы TP работал правильно, используйте лимитные заявки для фиксации прибыли, а не стандартный TP.
SL без изменений, он всё равно маркетом бьет. Но лучше всё же пользовать Stop ордера, а не стандартный SL из терминала.
Так же для расчета дистанции фиксации прибыли или убытка, используйте среднюю фактическую цену открытия позиции.

Терминальные SL и TP находятся на сервере mt5, а вот Limit ордера размещаются на бирже, Stop ордера размещаются на сервере провайдера котировок.
Разницу улавливаете? Разберитесь наконец как работают биржевые Limit и Stop ордера.
Это бич 90% этого форума.

У меня TP и SL неправильно откладываются в момент открытия сделки. Как они срабатывают не следил, может тоже с проблемами, но то что они неверно посчитаны в момент открытия - это я точно заметил. Когда я покупаю, я рассчитываю цену TP и SL от Ask, потому как покупки должны совершаться по этой цене.

И у меня цены TP и SL рассчитываются так:

TP = Ask+TP_pips*_Point.

SL=Ask-SL_pips*_Point.

Для продаж:

TP=Bid-TP_pips *_Point.

SL=Bid+SL_pips *_Point.

Но если Last оказывается внутри спреда, то получается, я не от цены открытия сделки дистанции TP и SL считал. 

Я когда это заметил, много сделок открыл, чтобы убедиться. Как только Last оказывается внутри спреда, сделка всегда открывается по ней. А если не внутри спреда, получается, что тоже по Last'у открываю, только она совпала с Ask или Bid.

 
Oleg Remizov:

У меня TP и SL неправильно откладываются в момент открытия сделки. Как они срабатывают не следил, может тоже с проблемами, но то что они неверно посчитаны в момент открытия - это я точно заметил. Когда я покупаю, я рассчитываю цену TP и SL от Ask, потому как покупки должны совершаться по этой цене.

И у меня цены TP и SL рассчитываются так:

TP = Ask+TP_pips*_Point.

SL=Ask-SL_pips*_Point.

Для продаж:

TP=Bid-TP_pips *_Point.

SL=Bid+SL_pips *_Point.

Но если Last оказывается внутри спреда, то получается, я не от цены открытия сделки дистанции TP и SL считал. 

Я когда это заметил, много сделок открыл, чтобы убедиться. Как только Last оказывается внутри спреда, сделка всегда открывается по ней. А если не внутри спреда, получается, что тоже по Last'у открываю, только она совпала с Ask или Bid.

Рассчитывайте от цены позиции, не Last, Bid, Ask а от цены позиции на бирже.
То есть получите ответ от биржи, по какой цене у вас позиция, от этой цены и считайте все расчёты.
На бирже неттинг, при доливке цена позиции усредняется.

 
Roman:

Рассчитывайте от цены входа позиции, не Last, Bid, Ask а от цены позиции на бирже.
То есть получите ответ от биржи, по какой цене у вас позиция, от этой цены и считайте все расчёты.

Тогда мне придётся модифицировать уже открытый ордер, и не будет никакой гарантии, что я установлю тейк и стоп. Не факт, что модификация пройдёт успешно. Если я облажаюсь в расчётах, тейк и стоп будут не такими как я ожидал, в крайнем случае получу ошибку [invalid stops] и сделка просто не откроется. Это безопаснее, чем откроется но без ордеров СЛ и ТП.

 
Oleg Remizov:

Тогда мне придётся модифицировать уже открытый ордер, и не будет никакой гарантии, что я установлю тейк и стоп. Не факт, что модификация пройдёт успешно. Если я облажаюсь в расчётах, тейк и стоп будут не такими как я ожидал, в крайнем случае получу ошибку [invalid stops] и сделка просто не откроется. Это безопаснее, чем откроется но без ордеров СЛ и ТП.

Что делает форекс с людьми ))
Используйте Limit и Stop ордера, а не форексную модификацию.
Limit для TP
Stop для SL
И не забывайте про принцип заполнения лимитных заявок.
Вам нужно просто изучить принцип биржевых заявок, иначе всё бессмысленно.

 
Roman:

Что делает форекс с людьми ))
Используйте Limit и Stop ордера, а не форексную модификацию.
Limit для TP
Stop для SL
И не забывайте про принцип заполнения лимитных заявок.
Вам нужно просто изучить принцип биржевых заявок, иначе всё бессмысленно.

Я не совсем Вас понял.

То есть Вы предлагаете вместо SL и TP, которые относятся к конкретной сделке и самостоятельно удалятся при её закрытии, размещать независимые ордера Buy Stop, Buy Limit, Sell Stop, Sell Limit?

Например, сделка на покупку и я к ней должен разместить 2 отложки: Sell Stop в качестве StopLoss и Sell Limit вместо TakeProfit?

И надо ещё запомнить, что они относятся к этой сделке, и если она закроется например вручную, их срочно надо отменить, чтобы они не сработали и не породили незапланированную сделку.

Если сработает Sell Stop, надо не забыть удалить парный для него Sell Limit, а если сработает Sell Limit, надо не забыть удалить парный для него Sell Stop. Так что ли?

 
Oleg Remizov:

Я не совсем Вас понял.

То есть Вы предлагаете вместо SL и TP, которые относятся к конкретной сделке и самостоятельно удалятся при её закрытии, размещать независимые ордера Buy Stop, Buy Limit, Sell Stop, Sell Limit?

Например, сделка на покупку и я к ней должен разместить 2 отложки: Sell Stop в качестве StopLoss и Sell Limit вместо TakeProfit? И надо ещё запомнить, что они относятся к этой сделке, и если она закроется, их срочно надо отменить, чтобы они не сработали и не породили незапланированную сделку. Так что ли?

Да, в таком случае LimitTP ордер будет размещён на бирже, а StopSL ордер на сервере провайдера.
В AMP провайдер по моему CQG, он хранит Stop заявки у себя на сервере. А сервер естественно в одной коллокации с биржей в Чикаго.
Реализуйте OCO режим, один отменяет другой, и будут самостоятельно удалятся.
т.е. если исполнен 1 контракт LimitTP, отменяем 1 контракт StopSL, и т.д. считаем количество исполненных контрактов.
И наоборот, если исполнился StopSL, отменяем LimitTP
Работайте биржевыми заявками, а не терминальными.

 
Roman:

Да, в таком случае LimitTP ордер будет размещён на бирже, а StopSL ордер на сервере провайдера.
В AMP провайдер по моему CQG, он хранит Stop заявки у себя на сервере. А сервер естественно в одной коллокации с биржей в Чикаго.
Реализуйте OCO режим, один отменяет другой, и будут самостоятельно удалятся.
т.е. если исполнен 1 контракт LimitTP, отменяем 1 контракт StopSL, и т.д. считаем количество исполненных контрактов.
И наоборот, если исполнился StopSL, отменяем LimitTP
Работайте биржевыми заявками, а не терминальными.

Честно говоря, я не понимаю к чему этот огород городить... Какую проблему я решаю через эти костыли? У меня сделка открывается по незапланированной цене Last. Я никак не могу понять что это за цена такая и почему у меня то нормальное открытие по Ask / Bid, а то внутри спреда по этой Last - цене.

 
Oleg Remizov:

Честно говоря, я не понимаю к чему этот огород городить... Какую проблему я решаю через эти костыли? У меня сделка открывается по незапланированной цене Last. Я никак не могу понять что это за цена такая и почему у меня то нормальное открытие по Ask / Bid, а то внутри спреда по этой Last - цене.

Смотри, летят две маркет заявки в одно и тоже время в наносекундах, одна в продажу, другая в покупку.
Покупка не долетает до аска, продажа не долетает до бида, они встречаются где то внутри спреда, и исполняются удовлетворяя обе стороны.
Тем самым породят цену Last. Это и будут встречные заявки.
По этому твоя маркет заявка, сводится с чьей то другой маркет заявкой, и ты получаешь позицию внутри спреда.
Не забывай что СМЕ это глобальная мировая группа бирж, с миллионами заявок, которые летят со всей планеты.
По этому нужно получить сперва цену позиции которую ты получил, и от неё уже рассчитывать дистанцию.
Маркет гарантирует исполнение. но не гарантирует цену.
Лимит гарантирует цену, но не гарантирует исполнение.

По поводу костылей, ваше право где хранить Stop заявки, на сервере брокера или в коллокации биржи.
Где сервер брокера находится не известно, какая задержка будет этого стоп ордера в момент отправки на биржу, тоже не известно.
Как исполнять TP. Маркетом терминала, или чтоб вам наливали вашу лимитку в биржевом стакане.
Выбор всегда за вами.

 

Вы никогда не встречали проскальзывание при открытии позиций¿¿¿

В чём проблему-то увидели? Поставьте стопы как есть, в OnTradeTransaction отловите момент открытия позиции, проверьте соответствие стопов заявленным и если надо измените уровни стопов. Вся проблема…………

Причина обращения: