|
Поверхностно об алготрейдинге 2
|
Отправлено elite on 06/08/15 8:17
Простой агрегатор. Создание торговой площадки. PriceTaker и PriceGiver. Провайдер ликвидности. ECN/STP. HFT MM-алгоритмы. Off-market. LastLook. Виртуальный агрегатор.
Простой агрегатор
Несложно было заметить, как удобно высокоуровнево торговать. При этом удобно торговать не только арбитраж, а вообще любую стратегию, т.к. цены EURUSD_All исходя из своего построения не могут быть хуже, чем EURUSD1 и EURUSD2. Т.е. искусственный символ более выгодный и профит на нем заведомо выше. Вот тут и приходит мысль создания подобных искусственных высокоуровневых символов для любого вида стратегий. При этом по одному и тому же принципу брать уже не два источника (брокеры в примере) коинтегрированных символов, а любое их количество. Очевидно, чем больше источников, тем выгоднее (цены лучше) высокоуровневые символы.
Такие высокоуровневые образования называются агрегаторами ликвидности. Очевидно, что это алгоритм — некий софт, который позволяет так торговать. Среди участвующих в жизни рынка компаний имеются софт-компании, которые занимаются именно подобными алгоритмами агрегации. Предоставляя своим клиентам возможность не заморачиваться с низкоуровневой торговлей, а торговать высокоуровнево, тратя свои интеллектуальные силы на другие вещи.
Среди этих софт-компаний наиболее известны Currenex и Integral. Они продают свой софт за комиссию с оборота. По этой причине, в частности, некоторые пишут свои собственные агрегаторы, чтобы быть конкурентноспособнее.
Создание торговой площадки
Захотелось вам создать торговую площадку без особых усилий. Очень грубо это выглядит так. Вы приходите в хорошо зарекомендовавшую себя софт-агрегаторскую компанию и заявляете о своем желании. Те отвечают, что без проблем, но нужно выполнить некоторые условия. Для начала у вас должны быть договора с компаниями-источниками цен, которые вы хотите агрегировать. Далее вам нужен один единый счет у прайм-брокера, который уже заведомо имеет договоренности с вашими компаниями-источниками и в состоянии организовать клиринг, чтобы не было перекосов. Клиринг — это тоже часть комиссии.
Далее агрегаторская софт-компания производит настройку своего агрегаторского софта с вашими источниками и прайм-брокером, с которым у него имеются договора на возможность такой деятельности, и выдает вам торговую площадку под ключ.
Заметьте, что источниками могут быть такие же агрегаторы, у них источниками — также какие-то агрегаторы. Все это может в итоге переплетаться и повторяться, что вызывает порой завышение (дублирование источников) объемов на некоторых бандах вашего Level2_All. Ну и, конечно, на самых концах этой сети находятся банки со своими ММ-алгоритмами.
PriceTaker и PriceGiver
Участники рынка всегда делятся на две категории: создающие (PriceGiver) рыночные предложения (цены и количество) и соглашающиеся (PriceTaker) с ними.
Сами рыночные предложения представляют из себя заявки: готов купить/продать столько-то по такой-то цене или лучше. Совокупность этих заявок (Level2) условно показывает текущую рыночную ликвидность.
Провайдер ликвидности
Liquidity Provider (LP) — так называет агрегатор свои источники цен, которые он объединяет в один единый виртуальный (высокоуровневый) Level2. Очевидно, LP — PriceGiver. Существенную долю PriceGivers занимают ММ-алгоритмы.
STP
STP — агрегатор, где клиенту разрешается быть только PriceTaker-ом. Это значит, что клиенты не в состоянии формировать свои заявки, на которые кто-либо смог бы согласитья. Они могут только принимать предложения от PriceGivers.
Как говорилось ранее, агрегатор представляет из себя некий высокоуровневый виртуальный торговый сервис. Поэтому все лимитные заявки клиентов STP-агрегатора являются виртуальными и хранятся на сервере агрегатора.
Как следствие, если кто-то возьмет в качестве LP себе STP-агрегатор, то он не в состоянии будет торговать с его клиентами. Почти все ММ-алгоритмы, запущенные на STP-агрегаторе, не будут давать положительный профит.
Простой STP-агрегатор
В простом STP все виртуальные клиентские торговые приказы приходят к его PriceGivers, как маркет-ордера. Например, у клиента стоит SellLimit. Как только происходит Bid >= SellLimit, на LP, которому соответствует Bid, отправляется маркет-ордер SELL. Ответ LP на такой торговый приказ и является результатом исполнения клиентского SellLimit.
Очевидно, при такой реализации происходят проскальзывания, среднее которых меньше нуля. Т.е. клиенты несут убытки.
Иной STP-агрегатор
Здесь все виртуальные клиентские торговые приказы приходят к его PriceGivers, как лимитные ордера (маркет-ордер — лимитник, по цене прилично (определяется STP-агрегатором) хуже текущей).
Разберем алгоритм исполнения на примере выше:
В момент Bid >= SellLimit, виртуальный SellLimit замораживается (выносится из учета системой исполнения, клиент ничего с ним не может сделать) и на соответствующий LP шлется такой же SellLimit. При этом все эти действия никак не влияют на ценообразование. Т.е. чуть позже заморозки (например, на 1 мс) может сформироваться Bid лучше (от других LP), но он уже почти (есть нюансы) никак не будет участвовать в исполнении нашего клиентского SellLimit.
LP, куда отправили SellLimit, отвечает, что исполнил одну часть SellLimit, а оставшуюся часть по разным причинам не исполнил — реджект (reject). После чего клиент получает высокоуровневую открытую SELL-позу на исполненный объем и размороженный SellLimit — на оставшийся.
Скорость и качество ответа LP зависит от множества факторов. Длительность ответа может доходить до нескольких секунд. Не исключены ситуации, когда от LP ответ не приходит.
Отметим, (при такой реализации STP) лимитники клиентов агрегатора не скользят в отрицательную зону. Более того, часты положительные проскальзывания, которые покрывают значительную часть постоянных торговых издержек — комиссия.
Здесь же вы можете видеть, как сильно отличается исполнение и ценообразование у бирж и FOREX.
Нюансы исполнения.
Очень сложно описать то множество тонкостей, влияющее на качество исполнения. Самое простое, что делается агрегаторами одним из первых — это улучшение каналов связи между LP. однако, определяющим все же качество исполнения (FillRate) являются алгоритмы исполнения STP-агрегатора. Это целый класс постоянно совершенствующихся (не всеми) интереснейших алгоритмов, некоторые из которых даже затрагивают ценообразование STP-агрегатора. Они во многом являются неафишируемыми конкурентными решениями и очень специфичными для справочника трейдера, поэтому рассказывать о них, скорее всего, не буду.
Факт заключается в том, что два STP-агрегатора, находящиеся в равных условиях, могут существенно отличаться по FillRate, благодаря использованию разных алгоритмов исполнения. Особенно это может быть заметно при токсике. Т.е. показатели торговой стратегии могут очень сильно зависить от используемого агрегатора, особенно при росте торговых объемов.
Если показатели торговли двух идентичных ТС, запущенных в равных условиях на одном и том же агргегаторе, совпадают — это косвенный признак очень высокого уровеня качества алгоритмов исполнения данного агрегатора.
ECN/STP
ECN/STP — как агрегатор, алгоритмически идентичен STP. Единственное отличие — в агрегацию добавляется новый виртуальный LP — LP0: заявки клиентов агрегатора.
Таким простым приемом клиенты ECN/STP-агрегатора становятся еще и PriceGivers. Это обозначает, что клиенты могут совершать между собой сделки фактически напрямую.
Чем больший оборот приходится на LP0, тем выгоднее ECN/STP-агрегатору, т.к. в отличие от других LP, LP0 не требует за свое использование агрегатором платить комиссию. Более того, поток торговых приказов, приходящийся на LP0, ни в коей мере не может быть характеризован, как токсик. Т.к. это уже торговля клиентов между собой, даже если среди них будут ММ-алгоритмы.
Получается такой беспроблемный LP.
Но надо четко понимать, чтобы иметь возможность быть PriceTaker-ом для LP0-PriceGiver-ов ECN/STP-агрегатора, нужно быть его клиентом. Т.е. клиенты других агрегаторов не могут воспользоваться иногда великолепными (наилучшими) ценовыми предложениями LP0.
Например, вы торгуете в двух агрегаторах. В ECN/STP выставляете лимитник внутрь спреда, улучшив Bid или Ask. Но в другом агрегаторе вы не сможете сами у себя купить/продать по этой цене, т.к. они не видны. Т.е. вы купите/продадите, скорее всего, по менее выгодной цене, чем предложенная вашим лимитником.
Метаморфозы ECN/STP
Силище ECN/STP заключается в возможности обмениваться ликвидностью.
Представьте, что какой-то STP-агрегатор взял себе в качестве LP ECN/STP-агрегатор. Это автоматически обозначает, что клиенты STP-агрегатора становятся PriceTaker-ами ECN/STP-агрегатора, в частности (и других LP из списка STP-агрегатора). Получается, что в примере выше с двумя агрегаторами, вы бы в STP-агрегаторе увидели бы свою заявку, выставленную в другом ECN/STP-агрегаторе. И если бы она оказалась лучшей в итоговом STP-Level2, то вы бы могли совершить сделку сами с собой. Т.е. ваша заявка стала бы доступна гораздо большему количеству PriceTakers, а это значит, что вероятность исполнения вашей заявки возросла бы.
Нужно понимать, что у каждого агрегатора есть своя база PriceTakers, и такой простой прием позволяет обмениваться этими базами, увеличивая вероятность исполнения заявок PriceGivers. И это также выгодно PriceTakers, т.к. цены лучше.
Конечно, если два ECN/STP-агрегатора сделают взаимно друг-друга своими LP, то возникнет серьезное несоответствие в Level2 каждого — рекурсивно ликвидность будет увеличена в разы. Поэтому ECN/STP-агрегаторы обмениваются (точнее, могут) между собой внутренней (LP0) ликвидностью через определенные технические договоренности — tags.
Реальность.
LP-шками большинства агрегаторов являются банки с ММ-алгоритмами. Это значит, что проблема токсика в большинстве агрегаторов крайне насущная. Если один из таких LP замечает токсик от агрегатора, он оповещает об этом агрегатор. И тот, в свою очередь, ставится перед выбором: отключить LP (т.к. тот не хочет нести убытки), либо отключить своего клиента — источника токсика. Чаще всего агрегатор отказывается от прибыльного клиента, т.к. он менее выгоден. Это порочная для трейдеров схема действует в большинстве случаев.
Однако, есть и исключения, и это серьезный передел так давно хорошо себя зарекомендовавших правил на институциональном FOREX. Появились ECN/STP-агрегаторы, потенциально-способные превратить огромную ликвидность PriceTeker-ов в ликвидность PriceGivers. Т.е. замкнуть на себе трейдеров, существенно уменьшив доходы классических банковских ММ-алгоритмов. Стоит лишь сказать, что по скромным подсчетам разрозненный retail-FOREX имеет месячный оборот свыше триллиона USD. И почти весь этот оборот — мясо с костей кликеров, которые на данный момент обгладывают ДЦ (маркетмейкерская схема) и банки через классические STP и ECN/STP-агрегаторы.
Простой HFT ММ-алгоритм
Очевидно, что у ECN/STP-агрегатора имеется некоторая инсайдерская информация: кто и как через него торгует. Грамотный обладатель такой информации создает классификатор прибыльности клиентов. Например, в результате анализа он узнает, что клиенты агрегатора стабильно (и с нужной скоростью) сливают на GBPJPY с 12-ти до 17-ти часов каждой среды. Что значит сливают — это значит, что их деньги перетекают в LP, у которых на тот момент были наиболее конкурентноспособные цены.
Напрашивается вопрос, зачем отдавать слив кому-то, когда можно его забирать себе? Некоторые пойдут по серой схеме — отключат ECN/STP на это время и фактически превратятся в ДЦ по маркетмейкерской схеме. Но есть абсолютно взаимовыгодный белый путь — HFT ММ-алгоритм. Пусть он будет нашим.
В нашем примере каждую среду с 12-ти до 17 часов мы выставляем внутрь GBPJPY-спреда свои BuyLimit и SellLimit на минимальном расстоянии от внешнего (не нами сформированного) спреда и все время следуем (вот здесь и нужен HFT — быстрое перетаскивание ордеров) за ним. Это улучшает цены — сужает спред. И сливающие клиенты будут совершать сделки по более выгодным ценам. Однако (см. упоминание про анализ скорости слива), их слив будет перетекать уже к нам, т.к. они будут именно с нами совершать сделки.
Взаимовыгодность заключается в том, что мы получаем профит, а сливающие клиенты теряют деньги с меньшей скоростью, чем если бы мы не использовали HFT ММ-алгоритм. Ну и если владельцем такого ММ-алгоритма является сам ECN/STP-агрегатор, то комиссия, естесственно, за использование его же LP0 нулевая. А клиент за совершение сделки еще и комиссию в полном объеме заплатит агрегатору. Т.е. фактически для такого владельца комиссия даже отрицательная.
Адаптивный HFT ММ-алгоритм
Не обязательно обладать вышеупомянутой инсайдерской информацией. Можно ее нехитрым способом получить самому — зондирование.
Для этого понадобится, конечно, потратиться: создается по схеме выше свой спред, но только минимальным лотом. Клиенты ECN/STP будут всегда совершать сделки с вами, тем самым вы получите инсайдерскую информацию. Далее все также, как по схеме выше.
Адаптивность заключается в том, что инсайдерская информация берется скользящим окном, т.е. подстраивается (спорно, безусловно) под настроения клиентов и рынок.
Заметьте, что любой HFT ММ-алгоритм почти никогда не будет токсиком, т.к. берет деньги только PriceTakers, среди которых почти нет HFT ММ-алгоритмов.
Следует, наверное, упомянуть, что данные элементарные HFT ММ-алгоритмы придуманы мной сходу. И эксплуатируемые HFT ММ-алгоритмы куда интеллектуальнее. Однако, их суть примерно передана.
Один из взаимовыгодных вариантов привлечения HFT ММ-алгоритмов
ECN/STP-агрегатору всегда выгодно, когда среди его клиентов имеются HFT ММ-алгоритмы, т.к. они обеспечивают высокий оборот. Однако, для независимых HFT ММ-алгоритмов торговые издержки в виде комиссии — существенное препятствие ракрыть свои возможности полностью. По этой причине создается маркетинговая схема, могущая за собой иметь вполне четкие мат. расчеты, когда HFT ММ-алгоритму предоставляется отрицательная комиссия. Т.е. агрегатор за все заявки HFT ММ-алгоритма, что были исполнены на LP0, не берет с него комиссию, более того, выплачивает ему часть комиссии, взятую в полном объеме с другой стороны сделки — PriceTaker. О подобной схеме было вскользь упомянуто в описании биржевого алгоритма.
HFT ММ-алгоритмы: биржа vs FOREX
На FOREX далеко не все ECN/STP-агрегаторы предоставляют T&S-данные. На то может быть сразу несколько причин. Например, скрыть обороты и не дать явно проанализировать исходящий из ECN/STP токсик. Однако, все же некоторые ECN/STP-агрегаторы такую информацию предоставляют.
На биржах T&S имеется, но данные о классификации сделок (PriceGivers или PriceTakers) далеко не всегда имеют официальное (биржевое) происхождение. Чаще всего это независимая алгоритмическая классификация.
Как в случае с биржей, так и с ECN/STP-агрегатором правильно классифицированные T&S-данные показывают, когда PriceTakers/PriceGivers проигрывают/выигрывают. В таком случае для создания независимого простейшего HFT ММ-алгоритма не требуется (при должной тех. инфраструктуре — скорость) даже зондирование и какой-либо анализ динамики Level2. Т.к. соответствующим образом преобразованные и проанализированные T&S-данные — вышеупомянутый инсайд.
Off-market
На институциональном FOREX не редки внерыночные котировки. Они становятся больным вопросом, когда по ним совершаются сделки. И особенно больным, когда эти сделки имеют высокий (в абсолюте) профит, вне зависимости от его знака.
По разным причинам ММ-алгоритмы могут давать сбои, выдавая нерыночные котировки. На самом деле они вполне рыночные, раз предлагают купить/продать по ним. Но в заключенных соглашениях, как правило, есть явная лазейка, когда сделки, совершенные по внерыночным котировкам, могут быть отменены (и нередко отменяются).
Внерыночные цены определяются всегда задним числом через сравнение с историями цен от нескольких источников. Если сильный выброс, по сравнению, с остальными — значит внерыночная котира.
LastLook
Право ластлука — отказать в исполнении по им же предложенной цене. Этим пользуются некоторые ЛП в направлении токсик-клиентов: если пришел запрос от токсика — не исполнять, если от сливающего — исполнять.
Из-за этого сильно падает качество исполнения, увеличивая количество реджектов. С ними борются через алгоритмическое ценообразование в некоторых агрегаторах.
Есть площадки без ластлука, но там при явном токсике в итоге происходит, что уже описывал ранее: либо площадка отказывается от токсик-клиента, либо от ЛП, несущего от этого токсика убытки.
Защита трейдера.
Неподкованного юридически прибыльного трейдера на институциональном FOREX могут легко «раздеть», через механизмы Off-market и LastLook. Поэтому разумно выбирать место для торговли через наиболее продвинутый агрегатор, который соседствует еще с сильным юридическим отделом.
Т.е. помимо того, что трейдер будет анонимно представлен в общем потоке агргегатора. Он еще будет получать бесплатную юридическую профессиональную помощь в разборе проблем с отменой сделок. Бесплатно, т.к. юр. отдел отстаивает не права трейдера, а лицо куда более крупного владельца агрегатора, от имени которого, в частности, совершал сделки этот самый трейдер. Для этого, конечно, должна быть принципиальная позиция владельца.
Виртуальный агрегатор
Как уже говорилось, агрегатор — высокоуровневое объединение коинтегрированных символов. Заметьте, никакого ограничения на реальность таких символов не накладывается.
Это значит, что если есть синтетические коинтегрированные символы, то их можно не только создавать, но и агрегировать.
Виртуальный агрегатор этим и занимается — агрегирует внутри одной площадки коинтегрированные синтетические фиды (потоки цен) в один высокоуровневый (виртуальный, конечно) символ, которым можно торговать.
Виртуальные агрегаторы обладают таким же свойством, как и классические — маскируют токсик, создают наилучшие цены, увеличивают моментальную ликвидность, повышают потолок ликвидности ТС и т.д.
Чаще всего создание виртуальных агрегаторов ложится на плечи алготрейдеров. Этим же могут частично заниматься и наиболее продвинутые классические агрегаторы: агрегировать не только явно существующие символы ЛП, но еще и их синтетики.
Примитивный пример визуализации самой простой части виртуального агрегатора — объединение синтетических фидов:
Наиболее адекватная оценка любого символа происходит при анализе его высокоуровневого агрегированного тезки.
|
|
< Поверхностно об алготрейдинге
| Поверхностно об алготрейдинге 3 >
| |
|