Коллеги, всех приветствую!
Некоторое время назад закончил разработку подключение к Московской Бирже по протоколам FIX и FIX/FAST для терминала OsEngine. Сами исходники находятся здесь. А это первая статья из серии про FixFast, в которой будем разбираться с тем что это такое.
Начнём с того, что нужно делать в первую очередь. С поисков в Гугле и Яндексе какой-то информации. И как у меня это проходило.
На СмартЛабе полно успешных алготрейдеров, и наверняка тема давно разжевана очень подробно (нет и немного да, но об этом чуть дальше). Выяснилось, что, несмотря на значимость этой темы, найти исчерпывающую информацию в популярных открытых источниках оказывается непростой задачей.
Далее следует описание того, с чем я столкнулся в поисках информации.
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 требуют глубоких технических знаний. Не каждый пользователь обладает достаточной квалификацией для того, чтобы разобраться в сложных технических терминах и алгоритмах, необходимых для корректной настройки системы.
Ну этим нас не напугать.
4. Форумы и сообщества лучше всего
И вот тут надежда оправдалась. Спасибо участникам сообщества, информация все-таки есть.
Во-первых, ув. @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 коннектор для валютной секции. К сожалению? по ссылке на Гитхабе расположена бинарная сборка, а чуть позже автор и ее удалил со словами, что «коммунизм опенсорс» не планируется.
В любом случае, спасибо ему за информацию!
Во-вторых, ув. Андрей К (@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 в популярных открытых источниках сопряжен с множеством трудностей. Для решения этой проблемы необходима большая открытость и доступность информации со стороны биржи, а также развитие бесплатных образовательных ресурсов и сообществ, способных предоставить необходимые знания и поддержку всем заинтересованным пользователям.
Делаю вывод, что типичный путь «современного разработчика» (загуглить везде, найти подробный гайд, сделать свою версию) в узкой специализированной теме сработал крайне ограниченно.
Выражаю благодарность упомянутым авторам статей за крупицы знаний, к которым они облегчили доступ.
Спасибо за внимание! Про свое решение – в следующий раз.
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
Если что то можно сделать хорошо и эффективно — нужно это делать. Иначе зачем вам прямой доступ к бирже и квик сойдет
Думаю если замеры покажут, что все очень тормозит, то тогда и надо будет пускаться в оптимизации.
Обычно люди не пишут, типа, бро — вот я потестировал, надо вот так и так. Даже если ты делаешь OpenSource народный. А пишут — ха! Вот ты лошара, да у тебя тут это и то и вот ещё тут. Это может раздражать.
50% всего прекрасного было сделано в OsEngine, после таких сообщений.
И самый главный совет я тоже в таком стиле получил. Товарищ тут один на смартЛабе облил меня говной, на 200 или 300 плюсов, пару лет назад. Только ленивый его не лайкнул. Коротко если, что-то типа «Вот если бы Ван сначала сделал вот то и то, то стал бы его OsEngine лучший. А так — ГОВНО».
Злился я неделями, а потом подумал — а давай сделаю то и то. И помогло) Стал лучшим.
Поэтому слушаем всех… И те кто нормально пишет о проблемах. И тех кто пытается во время этого подымать свой ЧСВ. Это — всё польза. И всем спасибо!
upd. С настоящим всмысле.
Это когда по мотивам твоих постов начинают писать другие люди, пытаясь хайпануть. Вот это — открывать дверь правильно)