Изображение блога
TSiuS
TSiuS Блог компании Os_Engine
10 октября 2024, 15:59

OsEngine MoexFixFastTwimeFutures: где брать инструкции и мануалы

Приступая к разработке коннектора, я надеялся на наличие подробных инструкций с образцами кода, желательно на языке C#, который мы используем в OsEngine, но пришлось довольствоваться тем, что было припрятано в глубинах FTP-серверов Московской биржи.

 OsEngine MoexFixFastTwimeFutures: где брать инструкции и мануалы 

Во-первых, для поиска инструкций на сайте Московской биржи надо зайти в раздел Технологические решения и перейти на вкладку Шлюзовое подключение.

 Находим транзакционные интерфейсы срочного рынка TWIME и FIX Gate.

На странице, посвященной интерфейсу TWIME, есть ссылка на документацию, которая ведет на FTP-сервер:

  OsEngine MoexFixFastTwimeFutures: где брать инструкции и мануалы  

Основной файл – spectra_twime_ru.pdf содержит Спецификацию бинарного

протокола TWIME для срочного рынка.

В данной Спецификации описываются сообщения, которыми обмениваются торговая программа клиента и сервер ТС SPECTRA Московской биржи.

Чтобы правильно сформировать или прочитать сообщения бинарного протокола, необходимо знать, какой тип данных используется для кодирования того или иного поля.

Например, сообщение Establish, которым устанавливается соединение с сервером, включает в себя заголовок и три поля: Timestamp — тип uint64, KeepaliveInterval — тип uint32 и Credentials -  тип String20.

В заголовок входит четыре поля типа uint16: длина сообщения – 32 т.е. сумма байтов всех полей сообщения, кроме заголовка, ID сообщения – 5000. Идентификатор схемы сообщений — 19781 и версия схемы сообщений – 7 — это постоянные величины. Чтобы передать логин типом String20, нужно в массив байт, полученный при кодировании строки логина, добавить нулевые байты до длинны 20.

 OsEngine MoexFixFastTwimeFutures: где брать инструкции и мануалы

  

Кроме Спецификации, разобраться с типами данных в сообщениях поможет информация в файле twime_spectra-7.0.xml.

Если перейти в директорию prod, то в ней в папке samples имеются примеры приложений для работы с TWIME на Python.

На GitHub удалось найти пару проектов по TWIME, но только на Java и C++:

https://github.com/abramov-eugene/twime-connector

https://github.com/akuloff/SBEMoexAgent

 

Инструкции для интерфейса FIX Gate также берем с сайта Московской биржи, переходя по ссылке Спецификация FIX для платформы Spectra (RU + EN)

 OsEngine MoexFixFastTwimeFutures: где брать инструкции и мануалы

 В директории Spectra в папке Utils есть небольшой пример приложения на языке С++.

Как указывалось в предыдущей статье, протокол FIX достаточно распространен в мире, и источников по его изучению много, в том числе проектов на GitHub.

 Для получения биржевой информации в коннекторе используется протокол FAST, описание которого имеется также на сайте Московской биржи по адресу: https://www.moex.com/s441

За инструкциями переходим по ссылке:

“Spectra FAST Gate (срочный рынок): Руководство для разработчиков, шаблоны FAST-компрессии, конфигурации.”

 Для разработки нам потребуется директория test.

 OsEngine MoexFixFastTwimeFutures: где брать инструкции и мануалы 

Спецификация протокола FAST находится в файле spectra_fastgate_ru.pdf.

В папке templatesT0 или templatesТ1 находятся файлы конфигурации и шаблона. В файле конфигурации можно узнать адреса, к которым следует подключаться для получения потоковых данных биржевой информации. 

В файле templates.xml представлены шаблоны, которые нужны для декодирования FAST сообщений.

 Также в папке test имеется программа fast_sensor, которую можно использовать для проверки соединения с сервером, а также в её логах можно посмотреть на структуру FAST сообщений из разных потоков.

 Однако, оглядываясь на уже имеющийся опыт работы с FAST, понятно, что даже просто для установки соединения с тестовым сервером вышеперечисленных ресурсов недостаточно. Советую еще зайти в директорию FAST для спота и валютного рынка по адресу: https://ftp.moex.com/pub/FAST/ASTS/utils/

 Здесь есть пример кода создания сокета для подключения к мультикаст адресам. Есть скрипт для прописывания маршрутов VPN соединения.

 Ну и конечно же источником инструкций по отдельным вопросам является служба поддержки Московской биржи.

 

Комментарии открыты для друзей!

 OsEngine MoexFixFastTwimeFutures: где брать инструкции и мануалы

OsEngine: https://github.com/AlexWan/OsEngine

Поддержка OsEngine: https://t.me/osengine_official_support

 Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open

Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php

 OsEngine MoexFixFastTwimeFutures: где брать инструкции и мануалы

 

0 Комментариев

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн