Colocation преодолевает скорость света. 2 часть


Colocation преодолевает скорость света. 2 часть
Atom
06.07.2015


Перейти к части 1

В данной части мы подробно рассмотрим арбитражные механизмы на базе центрального компьютера и механизмы с применением Colocation. А также разберем конкретный алгоритм арбитражной стратегии в действии.

Механизм с применением центрального компьютера
Во-первых, давайте определимся с формально базовым "механизмом централизованного компьютера". Обратите внимание, что это гораздо более распространённое решение, чем сценарии "средней точки", рассматриваемой в статье Бьюкенена.
Рассмотрим N серверов X1, ..., Xn и центральный компьютер С может располагаться где угодно в мире на нем работает алгоритм А (например, торговая стратегия). С подключением ко всем серверам - он получает входные сигналы от респондентов и дает обратную связь каждому из них. Мы считаем, что этот механизм напоминает "черный ящик", где входные и выходные данные могут быть отслежены и проанализированы наблюдателями, расположенными на серверах N. См. картинку "Механизм с применением центрального компьютера".
Механизм с применением центрального компьютера

На центральном компьютере С, и каждом из серверов N настроены часы, синхронизированные с временем UTC (UTC time). (Современные технологии, обеспечивающие средства для синхронизации часов в течение малой доли микросекунды).
Пусть di обозначают задержки передачи между C и сервером Xi. Пусть di,j обозначим задержки между Xi и Xj. Эти задержки предполагаются постоянными и не меняются от сообщения к сообщению. Мы предполагаем, что задержки в сети удовлетворяет свойствам метрики (metric), в частности: di,j = dj,i (симметрия) and di,jdi + dj (аксиома треугольника).
Для того, чтобы осуществить видоизменение нашего "черного ящика" (с центрального компьютера к эквивалентной группе компьютеров, размещенных в дата-центрах бирж), мы должны сделать некоторые дополнительные предположения:
1. После настройки, алгоритм А реагирует только на текущее время и сообщения, полученные от серверов Xj. (Конечно, алгоритм А может использовать также память о прошлых событиях в принятии своих решений.).
2. Каждый из N серверов отправляет зафиксированные во времени потоки данных с определенной степенью детализации времени. Это означает, что принимающий получает периодические синхронизированные сигналы от каждого сервера, которые характеризуют и "закрывают" каждый интервал времени - будь то миллисекунды или микросекунды. Алгоритм управляет этими сигналами. (Например, сообщение, полученное в момент времени t по алгоритму А, может быть использовано данным алгоритмом только после того, как все синхронизированные во времени сигналы с временными метками, полученными от всех серверов Xi по шкале времени больше или равны tdi . Данная ситуация не является препятствием в случае, если она будет учтена в сценарии центрального компьютера. Это главное требование для достижения эквивалентности наших "черных ящиков", несмотря на любое время или неустойчивость задержки.
3. Выходное значение алгоритма А состоит из сообщений, отправленных серверам. Все сообщения с временными метками, по местному времени алгоритма А. Данное сообщение может содержать любую информацию, в том числе внутренние отчеты о состоянии, относящиеся к текущим или к прошлым событиям.

Механизм совмещенных групп
Здесь мы представляем механизм, который будет дублировать поведение механизма центрального компьютера с использованием N компьютеров C1, ..., CN совместного размещения (colocation) с соответствующими серверами бирж X1, ..., XN. Как и в предыдущем случае, мы считаем, что этот механизм как "черный ящик", где входные и выходные данные могут фиксироваться и синхронизироваться наблюдателями, расположенными на N серверах. См. рисунок "Механизм совмещенных групп".
Механизм совмещенных групп

Для простоты, задержка передачи данных между компьютером Ci и размещенным Server Xi принимается равной нулю. Задержка передачи данных между Ci и Xj берется di,j - такой же, как задержка между Xi и Xj.
На каждой компьютере Ci работает алгоритм Ai, который является модифицированной копией алгоритма A, работающем на центральном компьютере C, описанным в предыдущем разделе. Отличия модифицированной версии:
1. Время, используемое алгоритмом Ai, устанавливается с запозданием на величину di, то есть, он показывает время UTC – di вместо UTC. Например, когда алгоритм A решает прекратить торговлю на время UTC t, Ai то он прекратит торговлю в момент UTC t + di. (Данное изменение удобнее воспринимать, как модификацию алгоритма Ai, нежели как изменение хода часов на Ci).
2. Каждый алгоритм Ajj принимает сообщения со всех N серверов. В частности, сообщения от сервера Xi, которые будут направлены в исходный центральный алгоритм A реплицируются и рассылаются по всем алгоритмам Аj.Репликация сообщений может быть выполнена в аппаратных средствах или в программном обеспечение компьютера Ci, находящемся в связке с Xi.
3. Искусственная задержка di + djdi,j вводится для всех сообщений, поступивших на Aj от сервера Xi. Задержки сообщений могут быть реализованы либо в аппаратных средствах, либо в программном обеспечении, работающем на Cj. (Данный генератор задержки удобнее воспринимать, как модификацию алгоритма Aj.). Обратите внимание, что, когда i = j, то задержка равна i + didi,i = 2⋅di. То есть, задержка для всех сообщений, отправляемых сервером Xi в расположенный по соседству компьютер равна Ci это 2⋅di.
4. Алгоритм Ai посылает свое сообщение с выходными данными только в Xi сервер, находящийся в colocation связке. Когда оригинальный алгоритм будет отправлять сообщение на другой сервер Xj, Ai бездействует \ - вместо этого, алгоритм Aj , находящийся в связке с Xj, посылает идентичное сообщение именно в нужное время. Aj может зафиксировать это событие в логе, тем не менее, будет действовать так, как было описано ранее.

Механизмы "центрального компьютера" и "совмещенных групп" эквивалентны
Чтобы убедиться, что механизм "совмещенных групп" работает так же, как механизм "центрального компьютера", нужно удостовериться, что отосланные входные данные приводят к тем же выходным данным, полученным серверами в одно и то же самое время, обоими механизмами "черных ящиков".
Очевидно, что для любого j, алгоритм Aj принимает одно и то же сообщение с входными данными, которое будет получено алгоритмом A, но Aj принимает их после задержки dj по отношению к времени, использующимся в алгоритме А. Именно во время t, алгоритм А получит сообщение от сервера Xi, которое было отправлено в момент времени tdi. Это же сообщение посылается от Xi к Aj с применением генератора искусственной задержки (di + djdi,j), а затем через линию передачи, которая имеет задержку di,j. Таким образом, поступление данных на Aj происходит в момент времени (tdi) + (di + djdi,j) + di,j = t + dj.
Задержка di устраняется путем установки времени Aj назад на величину dj. Это означает, что при времени UTC t + dj, все выходные данные Aj (в том числе и время) идентичны выходным данным из A в UTC времени t. Таким образом, Aj делает одни и те же решения в момент t + dj, как и A в момент времени t. Хотя решения, принятые алгоритмом Aj сделаны с задержкой dj, ее выходные данные доставляются мгновенно на сервер Xj (без задержки dj, которые были потеряны при отправке выходных данных с алгоритма A на Xj), что означает, что обе временные метки, поставленные алгоритмом Aj и время доставки сообщений, отслеживаемые Xj, идентичны тем, которые получены алгоритмом А. Это доказывает теорему 1.

Пример:
Чтобы получить некоторое представление о том, как хитро работает механизм совмещенных групп, мы будем использовать пример из статьи журнала Nature. Мы начинаем с одного компьютера - "срединной точки" C, расположенном в геодезическом центре между серверами двух финансовых центров X1 и X2 (Нью-Йорка и Лондона) и представим торговлю EUR / USD на спот рынке Forex). См. рисунок "Механизм с применением центрального компьютера".
Используя простые обозначения, d = d1,2 (около 20 миллисекунд со скоростью света) и h = d1 = d2 = d/2, и, вооружившись базовым методом, изложенным выше, мы сформируем простой функционально эквивалентный механизм, состоящий из пары компьютеров, размещенных в дата-центрах двух бирж, показанных на рисунке "Механизм пары компьютеров, находящихся в Colocation связке с разными биржами".
Механизм пары компьютеров, находящихся в Colocation связке с разными биржами

