rss

Профиль компании

Финансовые компании

Блог компании Os_Engine | Обзор информации в популярных источниках по подключению к Мосбирже по протоколам FIX/FAST

Коллеги, всех приветствую!

Некоторое время назад закончил разработку подключение к Московской Бирже по протоколам FIX и FIX/FAST для терминала OsEngine. Сами исходники находятся здесь. А это первая статья из серии про FixFast, в которой будем разбираться с тем что это такое.

Начнём с того, что нужно делать в первую очередь. С поисков в Гугле и Яндексе какой-то информации. И как у меня это проходило.

Обзор информации в популярных источниках по подключению к Мосбирже по протоколам FIX/FAST

На СмартЛабе полно успешных алготрейдеров, и наверняка тема давно разжевана очень подробно (нет и немного да, но об этом чуть дальше). Выяснилось, что, несмотря на значимость этой темы, найти исчерпывающую информацию в популярных открытых источниках оказывается непростой задачей.

Далее следует описание того, с чем я столкнулся в поисках информации.

1. Недостаток подробных руководств

Одной из основных трудностей является отсутствие подробных и пошаговых руководств. Хотя в интернете можно найти общие описания протоколов FIX и FAST, информация о специфике их применения на Мосбирже встречается редко. Большинство ресурсов ограничиваются поверхностными сведениями, не углубляясь в конкретные настройки и процедуры подключения.

Вот, можно сказать, два официальных источника информации о протоколах:

https://www.fixtrading.org/what-is-fix/

https://www.fixtrading.org/standards/fast/

Из них мы узнаем, что из себя представляют FIXи FASTв целом. Вообще в англоязычной части интернета довольно-таки много информации по теме, но из-за узкой «профессиональной» направленности ничего не разжевывают.
2. Платные курсы и семинары

 

