
Кулика: Качество Рынка
Здоровье и зрелость рынка нельзя оценивать только по цене и объему. Его участники и их отношения имеют…
Кулика: Качество Рынка
Ранее представлено в дайджесте FTX за ноябрь 2020 года
Здоровье и зрелость рынка нельзя оценивать только по цене и объему. Его участники и их отношения оказывают значительное влияние на направление, которое может принять индустрия. Мы рассмотрим биржи, крупных маркет-мейкеров и обычных участников рынка, а также то, как их взаимодействия формируют крипторынки.
В этой статье мы обсудим физические ограничения движков сопоставления бирж, как это влияет на более широкий крипторынок и несколько предложений, которые могут сделать криптовалюты более справедливым и эффективным рынком.
Физические ограничения торговли
На протяжении тысячелетий люди стремились сделать свои рынки более устойчивыми, эффективными и быстрыми. От логистических сетей до систем онлайн-оплаты, стремление к снижению задержек так же старо, как и сами рынки. Что происходит, когда индустрия сталкивается с препятствием, которое не может преодолеть? Открытие кремния и его применение позволили нам приблизить скорость распространения информации к скорости света. Мы не можем сделать это быстрее.
Работая над движком сопоставления Euronext, я получил понимание того, как максимально использовать физические ограничения аппаратного обеспечения и разрабатывать более быстрые движки сопоставления (ME).
ME является сердцем любой биржи. Высококвалифицированные марафонцы имеют медленный, но сильный сердечный ритм, который может многое сделать; каждый удар сердца оптимизирован для обеспечения максимальной эффективности и скорости в доставке питательных веществ к тканям и мышцам. Аналогично, ME отвечает за эффективное и быстрое выполнение торговых операций, при этом обеспечивая надежную и устойчивую передачу полученной информации в правильную часть инфраструктуры биржи. Задержка ME снижается год за годом благодаря упорной работе команд бирж, в то время как некоторые старые лидеры начинают терять клиентов, сидя на лаврах.
"Если вы не поднимаетесь, вы опускаетесь"
Давайте опустимся, чтобы подняться: Демистификация CPU 101:
Середина 2000-х годов ознаменовала конец эпохи закона Мура, когда переход на более высокочастотное оборудование автоматически повышал производительность. Вместо этого индустрия перешла к модели, где прирост производительности достигается за счет добавления большего количества исполнительных единиц (ядер). Однако использование многопроцессорных архитектур требует дополнительных усилий по разработке и тестированию, а наивный подход к добавлению большего количества потоков часто не оправдывает ожиданий по масштабируемости. Почему?
"Один центральный процессор (CPU) действительно хорош в одной задаче, но многие процессоры по умолчанию не работают хорошо в команде".
CPU состоит из вычислительного блока и блока памяти. Одно ядро CPU организовано для выполнения инструкций на своей частоте. Например, CPU с частотой 3 ГГц обрабатывает каждую инструкцию за 0,333 нс (1 000 000 000 нс = 1 сек). Полупроводниковая технология (в нанометрах) определяет физические границы.
На самом деле все гораздо сложнее. Мы предполагаем, что инструкции и данные уже хранятся в физических регистрах CPU, которые работают на той же скорости, что и частота CPU. На практике инструкции и данные хранятся в многослойной кэш-памяти (L1/L2/L3). Чем ближе к CPU физически на чипе, тем быстрее и меньше он. Таким образом, кэш L1 является самым быстрым и самым маленьким. Рисунок 1 показывает микроархитектуру многопроцессорного CPU и соответствующий размер/скорость каждого уровня кэша.

Рисунок 1: Микроархитектура многопроцессорного CPU
Чтобы понять, что делает задержку долгой и циклы исчезающими, нам нужно понять основы Закона Универсальной Масштабируемости, применяемого к многопроцессорной системе CPU. Основные параметры, влияющие на масштабируемость, это:
• Конкуренция за ресурсы ядра: например, из-за гиперпоточности. Несколько программных потоков хотят одновременно получить доступ к одним и тем же исполнительным единицам, и таким образом обработка сериализуется и приоритизируется.
• Конкуренция за кэш-память: она возникает, когда происходит конкуренция за доступ к личной кэш-памяти (L1/L2) в случае переключения контекста операционной системы или когда размер задачи слишком велик, чтобы быть сохраненным в личной кэш-памяти. Это явление называется "кэшевое трясение". В многопроцессорной системе кэшевое трясение происходит в общем кэше L3 (или LLC - кэш последнего уровня) между ядрами. Следовательно, это приводит к потере нескольких сотен наносекунд в задержке. Решением должна стать интеллектуальная программа, которая улучшает локальность данных в кэш-памяти, чтобы также улучшить использование пропускной способности памяти, сохраняя при этом ядро CPU занятым локальными вычислениями; это очень сложная задача, и сегодня нет простого решения.
• Согласованность кэша: это аппаратный механизм, который позволяет бесшовную коммуникацию между ядрами всякий раз, когда происходит программная синхронизация (мьютекс, барьер и т. д.) или доступ к одной и той же области памяти обоими ядрами. Простая согласованность кэша (один кэш-строка) стоит как минимум 600 циклов.
Нагрузка на движки сопоставления
Учитывая ограничения CPU, биржи должны управлять своими операциями. Во-первых, биржи должны управлять позициями своих трейдеров. Это подвергает их рискам ликвидности, когда массовые ликвидации происходят во время высоковолатильных рыночных эпизодов. Биржи стремятся управлять ликвидацией этих позиций так, чтобы избежать рикошетных эффектов на других участников рынка, когда происходят массовые ликвидации. Они также должны обеспечивать соблюдение рыночных правил и обрабатывать отложенные сделки, чтобы гарантировать устойчивость и согласованность своих услуг.
99-й процентиль представляет собой верхние 1% значений задержки для запросов, оцененных в течение данного временного интервала для данной задачи. Устойчивое и эффективное программное обеспечение будет считаться по 99-му процентилю, который станет рекламируемым порогом задержки. Движки сопоставления бирж, независимо от того, насколько хорошо они закодированы, всегда будут ограничены этими задержками, что ограничивает общий объем транзакций для их пользователей. Если у биржи есть ограниченное количество транзакций в секунду.