Механизм с компьютером в "серединной точке"

Далее мы покажем конкретный алгоритм арбитражной стратегии в действии, прослеживая его шаг за шагом в обоих сценариях. Наш алгоритм арбитражной стратегии "серединной точки" выглядит следующим образом: если цена Ask, с одной стороны (например, X1) точно меньше, чем цена Bid на другой стороне (X2), тогда отправляем лимитную заявку на покупку типа FOK (fill-or-kill) на сторону X1 и аналогичную лимитную заявку на продажу на сторону X2. Если оба ордера успешно заполнены, мы добились своего и сделали прибыль. В противном случае (если, скажем, продать на X2
не удалось) - мы отступаем, ликвидируя свою позицию, используя рыночную заявку. Она отправляется на биржу, которая предлагает лучшую цену Bid. (Это не самый умный алгоритм арбитража, однако, этого достаточно, чтобы проиллюстрировать то, что происходит внутри двух "черных ящиков").
Алгоритм арбитражной стратегии в действии_1

Алгоритм арбитражной стратегии в действии_2

Алгоритм арбитражной стратегии в действии_3


В следующей части мы разберем, какой же из вышеописанных вариантов представляет оптимальное решение для HFT арбитражных стратегий. Почему Colocation "преодолевает скорость света" и что по мнению профессиональных арбитражеров - "поистине распределенная архитектура биржи".

Перейти к части 3

Ссылка на первоисточник данной статьи
Перевод: Николай Флёров



Спасибо: Mikhail Sukhov


Николай_Флёров

Фотография
Дата: 22.09.2016
Ответить


Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy