Терминалу, который торгует несколькими классами активов, нужны доступ к каждому рынку, лицензии на данные для биржевых цен, которые он показывает или использует, и одна эталонная запись на каждый инструмент, который он предлагает.
Если у вас есть финансирование на мультиассетный торговый терминал, но нет собственных инженеров, говорите с инженерными компаниями, чьи торговые системы уже работают в проде у клиентов и подключены к реальным брокерам и биржам. Каждый добавленный класс активов приносит новые подключения и лицензии на данные, и многие части обычно не строят, а арендуют. Шесть вопросов ниже отделяют компании, которые строили торговые системы, от универсальных аутсорсинговых компаний.
Короткий ответ: включайте в шорт-лист компании, которые могут показать построенную ими торговую систему, работающую в проде сегодня, — в идеале по нескольким классам активов. До первого созвона составьте список брокеров и бирж, которые планируете использовать, и определите, откуда будут поступать ваши цены. Затем задайте каждой компании шесть вопросов ниже и сравните ответы.
Дальше по теме
Терминалу для одного рынка может хватить одного брокера или одной биржи. Каждый добавленный класс активов, будь то акции, фьючерсы, валюты (FX) или криптовалюта, обычно приносит новые подключения и лицензии на данные, а также собственные правила по инструментам и часы торгов. Если ваша компания будет принимать заявки от клиентов, новый класс активов может изменить и то, какая регуляторная лицензия ей нужна. Спросите юриста по регуляторным вопросам о каждом рынке до начала разработки.
Дополнительная работа делится на пять частей.
Каждой площадке, то есть бирже или другой торговой платформе, нужно своё подключение, и каждому брокеру тоже. По подключению уходят ваши заявки и возвращаются цены и исполнения — подтверждения того, что по заявке прошла сделка. У каждого подключения свой интерфейс и свои правила на случай обрыва связи.
Биржевые цены, которые называют рыночными данными (market data), поставляются на лицензионных условиях, установленных биржей, даже когда их доставляет брокер или поставщик данных. Каждая биржа, чьи цены вы показываете, добавляет собственный договор.
На многих биржах использование цен одной лишь программой считается отдельным видом использования. Nasdaq называет его «использованием без отображения» (non-display use). В Data News #2015-9 от 14 декабря 2015 года Nasdaq определяет этот термин как «любой способ доступа к Nasdaq U.S. Information, при котором доступ или использование осуществляет машина или автоматизированное Устройство без доступа к Дисплею или его использования физическим лицом или лицами». В уведомлении приведены примеры видов использования, за которые взимается плата, включая «все программы, приложения и скрипты автоматической торговли» и риск-менеджмент с функциями автоматического стоп-лосса. Если ваша программа считывает цены, чтобы запускать заявки или риск-проверки, спросите у каждой биржи, что для этого требуется.
Инструмент — это всё, чем клиент может торговать: акция, фьючерсный контракт, валютная пара или монета. Справочник инструментов хранит одну запись на каждый инструмент вместе с названиями, под которыми он значится на каждой площадке. В записи также хранятся валюта и размер контракта, а для фьючерсов — дата экспирации.
Помогают два открытых стандарта. Код идентификации рынка (Market Identifier Code, MIC, стандарт ISO 10383) — это четырёхсимвольный код для каждой биржи или торговой платформы, например XNYS для Нью-Йоркской фондовой биржи. Глобальный идентификатор финансового инструмента (Financial Instrument Global Identifier, FIGI) — код самого инструмента.
На странице о MIC на сайте iso20022.org сказано, что стандарт ISO 10383 задаёт «универсальный способ идентификации бирж, торговых платформ, регулируемых или нерегулируемых рынков и систем отчётности о сделках как источников цен и связанной с ними информации». SWIFT ведёт официальный список от имени ISO и ежемесячно публикует обновления.
OpenFIGI, публичный сайт этого идентификатора, сообщает, что коды регистрирует Bloomberg. Сайт описывает FIGI как «12-символьный буквенно-цифровой идентификатор, сгенерированный случайным образом», который выдаётся по стандарту Object Management Group, некоммерческой организации по стандартизации. FIGI охватывает классы активов, у которых обычно нет глобального идентификатора, включая «криптовалюты и пары на биржах, фьючерсы и опционы». Присвоенный FIGI не меняется.
Рынки работают в разные часы. На Нью-Йоркской фондовой бирже основная торговая сессия по акциям идёт с 9:30 до 16:00 по восточному времени США, открываясь и закрываясь аукционом, как указано на странице NYSE о часах торгов. Криптобиржа Kraken пишет в своём руководстве «Почему крипторынок работает 24/7/365?», что «криптовалютный рынок никогда не спит». Один экран должен показывать, какие рынки открыты сейчас и что происходит с заявкой, которую клиент выставляет, пока её рынок закрыт.
Различаются и типы заявок: одна площадка может отклонить тип заявки, который принимает другая. Терминал должен предлагать каждому клиенту только те заявки, которые выбранная площадка примет в данный момент.
Мультиассетному терминалу также нужна единая картина позиций и риска по всем счетам. Клиент может держать акции и фьючерсы через двух брокеров, а криптовалюту — на бирже. Чтобы всё это сложить, нужны актуальные цены из каждого источника и единое правило пересчёта валют. Эта картина также должна ясно показывать, когда источник запаздывает или недоступен, чтобы никто не действовал по устаревшему итогу.
С нуля строят немногие терминалы. Типичное разделение выглядит так.
Обычно арендуют или лицензируют:
Обычно строят:
Если клиенты будут выбирать вас за экран, стройте экран, а большую часть остального арендуйте. Если они будут выбирать вас за доступ к рынку, на который мало кто ещё выходит, стройте подключение к этому рынку и владейте им сами.
Говорите с инженерными компаниями, которые строят торговые системы для клиентов и могут показать такую систему, работающую в проде сегодня. Такая компания должна суметь рассказать, какие тесты площадок прошли её системы и как решался вопрос с лицензиями на данные.
Универсальные аутсорсинговые компании могут дать много разработчиков, а у некоторых внутри есть группа по трейдингу. Если вы говорите с такой компанией, встретьтесь с инженерами, которые будут строить ваш терминал, и попросите каждого рассказать о работающей торговой системе, в создании которой он участвовал.
Компания, которая построила терминал для одной криптобиржи, знает только часть работы. Спросите, что она делала с брокерами, фьючерсами или акциями, где тесты подключения и лицензии на данные устроены иначе.
Задайте одни и те же шесть вопросов каждой компании из вашего списка.
Какими классами активов торговали ваши системы в проде и через каких брокеров или какие биржи? Компания с реальным опытом называет их и говорит, какие из этих систем работают до сих пор. Спросите, справлялась ли какая-то одна система сразу с двумя классами активов и что пришлось изменить, когда добавили второй.
Как вы ведёте одну запись на каждый инструмент? Ждите упоминания кодов площадок, таких как MIC, и идентификатора, например FIGI или собственного идентификатора поставщика данных. Хороший ответ касается и экспирации фьючерсов, и сплитов акций. Если в ответ звучит, что тикера достаточно, компания с этой проблемой ещё не сталкивалась.
Как вы проходили тесты подключения на каждой площадке? Многие брокеры и биржи тестируют новое ПО, прежде чем допустить его к торгам. Терминалу с несколькими площадками может предстоять несколько раундов тестов, и каждая площадка сама назначает их даты. Спросите, что не прошло с первого раза и что пришлось изменить, прежде чем площадка дала добро.
Что видит клиент, когда одна из площадок отключается? Цены с этой площадки помечаются как устаревшие, новые заявки на неё блокируются, а остальные рынки продолжают торговать. Когда площадка возвращается, позиции сверяются с её собственными записями, прежде чем торговля возобновится.
Какие цифры задержки вы измеряли на работающей системе и между какими двумя точками? Задержка — это время, которое уходит внутри системы, например от поступления цены до отправки заявки. Цифру без двух конечных точек и без указания, насколько загружена была система, нельзя сравнить ни с цифрой другой компании, ни с тем, что нужно вашим клиентам.
Что будет после запуска и чем мы будем владеть? Если один из ваших рынков никогда не закрывается, тихой ночи для обновлений нет. Спросите, когда компания выкатывает изменения и кто реагирует на алерты по выходным. Затем спросите, станут ли адаптеры площадок и справочник инструментов вашими или останутся у компании как её собственные компоненты и на условиях какой лицензии вы будете пользоваться тем, что она оставит себе.
amBrain делает софт с 2019 года. amBrain строит инфраструктуру алгоритмической торговли: исполнение заявок, рыночные данные и предторговый риск-контроль.
Одна из строк на сайте amBrain гласит: «Разработка торговых терминалов, систем управления заявками и биржевая интеграция по протоколу FIX».
Одна из замеренных цифр amBrain — задержка рыночных данных <5 ms. Другая — задержка риск-проверки <1 ms.
Свою команду amBrain описывает одной строкой: «Команда до 40 человек, около 75% из них — сеньоры». Компания работает в трёх форматах: полная разработка, выделенная команда или инженеры внутри вашей команды. Клиент сохраняет полное владение продуктом и кодом, кроме переиспользуемых компонентов amBrain.
Ничто из сказанного выше не описывает конкретный проект или клиента amBrain, и в статье не названы ни цены, ни сроки.
Если amBrain в вашем шорт-листе, отправьте ему тот же список площадок и классов активов и те же шесть вопросов, что и всем остальным компаниям.
Принесите текущую архитектуру и тот сценарий отказа, который вас беспокоит, — разберём его вместе за полчаса.