Как стать автором
Обновить

Выбор места для сервера и софта, тестирование рыночной неэффективности: как на самом деле создают торговых роботов

Время на прочтение12 мин
Количество просмотров8.7K
Всего голосов 17: ↑17 и ↓0+17
Комментарии33

Комментарии 33

Электрические сигналы в экранированном проводе передаются со скоростью в 0,7 — 0,9 превышающую скорость света (300 км/мс).
Это как?
Напомнило...

Так static же

Это же статическая переменная. Она инициализируется только один раз, при первом вызове функции, где она объявлена.

Так это ж статическая переменная. В первый раз ноль, потом неизвестно
Спасибо, пацаны. Я всё понял.

Такое впечатление, что все ошибки намеренно собраны в 1 статье


1 Если использовать более продвинутый компилятор вроде Microsoft VC++, это значение можно снизить до 650 наносекунд.


FPGA в HFT, насколько я знаю, используют не для того, чтобы ускорить выполнение одной итерации cpu bound кода, а для того, чтобы убрать передачу данных с сетевой на cpu и назад. Там будут задержки всяко побольше. Даже с использованием спец драйверов.


2 Автор предлагает покупать данные с биржевыми метками таймстампа, но там нет реального времени, когда пакет пришел на сетевую. Таким образом можно узнать, когда возникла неэффективность, но хз, когда о ней можно было узнать, имея даже самую продвинутую коллокацию.


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

3 Зачем-то автор решил поумничать и рассчитать годовую доходность, но любой человек, сделавший хоть 1 сделку, знает о плече. И для интрадея оно может и на шару обойтись, если день в день закрывать. А для фьючерсов вообще отдельная песня.
Могу и ошибаться. Но думаю, что весь вопрос в состоянии счета, для внутредневной торговли требования вроде выше чем для торговли вне одного дня.
DayTrading Pattern есть, но он лишь о том, что обладатели маленьких счетов (до 20 или 25К) не имеют право интрадеить в принципе (но в данном случае подразумеваются куда большие суммы, да и через проп конторки правило обходится). А так, наоборот, всегда лояльнее требования к гарантийному обеспечению внутри дня. Для брокера головная боль — когда клиент теряет больше денег. чем у него есть. А интрадей при таком же плече дает намного меньше риск, чем перенос через ночь

сделка проходит по последней цене после времени задержки


Это тоже классно конечно. Особенно на инструментах с гигантским тиком, как es

> размещение в дата-центрах бирж стоит огромных денег
миллион баксов? миллиард? триллион? «огромных денег» это сколько
> Многие HFT-системы «охотятся» на трейдеров-конкурентов с помощью «методов обгона». Они замечают вашу заявку
как?

>В примере из этой статьи подобные механизмы использоваться не будут,
уф. а я то думал сейчас будет срыв покровов и разоблачения. сколько раз слышал этот трындеж про front running и так ни один чел не показал как же он вообще в принципе работает. Даже Майкл Льюис внятно ничего объяснить не мог — как и каким образом кто что может увидеть мою заявку __до того__ как она обработалась торговым движком биржи
с помощью «методов обгона». Они замечают вашу заявку как?

Не уверен на 100%, но идея в том, что заявки доолжны исполняться по самой лучшей цене в Америке. Если, заявка исполнилась частично на площадке (ECN) A, а дальнейшее исполнение выгоднее на площадке B, то ее остаток будет переслан на исполнение на B. Если заявка реально крупная, и подвинет рынок, то HFT трейдеры, увидевшие ее на А, могут сыграть на опережение, и пробить по В быстрее (забрав себе выгодную цену), чем система В получит остаток от площадки А. Когда система В увидит заявку, то может оказаться, что на В уже нет той цены, ради которой заявка пришла на нее, и цена на В не самая выгодная во всей Америке. Тогда площадка В сравнивает цены остальных площадок, и шлет на самую выгодную (С), но пока заявка летит до С, высокочастотники успевают забрать вкусную цену и там. Таким образом, владелец заявки получит не оптимальное исполнение (и скорее всего, в итоге выкупит свой объем у тех же людей, которые успели скупит его ранее на В и С, но уже по цене на пару центов за акцию дороже).
> то HFT трейдеры, увидевшие ее на А
как они ее увидели на А? моя заявка исполнилась на А. я купил 100 лотов, где как таким волшебным магическим изомерическим каким образом HFT трейдеры могут определить что в моей заявке есть еще 200 незакрытых позиций?

при исполнении в маркетдата все что они увидят это что было куплено 100 лотов на А и все. откуда они могут узнать сколько осталось незакрытых лотов?

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

не вытанцовывается что-то архи-прибыльная пресловутая волшебная стратегия front-running.
Откуда информация о формате фида маркетдаты? Вы работали с ним? Вы знаете, какие именно поля там есть?
а маркетдата фид это такой сферический конь в вакууме? Или вы о конкретном фиде говорите? От какой биржи? Давайте спецификацию посмотрим и узнаем а?
Согласно вашей теории зловещим hft надо скупитьвсе акции по определенной цене на всех рынках. Потом скупить все акции по цене выше на один цент на всех рынках. Потом поставить свой ордер в очередь по цене выше на 2 цента и молить бога что очередь дойдет до них и цена не упадет вниз. При этом у них получается шанс 1/2 заработать меньше двух центов с учетом комиссий и платежей за взятие ликвидности с рынка а в случае неугадайки оказаться с кучей активов от которых надо еще избавиться. Вы представляете кто в здравом уме будет полагаться на такую стратегию?

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