Может есть платные курсы или семинары по теме? Нет, это не для серьезных мужчин. Тема настолько непопулярная, что, кажется, кроме каких-то австралийцев (https://fixnox.com/services/fix-training/training-courses) никто ничего такого не преподает.

 

 3. Техническая сложность и специфика

 

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

 

 Обзор информации в популярных источниках по подключению к Мосбирже по протоколам FIX/FAST

 

Ну этим нас не напугать.

 

4. Форумы и сообщества лучше всего

И вот тут надежда оправдалась. Спасибо участникам сообщества, информация все-таки есть.

Обзор информации в популярных источниках по подключению к Мосбирже по протоколам FIX/FAST

 

Во-первых, ув. @algofintraderнаписал две статьи ( https://smart-lab.ru/blog/884937.php, https://smart-lab.ru/blog/889775.php ), посвященные протоколам FIXи FAST, из которых можно почерпнуть какие-то начальные сведения, если еще совсем не знаком с протоколами. Кроме того, автор приводит ссылки на библиотеки, такие как QuickFIX/N, которые он взял за основу собственного решения.

 

Автор пошел еще дальше и опубликовал (smart-lab.ru/blog/947546.php) бесплатный FIX/FAST коннектор для валютной секции. К сожалению? по ссылке на Гитхабе расположена бинарная сборка, а чуть позже автор и ее удалил со словами, что «коммунизм опенсорс» не планируется.
Обзор информации в популярных источниках по подключению к Мосбирже по протоколам FIX/FAST

 

В любом случае, спасибо ему за информацию!

 

Во-вторых, ув. Андрей К (@karat39) написал просто замечательный цикл статей в далеком 2016 году про базу FIX-протокола «Изучаю FIX протокол с нуля».

 

Изучаю FIX протокол с нуля. Разбор протокола, первый код на С#: https://smart-lab.ru/blog/310446.php

 

Изучаю FIX протокол с нуля. Рисуем и программируем дальше: https://smart-lab.ru/blog/310562.php

 

Изучаю FIX протокол с нуля. Подводим итоги первой части. Первая борьба за миллисекунды: https://smart-lab.ru/blog/310950.php

 

В этих трех статьях очень подробно с примерами кода разобрана работа с FIX-сообщениями. А самое главное – подробно объясняется, как вообще происходит flow обмена по FIX между клиентом и сервером. Крайне рекомендую к ознакомлению.

 

К сожалению, на этом цикл статей прервался и дальнейшего совместного обучения не вышло. Также вынужден сообщить, что касательно FAST нет ничего даже близко похожего на упомянутые статьи. Если по FIX еще находились полезные статьи, например, на Хабре https://habr.com/ru/articles/505022/ от ув. VeronikaY, то про FAST и нюансы вообще ничего.

Заключение

Таким образом, поиск информации о подключении к Мосбирже по протоколам FIX и FAST в популярных открытых источниках сопряжен с множеством трудностей. Для решения этой проблемы необходима большая открытость и доступность информации со стороны биржи, а также развитие бесплатных образовательных ресурсов и сообществ, способных предоставить необходимые знания и поддержку всем заинтересованным пользователям.

Делаю вывод, что типичный путь «современного разработчика» (загуглить везде, найти подробный гайд, сделать свою версию) в узкой специализированной теме сработал крайне ограниченно.

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

Спасибо за внимание! Про свое решение – в следующий раз.

Обзор информации в популярных источниках по подключению к Мосбирже по протоколам FIX/FAST

OsEngine: github.com/AlexWan/OsEngine
Поддержка OsEngine: t.me/osengine_official_support

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

Обзор информации в популярных источниках по подключению к Мосбирже по протоколам FIX/FAST

 

★4
14 комментариев
Как я тебя понимаю)
avatar
Если бы Московская Биржа предоставила возможность торговать физическим лицам напрямую- я бы ,в тот же день, покинул своего говноброкера!
avatar
11 потоков на одно соединение? Выглядит очень оптимально, как и сборка сообщений интерполяцией строк
Aleksandr Chernikov, по потоку на сокет + разбор отдельно. Вы думаете на современном железе узким местом будет интерполяция строк?
avatar
Fininja, а смысл? У вас io-bound задачи, так что будут сплошные контекст свитчи (не будете же вы для каждого инстанса выделять 12+ ядер)
Если что то можно сделать хорошо и эффективно — нужно это делать. Иначе зачем вам прямой доступ к бирже и квик сойдет
Aleksandr Chernikov, признаться задачей первой версии было сделать стабильно и надежно. Поэтому там еще довольно большое пространство для разных оптимизаций. Например, от потоков снэпшотов мы не отключаемся после завершения цикла восстановления.

Думаю если замеры покажут, что все очень тормозит, то тогда и надо будет пускаться в оптимизации.
avatar
Fininja, Вот правильно. Оптимизируем в колокации и всё будет хорошо. И потоки сменим на таски. И со строками разберёмся. Если будет нужно!

Обычно люди не пишут, типа, бро — вот я потестировал, надо вот так и так. Даже если ты делаешь OpenSource народный. А пишут — ха! Вот ты лошара, да у тебя тут это и то и вот ещё тут. Это может раздражать.

50% всего прекрасного было сделано в OsEngine, после таких сообщений. 

И самый главный совет я тоже в таком стиле получил. Товарищ тут один на смартЛабе облил меня говной, на 200 или 300 плюсов, пару лет назад. Только ленивый его не лайкнул. Коротко если, что-то типа «Вот если бы Ван сначала сделал вот то и то, то стал бы его OsEngine лучший. А так — ГОВНО». 

Злился я неделями, а потом подумал — а давай сделаю то и то. И помогло) Стал лучшим.

Поэтому слушаем всех… И те кто нормально пишет о проблемах. И тех кто пытается во время этого подымать свой ЧСВ. Это — всё польза. И всем спасибо!
Fininja, а что сейчас замеры показывают? сколько tick-to-trade? P50,P90,P99?
Aleksandr Chernikov, и кстати потоков 12. У программистов все с нуля.
avatar
Fininja, С почином тебя на СмартЛабе Никит.

upd. С настоящим всмысле.

Это когда по мотивам твоих постов начинают писать другие люди, пытаясь хайпануть. Вот это — открывать дверь правильно)
Алексей Ван <o-s-a.net>, Спасибо! (:
avatar
Какой смысл делать два протокола десятилетней давности, которые оба уже устарели и не используются даже на Московской бирже?
avatar
Algobal, на удивление вполне используются.
avatar

теги блога Fininja

....все тэги



UPDONW
Новый дизайн