Блог им. C-4

На самом ли деле прайстейкеры так глупы, как о них принято думать?

    • 20 апреля 2021, 13:07
    • |
    • C-4
  • Еще
Собственно к теме сабжа меня подтолкнули наблюдения за лентой сделок на одной из крипто бирж. В самом деле, существует мнение, при этом весьма профессиональное, что те кто выставляют лимитные ордера, являются профессиональными участниками рынка. Те же, кто бьет по рынку как правило залетная публика, непрофессионалы, клюющие на крючок «выгодной цены». Вот что об этом пишет уважаемый hrenfx на форуме mql5.com (https://www.mql5.com/ru/forum/12342/page3#comment_546024). 
hrenfx  2013.07.17 04:14        ENPriceTakers vs PriceGivers.
Когда в T&S-данных есть классификация по направлениям, можно говорить об общих показателях торговли PriceTakers, либо же PriceGivers.
Будем считать далее, что упомянутое направление касается PriceTakers. Это условность на самом деле, т.к. PriceGivers-направления — просто с обратным знаком.
Вспомним, что каждый элемент T&S-последовательности представляет из себя данные по совершенной кем-то из PriceTakers сделке: цена, объем и ее направление.
Это значит, что мы вполне в состоянии построить динамику изменения суммарного Equity всех PriceTakers по каждому символу в отдельности и, соответственно, по любой совокупности символов. Более того, на FOREX, рассматривая все кроссы и мажоры одновременно, можно построить динамику изменения общего валютного профиля PriceTakers: сколько какой валюты «на руках» у PriceTakers.

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

Пост этот старый, но от того не менее полезный, как впрочем и все, что было написано hrenfx. Основная мысль здесь однако проста: PriceTakers — мясо. PriceGiver — это в том числе хорошие MM, которым нужно кормится. Современная экосистема электронных фин. рынков устроена таким образом, что бы вторые кормились за счет первых. Если же ММ дает сбой и начинает бить по своим, то он становится токсиком и FX брокер пытается его задвинуть (об этом можно почитать уже в других его постах той ветки, которую я горячо рекомендую).

Не удивительно, что данная точка зрения пришла из Forex. Площадка эта децентрализованная, маркетмейкеры там как бы есть, но Level II закрыт от посторонних глаз. А увидеть секрет полишинеля стоит заградительных пошлин. Например LMax просит 7 000$ в месяц, только что бы «поглядеть» на весьма невразумительный стакан цен из нескольких уровней. Отсутствие публичной информации может потенциально породить Каргокульт или мифических «Они», однако не все так однозначно. 

Но вернемся к крипто биржам. Информацию они транслируют открыто и даже зачастую не требуют логина для ее получения. Поэтому анализировать ленту сделок можно по ним. Что мы и сделаем. Вот скриншот Time&Sales для фьючерса BTC-PERPETUAL биржи Deribit, сделанный мною практически в случайный момент времени:
На самом ли деле прайстейкеры так глупы, как о них принято думать?

На скриншоте видно, что в 2021.04.16 08:29:41.804 произошло две сделки, объемами 4820 и 4560 соответственно. Казалось бы, что тут такого? Кто-то может сказать, что очередной кликер жахнул по рынку. Но обратите внимание на объем этих двух сделок, он равен 9380$ (на Deribit объем транслируется в долларах, а не в контрактах). Эти цифры не очевидны, если их смотреть в стандартных потоковых тикалках, размещенных на сайтах таких бирж, или через кривые крипто приводы, список которых большой, но называть имен мы не будем, что бы никого не обидеть. Если же сделать согласованное представление данных, а именно объединить Ask+Bid+Last в одном синхронизированном потоке, становится вдруг сразу видно, что некоторые сделки по рынку с хирургической точностью выжирают ликвидность лучших бандов. Давайте посмотрим на хронологию произошедшего уже более подробно:

  1. На момент 08:29:41.749 изменился уровень Bid с 61610 до 61608.5. Таким образом, ожидания участников желающих купить снизились на 1.5$. Общий объем участников на этом уровне составил 9380$.
  2. 08:29:41.784, через 35 миллисекунд, один из участников лучшего Bid снял свою заявку. Общий объем Bid составил 4560.
  3. 08:29:41.784, образовался новый уровень Bid с ценой 61607 и суммарным объемом 9380. Следовательно остальные участники также сняли свои заявки, и перенесли их на уровень 61607 (в действительности участников было всего два, дальше мы поймем почему).
  4. В 08:29:41.804, через 20 мсек. было совершено две сделки sell, объемом 4560 и 4820 по «невыгодной» цене 61607.

Объем обоих сделок составил 9380$, т.е. одним приказом был выкуплен весь ценовой уровень. Так как это породило две сделки Last то можно сделать вполне уверенный вывод что на другой стороне было именно два участника. Дальше цена продолжила снижаться.

Похоже ли эта рекогносцировка на действие непрофессионального участника? Нет, не похожа. Что бы взять цену по этому уровню нужно во-первых выставить лимитный ордер с нужной ценой и объемом, а во-вторых, быть ну очень быстрым. Посмотрите сами, разница между формированием уровня Bid и срабатыванием Last составила всего 20 мсек. Это 1/2 типичного roundtrip. Вы можете спросить, откуда такой вывод? Что же, отвечу, что альтернативных вариантов не много. Судите сами:

  • Заявка била по маркету, но не проскользила. Для этого необходимо было точно выбрать нужную цену исполнения.
  • Объем выбран так, что полностью выжрал уровень спроса. Угадать такой объем невозможно. 

Единственная лазейка, показывающая что Pricetaker все-таки ошибся, заключается в том, что и у пред-предыдущей цены 61608.5 был такой же объем. И выставляющий маркетную заявку целил именно в нее, однако просто не успел предвидеть преставление Bid до 61607, хотя позволил своей заявки скользить как минимум на 1.5 бакса. Но даже в этом случае мы имеем время реакции равному типичному roundtrip 55 мсек. Это по-прежнему крайне быстро для человека и такую команду мог выдать только бот, при том, очень смартовый, так как даже стакан на сайте биржи обновляется со скоростью «всего» 10 раз в секунду, а здесь нужна скоростью повыше. Те кто сомневаются могут понаблюдать, за записью реальных изменений в стакане BTC_PERPETUAL:
 

Итак, если мы и имеем «глупого» PriceTaker, то он весьма оснащенный товарищ, потому что:

  • Торгует ботом;
  • Быстрее сайта биржи и массмаркетных криво-приводов;
  • Выставляет лимитные заявки, умеет вычислять нужные цены и объемы с их помощью;
  • Не боится догонять убегающий поезд (брать по цене хуже чем 50 мсек назад);
  • Предпочитает заплатить высокую комиссию бирже, чем толочся с другими участниками в стакане;
  • Торгует ~100 контрактов за раз (для Deribit это не много, но и не так мало);
  • Наконец цена, черт возьми, идет в его сторону.

Поведение подобных участников вызывает интерес. В противоположность этому, уровни PriceMakers анализировать уже сложнее, так как не видно ни реальных намерений участников, ни их количества. К тому же на Deribit и ей подобных фьючерсных биржах с системой нулевых комиссий или даже вознаграждений (ребейтов) существенно искажается ценовой профиль стакана. Участники, вместо того, что бы стойко держаться установленных ими цен, начинают гонятся не пойми за чем, в надежде урвать кусок своего маленького дохода, тем самым создавая нездоровую конкуренцию самим себе. Но эта уже совсем другая не менее интересная история.

Имея же православный T&S, сопряженный с ценовыми уровнями лучших бандов, можно вычленять подобных участников, и например, рассчитывать нетривиальные индикаторы сантимента по ним. Скажем можно разделить всех тейкеров на «умных», бьющих подобным образом, нейтральных (чье поведение не удалось идентифицировать), и глупых, — тех кто проваливает стакан своими заявками, не понимая, что мало того что они скользят, так и еще ускоряют и без того неспокойную цену, размывая ликвидность в хлам.

Правда, не думаю, что такой подход может является каким-либо секретом, скорее логическим продолжением такого анализа. Но даже, если такой индикатор может оказаться ценным, то воспользоваться им смогут не многие. Ведь среднестатистическому участнику, с его, жрущим гигабайты памяти и десятки процентов ЦПУ приводом, быстрое выставление заявок недоступно. Он получит срез на 10-15 кадров отличающийся от текущего, еще такт удержания контекста (до 16 мсек) ему понадобится для обсчета и еще столько же на путь заявки до сервера. Короче, когда его заявка придет на биржу, то стакан будет другим на столько, на сколько другим он будет через минуту или час. Единственное, что можно порекомендовать таким участникам, это выставлять флаг «post only». С этим флагом, биржа отлифтует или отреджектит нерадивую заявку такого участника, если она попадет на противоположенный банд как маркетная. Но даже если соблюсти все условия и быть очень быстрым, то это все равно HFT: разница во времени между возникновением торгового сигнала и его отработкой сопоставима с roundtrip, что накладывает ограничения не только на реализуемость вообще, но и на потенциал прибыли, а вот это уже даже более печальный факт. Хотя кому как, кому как...

★1
4 комментария
В точности такое поведение мог дать даже простой но очень быстрый арбитражный бот, «опирающийся» на больший чем 9380$ объём на другой бирже.
avatar
Посмотрите сами, разница между формированием уровня Bid и срабатыванием Last составила всего 20 мсек. Это 1/2 типичного roundtrip.

Не могли бы вы пояснить, о каком roundtrip здесь идёт речь?
И ещё мне не понятно, почему вы сравниваете два несинхронизированных потока данных между собой: поток сделок и поток level2. Эти потоки не синхронизированы не только на криптобиржах, но и на CME, например.
avatar
beast, Согласно стандартной модели ценообразования, потоки last и потоки ask/bid синхронизированы по построению или причинности: если происходит last, то он ударяется либо в бид либо в аск. Меняя либо их объем, либо уровень (если выедает объем уровня). Возникает детерминизм с лагом 1 а значит возникает и синхронизированность. Другое дело, что нам транслируют эти потоки разроненно, в виде отдельных каналов так, как будто это разные потоки. Так удобней для трансляции, но не удобно для анализа. Но, если потоки детерминированы и синхронизированы по своей природе, то можно получить их синхронное и непротиворечивое представление. Более того, такое представление гарантировано консистентно, потому что синхронность заложена в саму природу этих данных (но не в каналы по которым эти данные идут).

Roundtrip — имеется ввиду время, затраченное на доставку котировки от ядра биржи на машину пользователя. А затем время, затраченное на доставку торгового приказа пользователя до ядра биржи (т.е. туда и обратно). Это сугубо индивидуальная история на которую можно влиять, например размещать свой сервер на colocation биржи.
avatar

теги блога C-4

....все тэги



UPDONW
Новый дизайн