стратегия фронтраннинга которую он описывает не сущестовует в принципе. То есть описана она правильно. Но работает только в сжиженом вакууме асбтрактноупрагуого рынка. В реалии по такой стратегии никто не может заработать не цента а потерять может миллиард.

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

А по поводу лапши, сарказма и зловещих трейдеров… На все можно смотреть с нескольких точек зрения. С идеалистической точки зрения HFT — это зло, внутредневная торговля не приносит никаких плюсов, с циничной точки зрения — спекулировать будут всегда и на всем. С идеалистической точки зрения — Льюис не знает современного рынка и просто накидывает лапшу про злободневные темы, с циничной — он уже заработал миллионы на книгах и экранизациях.
Десять лет назад это 2008 год самый расцвет hft трейдинга из за роста волатильности впредверии финансового кризиса. Стратегии которые работали тогда работают и сейчас: арбитраж кореляция маркетмейкинг а вот стратегия фронт раннинга не работала ни тогда ни сейчас и вообще никогда потому как противоречит здравому смыслу реалиям фондового рынка и выдумана только для того чтобы напугать обывателя страшными жадными hft трейдерами которые обирают… ну вы уже поняли как дальше.
> В теории, идеальное расположение для системы c аналогичными требованиями — это городок Уоррен, штат Огайо. Он расположен ровно посередине

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

На колокейшене вы отменили ордер и сразу получили ответ что онтотменен и вы можете ставить новый ордер по другой цене. А если отмену посылать из уоррена то пока кенсел дойдет из уоррена до чикаго а потом из чикаго до уоррена отмена после этого вы сможете послать новый ордер — пройдет больше времени из за расстояния. И все это время пока вы будете ждать ответов от биржи вы будете сидеть и волноваться отменился ваш ордер или его уже ктото исполнил. Чтобы было понятнее: это та же разница как командир отдает свои приказы рядовым на передовой или сидя за сто километров от окопов
С другой стороны, скорее всего, триггер на отмену будет с Нью-Йоркской биржи. А это — такая же ситуация.
не понимаю откуда вытекает скорей всего? статистика показывает что триггеры приходят на отмену с нью йорка чаще чем с чикаго? Значит тогда колокейшен должен быть в нью йорке. Что бы при получении тригера отменить ордер и выставить новый и не ждать пока ордера и подтверждения будут бегать триста миль
Я исхожу из поставленной задачи. Арбитраж ES и SPY. Решение о создании ордера или его отмены проводится на основании данных с обоих бирж. Соответственно для отмены понадобятся те же 8мс на передачу данных от Нью Йорка до Чикаго.
А на получение подтверждения об отмене на чикаго? Ну то есть проиграйте сценарий: получили триггер из ньюйорка отменили старый ордер на чикаго и после подтверждения об отмене выставили новый ордер на чикаго и получили подтверждение. Кто сделает это быстрее? Колокейшен или уоррен?
Или сценарий попроще: из ньюйорка летит триггер этот триггер инициирует ioc ордер на чикаго. Кто быстрее узнает об исполнении ioc ордера (заполнен он или отменен): колокейшен на чикаго или уоррен?
Я все равно не вижу особой разницы для арбитража по этим двум инструментам. Все равно, решение принимается на основании данных с двух бирж, т.е. 8мс никуда не денутся.
В реальных же компаниях, скорее всего сервера стоят на обоих биржах, поскольку у них работают разные алгоритмы, а не только пара ES-SPY. И даже в этом случае, на двух биржах будут крутиться полностью идентичные алгоритмы, которые будут делать только одну заявку на локальную биржу, а не две на обе, как описано в статье. После чего будет проводится консенсус и, возможно, на одной из бирж будет сделана отмена, но чисто логически триггер на откат сделки обычно возникает на удаленной бирже, и на принятие решения понадобятся те же 8 мс. Хотя при сценарии, когда нужно провести, к примеру, откат на обоих биржах, вы действительно будете реагировать на ситуацию быстрее, но только на одной из двух бирж.
Но в первом приближении стратегия для арбитража двух зависимых инструментов на CME и NYSE(строго говоря, это Нью Джерси, как я помню) вполне жизнеспособна.
Ну и я особо не углублялся в тему, но как-то странно звучит необходимость ожидания подтверждения там, где пытаются выиграть микросекунды. Скорее всего, заявки делаются с учетом, что они будут подтверждены, и как раз получение отказа в размещении ордера будет триггером для отмены сделки на второй бирже.
Я не оспариваю стратегию. Я оспариваю утверждение автора чтотразмещение в уоррен даст ему преимущество. Если он будет все время опаздывать с отменой ордеров а колокейшен всегда будет успевать зачем тогда заморачиваться с уорреном? Ведь в hft второго места нет. Кто первый встал того и тапки. Посылать новй ордер не дождавшись отмены предыдущего очень легко может поставить вас в переполнение когда у вас на руках больше лотов чем вы хотели а избавиться от них — потерпеть убытки
С другой стороны, на утверждение решений после отправки ордеров между двумя серверами в колкейшенах понадобятся те же 8 мс. А так вы сразу решили этот вопрос по данным относительно без разницы в лагах.
И как вы правильно заметили в этом случае вы будете уверены, что вторая система не отправила что-то еще за 8мс необходимых для получения данных от нее. Без довольно серьезного усложнения алгоритмов принятия решений.
Короче, я уже выше написал, что у меня недостаточно знаний в этой теме чтобы аргументировано с вами спорить. Как по мне элегантное решение. Можете попробовать задать вопрос автору статьи, он в блоге довольно активно отвечает.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий