Реальная работа на МТ5 NDD - страница 10

 

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

Например, вы хотите, чтобы при достижении Bid-ценой ценового уровня можно было продать, но с отрицательным проскальзыванием, не превышающим N пипсов. Это очень нужно, когда не хватает объема на лучшей цене для заполнения нужного вам объема, но при этом исполниться необходимо, т.к. логика стратегии так настроена (в тестере настроили, например).

В таком случае, как только появляется нужная вам Bid цена, вы выставляете SellLimit по цене Bid-N, т.е. на N пипсов хуже, чем текущая цена. За счет этого, вы получите большее наполнение своего лимитника по средневзвешенной цене, худшая из которых не будет меньше, чем на N-пипсов от текущей Bid-цены.

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

 
hrenfx:

Читайте внимательнее: на чистом ECN и ECN/STP.

Реджект и положительное проскальзывание лимитника:

На STP ваш лимитник будет отправлен, если цена от него будет лучше или равна лимитнику. Более того, пока ваша заявка будет идти до STP, цена может измениться в любую сторону: еще улучшится (положительное проскальзывание), уйти из зоны лимитника (реджект).

Спасибо. Но непонятен следующий момент. Из вашего описания выходит что в ECN нет единого общего стакана цен всех участников, а есть внутренний и внешний стаканы и при этом на внешний стакан лимитник выводится не всегда, а если и выводится то в самый последний момент, когда цена может куда-то проскользнуть что может привести даже к реджекту, даже если лимитник был послан трейдером заранее и цена его зацепила правильно. Действительно ли это описание соответствует действительности ибо как-то слабо верится что заранее посланный лимитник не будет исполнен по причине того что ECN якобы не успела его поместить в общий стакан в последний момент. Еще более удивительным кажется объяснение о возможном положительном проскальзывании в этот момент, которое ДЦ будет возвращать трейдеру.
 

Стаканов много: внутренний (ECN) и внешние (у каждого подключенного провайдера ликвидности). Общего стакана нет.

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

И еще, ECN почти никакого отношения к ДЦ не имеют, это не диллинг. Прозрачные брокеры возвращают положительное проскальзывание трейдеру. Более того, если вы выставляете лимитник по цене хуже текущей, то будет всегда положительное проскальзывание. И было бы совсем неприлично, если бы брокер его не отдавал. Есть, конечно, и такие, которые отдают только часть положительного проскальзывания. Но от них лучше держаться подальше.

 
Разработчикам: интересно, в этом плане (проблемы озвученные в теме, расширение лимитников и пр..) можно ли рассчитывать на развитие платформы?
 
hrenfx:

Стаканов много: внутренний (ECN) и внешние (у каждого подключенного провайдера ликвидности). Общего стакана нет.

Спасибо. А почему тогда аггрегаторы не могут объединить всех провайдеров в один общий "свой" стакан, выбирая лишь лучшую цену? Разве это не то что они делают?
 
Andrei01:
Спасибо. А почему тогда аггрегаторы не могут объединить всех провайдеров в один общий "свой" стакан, выбирая лишь лучшую цену? Разве это не то что они делают?

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

Когда говорят, что ДЦ, не рыночен - почти вранье. Если ДЦ почти никуда не выводит позы - это не значит, что он занимается нерыночной деятельностью. Вовсе не так.

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

Аггрегатор - это просто объединение кем-то торговых условий сразу нескольких контор. Сами эти конторы, как правило, и знать не знают, что их кто-то где-то объединяет. Например, вы можете очень легко объединить  много брокеров на Metatrader через MQL+WinAPI. У вас будет своего рода стакан. Но проблема будет в том, что сами брокеры не являются клиентами этой вашей системы. Т.е. не шлют заявки в ваш стакан, а это вы формируете виртуальный стакан у себя для своих либо трейдерских, либо брокерских нужд.

Поэтому не виртуальный стакан (STP), а реальный ECN-стакан может быть только из тех заявок, которые в него направляются. А это в случае брокера могут быть только заявки собственных клиентов, коих немного.

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

 

hrenfx:

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

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

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

 

Грубо схема такая:

  1. Вы выставили заранее заявку, она попадает во внутренний стакан из заявок клиентов вашего ECN-брокера.
  2. Ваш, брокер, однако показывает вам виртуальный стакан = внутренний стакан (ECN) + внешние стаканы (STP).
  3. Если во внутренней ECN появляется противоположная заявка, обе почти мгновенно гарантированно исполняются на объем min(Limit1, Limit2) (сводятся без какого-либо проскальзывания)), при этом брокер получает двойную комиссию (с каждой заявки).
  4. Если удовлетворяющая вашей заявке цена появилась со внешней стороны (например, от третьего провайдера ликвидности - LP3), то
  5. Ваша заявка удаляется (замораживается) из внутреннего ECN-стакана.
  6. Отправляется в стакан LP3  с определенным LiveTime (обычно это несколько десятков-сотен миллисекунд).
  7. Ваша заявка при получении в LP3, как правило, приходит по худшей цене, чем текущая цена в LP3. Поэтому будет соответствующее положительное проскальзывание.
  8. Если цена вашей заявки оказалась лучше, чем текущая в LP3 (за время отправки-доставки могла измениться), то будет реджект, если за LiveTime цена не удовлетворит ее.
  9. Через LiveTime остаток (при частичном исполнении) вашей заявки удаляется из LP3 и она помещается (размораживается) во внутренней ECN.
  10. При внешнем исполнении брокер получает одинарную комиссию за вычетом комиссии LP3 (брокер для LP3 является простым клиентом, действующим от имени своих клиентов). А вы получаете потенциальное положительное проскальзывание или реджект.

В итоге при ECN/STP схеме появляются более выгодные цены за счет внутренней ECN и выгода от двойной комисии брокеру, а также появляются более выгодные цены при аггрегации (STP) нескольких провайдеров ликвидности, при этом давая возможность камуфлировать перед ними вашу стратегию и потенциальное положительное проскальзывание (и реджекты).

P.S. Ради интереса можете попробовать написать свой собственный MT-аггрегатор. Это реально очень просто. Но когда начнете через него торговать, увидите огромное количество подводных камней, которые в грубой схеме выше, конечно, не указаны.

 
hrenfx:

Грубо схема такая

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

1. Это единственная схема реализации схемы агрегации?

2. Почему описанная мной схема объединения стаканов в один невозможна? Ведь в ней взаимодействие с внешним стаканом происходит постоянно для формирование единого стакана, а не только в момент срабатывания заявки, что вносит излишнее запаздывание что неминуемо должно ухудшить условия исполнения? Более того, по вашей схеме нет разницы между отложкой и маркет-ордером, так как всё исполняется лишь в последний момент и выходит что слать отложку заранее нет смысла так как во внешний стакан она попадет лишь в самый последний момент.

 
Andrei01:

1. Это единственная схема реализации схемы агрегации?

Грубо - да.

2. Почему описанная мной схема объединения стаканов в один невозможна?

Потому что все провайдеры ликвидности должны стать клиентами вашей ECN-системы. Есть такой брокер - LMAX. Это практически чистый ECN (MTF-биржа), в нем провайдеры ликвидности являются клиентами созданной системы. Т.е. с некоторыми банками подписаны соглашения определенного рода, что они принимают такие условия. Выше уже упоминал о LastLook, помимо этого есть и другие причины, почему многие банки не идут на такие условия.

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

Да, гарантированного исполнения при аггрегации не видать. Есть различные способы улучшения исполнения через snapshots (фильтр), но это одна из сторон медали. Плюсы аггрегации выше уже неоднократно озвучил.

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

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