GNATOVSKIEonline
[←]кейсы

$ gnatovskie show moex-colocation

Свой сервер в колокации Московской биржи — от сетевой карты до заявки

задача>

Для своей торговли нужна была инфраструктура, где скорость зависит только от нас: сервер у биржи и свой софт от рыночных данных до заявки.

решение>

Собрали и поставили свой сервер в колокацию биржи. Написали всё, что на нём работает: приём рыночных данных срочного, фондового и валютного рынков напрямую с сетевой карты, выставление заявок, запись рынка и стенд, где стратегия проверяется на записанных днях до выхода в торговлю.

gnatovskie — поиск сигналов на рыночных данных

Два рынка — два протокола

Срочный рынок и фондовый с валютным у биржи устроены по-разному. Для каждого — свой приём данных и своё подключение для заявок. Общая часть — сервер, запись рынка и проверка стратегий.

Скорость — в каждой мелочи

Сервер собирали сами: процессор, память и сетевая карта выбраны под задержку, а не под объём. Данные идут с сетевой карты сразу в программу, минуя операционную систему. На пути от рыночных данных до заявки нет лишних операций — они вынесены за его пределы.

Проверка до торговли

Каждый торговый день записывается целиком. Стенд прогоняет стратегию по записанным дням с симуляцией биржи: очередь заявок, задержки, лимиты. Логика стратегии в проверке и в торговле одна и та же.

Коннекторы для других

Подключения к бирже работают отдельным сервисом: робот общается с ним через IPC, поэтому его можно написать на любом языке. Для Python есть готовый SDK. Ими уже пользуются клиенты.

gnatovskie — проверка стратегии на новых данных

результат>

Торгуем под своей маркой RunInfra на своей инфраструктуре. Рынок записывается каждый день, новую стратегию проверяем на реальных данных, а не на глаз.

задержка от рыночных данных до заявки
< 1 мс
торговый оборот
> 500 млн ₽

# похожая задача — опишите её словами

$ gnatovskie request --new