Для того, чтобы участник торгов (брокер) мог вести торги на бирже, ему надо установить соединение с биржей. Этим занимается у брокера специальный отдел программистов и технологов, который называется market connectivity team. Организационно эта команда входит в отдел электронной торговли (electronic trading technology division, ETT), в ведении которой находятся все системы обработки, маршрутизации ордеров, системы алгоритмической торговли и системы подключения к рынкам.
Написание кода соединения с биржей
Шлюз биржи может быть написан на C++. Взаимодействие со шлюзом может осуществляться путем вызова процедур из C++ библиотеки, которую предоставляет биржа. Эта библиотека берет на себя все низкоруовневые детали соедниения (handshake, hearbeat), вам остается только внедрить эту библиотеку в свой код и вызывать из своего кода определенные методы библиотеки, которые должны быть описаны в документации. Брокер может написать клиента на чистой Java и вызывать C++ методы используя JNI.
Гораздо проще, если надо реализовать соединение по FIX-протоколу. FIX-протокол — протокол текстовый (ASCII) и нейтрален к языку программирования. Ничто не мешает взять уже готовую реализацию FIX-протокола и адаптировать ее под спецификацию конкретной биржи, что чаще всего и делают. Реализация может быть как внутренняя, которой пользуются у брокера для подключения и к другим биржам, так и внешняя — купленная коммерческая или вообще open-source реализация, например, QuickFIX/J.
Время от времени программисты брокера подключаются к тестовому конктуру (QA env) биржи, которая повторяет во всем реальную, и проверяют, как работает их код совместно с тестовым шлюзом биржи: не теряются ли сообщения, верно ли проходит синхронизация, все ли сообщения обрабатываются правильно, нет ли ошибок и крэшей.
Поддержка соединения
То, что написали разработчики, потом выносится на PROD и становится частью market access / market connectivity layer общей системы электронных торгов брокера. Отдел поддержки (PROD support) постоянно мониторит состояние подключения к бирже, и если подключение теряется, это становится production issue.