Это добавляет несколько тысяч операций на каждую инструкцию сопоставления, которую должен обрабатывать ME. У них также есть ограничения для бизнес-запросов, связанных с обслуживанием множества инструментов и обработкой миллионов сообщений в секунду.
Как достичь масштабируемости и стабильности с архитектурной точки зрения?
ME является высоко взаимосвязанным рабочим процессом вычислительного профиля, объединяющим данные из нескольких источников, где частота связи между модулями и их взаимозависимости высоки и динамичны. Синхронизация потоков и планирование должны выполняться динамически и быстро.
Реактивное программное обеспечение — это философия проектирования и смена парадигмы, которая охватывает создание как крупных реактивных микросервисов, так и мелкозернистых реактивных приложений (один процесс). Основываясь на дизайне асинхронной передачи сообщений, существует множество моделей параллельного программирования, которые позволяют создавать реактивное программное обеспечение с нуля. Модель акторов является одним из таких проверенных временем режимов программирования.
Акторы — это очень эффективная концепция, поддерживающая весь жизненный цикл разработки до производства. Поскольку они напрямую сопоставлены с функциональными концепциями, акторы сокращают расстояние между бизнес- и функциональными архитектурами; они инкапсулируют логику на уровне, достаточно детализированном для разделения работы между разработчиками; они являются непосредственно используемыми концепциями для тестирования; и они позволяют администраторам динамически определять топологию, основываясь на доступном оборудовании и нагрузке приложения.
ME, получающий эти операции, распределит необходимые вычисления между доступными ядрами CPU. Если ядро заполнено, данные отправляются либо на уровень кэша выше, либо на сокеты материнской платы, либо в худшем случае обратно в ОЗУ и отправляются на аппаратные ресурсы (это имеет наибольшую стоимость, поскольку необходимо достичь других компонентов).
Каждый раз, когда ядру необходимо синхронизироваться для балансировки нагрузки, они платят "плату за задержку". Чем больше ядер вы добавляете, тем больше данные могут быть распределены, но тем больше вы будете платить за задержку. Эта плата увеличивается экспоненциально. Именно поэтому биржи не могут просто масштабироваться, покупая больше серверов, и почему они могут стать жертвами собственного успеха. Критическая точка задержки достигается, когда вступает в силу энтропия, распределяя данные по многим ядрам, и они просто делают друг другу обещания ждать данные для выполнения инструкций.
Стратегия, используемая инженерами, заключается в том, чтобы назначить каждое ядро на одну конкретную роль и никогда не делать ничего другого, убедиться, что они никогда не получают слишком много данных или инструкций, и избегать, насколько это возможно, любой синхронизации и случайности во входных данных. Для достижения этого им придется либо потратить деньги на исследования, либо инвестировать в программное обеспечение для управления распределением памяти и контролем ядер. И особенно иметь строгих инженеров, которые не тратят ни байта времени CPU.
Дилемма:
Биржи и рынок в целом оказываются в дилемме: увеличивать нагрузку ценой более явных ограничений скорости и задержки.
Сторона продажи:
С точки зрения стороны продажи (биржи), вы тратите много денег на разработку решений для лучшего управления энтропией. Вам нужны талантливые разработчики, которые понимают дилемму задержки, включая энтропию, создаваемую растущей клиентской базой (торговое программное обеспечение, алгоритмические трейдеры, маркет-мейкеры). В какой-то момент проектные ограничения достигаются физическими законами. Учитывая это, любая ошибка накапливается и может быстро стать болезненной, что в конечном итоге ограничивает возможности разработки до тех пор, пока инновации не будут убиты из-за страха создать новые затраты на задержку. Биржи в конечном итоге должны снизить риск неисправностей ME из-за того, что может быть похоже на распределенную атаку отказа в обслуживании, совершенную законными участниками рынка.
Чтобы смягчить эти риски, они применяют ограничения скорости и приоритизируют те инструкции, которые приносят им лучшие бизнес-возможности. CPU и задержка — это физика и математика. Исследования, строгость и понятия "справедливости" находятся на усмотрение человека. Если вы замедляете всех, вы делаете рынок менее эффективным для большинства трейдеров. Это дает преимущество тем, у кого есть ресурсы (инженеры низкого уровня кодирования, капитал для развертывания, исследовательская команда, объем). Еще один важный момент: каждая операция, по юридическим причинам, должна быть сохранена, даже если она предназначена для отмены заказа через несколько миллисекунд. HFT (высокочастотная торговля)
компании создают высокую нагрузку на биржи, в основном с неэффективными ресурсами за счет биржи.
Сторона покупки
С точки зрения стороны покупки (точка зрения клиентов), неограниченный ME позволяет использовать лучшие стратегии, больше конкуренции, более эффективные рынки, лучшие возможности арбитража между биржами и более справедливый рынок для трейдеров с низким объемом, которые могут получить доступ к ликвидности с такой же скоростью, как и все остальные.
Когда количество клиентов увеличивается, ME замедляется и исключает большинство трейдеров. Покупка серверов в географической близости к серверам биржи позволяет некоторым участникам рынка отправлять специфические ценовые паттерны, что представляет особый интерес с точки зрения регулирования и бирж. В периоды высокой волатильности HFT в основном поглощает ликвидность конкурентов и поглощает пассивные заказы не-HFT, которые проходят через ордерфлоу. Тейкеры, как правило, действуют как информированные трейдеры, и их ордерфлоу можно считать токсичным для других участников.
Один пример, который уже испытали многие трейдеры, — это стратегия HFT, отправляющая заказы со скоростью 6,000 заказов, размещенных и отмененных в секунду. Это означает, что каждая котировка имеет жизнь короче 1,6 миллисекунд — времени, необходимого для того, чтобы свет прошел около 1,500 футов. Любой, находящийся дальше половины этого расстояния, не имеет шансов исполнить эти котировки. Это распространенная стратегия, называемая "заполнение котировок", возможная благодаря тому, что участник рынка находится в том же дата-центре, что и биржа. Это приводит к большим скрытым спредам, создаваемым, когда агрессивные заказы попадают на биржу.
Возникают вопросы о рыночных правилах, которые может применять только сторона продажи с учетом стимулов от регуляторов или саморегулирования для улучшения качества своих услуг. Сторонники HFT скажут, что они улучшают ликвидность, снижая спред и возможность возникновения других злонамеренных стратегий, таких как спуфинг.
Другие скажут, что такая скорость несправедлива. Не-HFT оказываются зажатыми между ограничениями скорости, статистическими арбитражными стратегиями и призрачными котировками, что уменьшает возможность для небольших участников выиграть. В дополнение к высококвалифицированным участникам, новые продукты, такие как альткойны, появились в последние годы и вызывают наибольшее беспокойство на момент написания этой статьи. Безумие ICO и большинство написанного и обучающего материала о ловушке ликвидности рынка криптовалют привели к тому, что трейдеры предпочитают продукты с кредитным плечом с улучшенной ликвидностью вместо монет/токенов с низкой ликвидностью, как подробно описано в предыдущем дайджесте FTX за июнь от Кларенса Караччо.
Долгосрочные "обратные" позиции более рискованны, чем "короткие". Поскольку цена падает, позиция накапливает все больше дельты и ставит трейдера под больший риск ликвидации. Новая волна трейдеров обращается к продуктам с высоким кредитным плечом с той же низкой базовой ликвидностью на споте, но на этот раз подвержена негативной гамме на "долгих" позициях при использовании не-USD залога.
Маркет-мейкеры стремятся к нейтральным позициям, их ставки на заказы тейкеров в основном зависят от их запасов. При высокой волатильности и без надлежащих стимулов они не будут беспокоиться о выполнении оптимальной ликвидации своих запасов в слабых лимитных ордер-книгах с контролируемой интенсивностью. Они убирают ликвидность против информированных трейдеров, чтобы избежать потенциальных убытков. Участники с кредитным плечом в конечном итоге оказываются с ликвидированными позициями из-за механизма риска биржи, просто потому что ордер-книги базового индекса были отозваны.
Рынки биткойнов и альткойнов не регулируются никакими общими "справедливыми правилами" относительно задержек, спредов, требований к залогу или структуры сборов. Но все биржи применяют ограничения скорости на основе объема. Эти ограничения в основном предназначены для защиты движков сопоставления от высокой нагрузки спроса и обеспечения эффективного рынка криптовалют.
Появление новых инструментов для быстрого трейдинга в этих пределах и захвата доступной ликвидности позволяет несистемным участникам также захватывать эти неэффективности с более быстрой реализацией для торговли против маркет-мейкеров, но это непосредственно вступает в конфликт с ними. Роль котирования низких ликвидных лимитов — это утомительная работа, требующая стимулов, теперь они также






