Тимофей Мартынов
Тимофей Мартынов личный блог
18 декабря 2020, 15:06

Маркетдата СПБ биржи. Протокол FIX/FAST

Алгодобрые люди, подскажите советом плиз.

Задача: взять котировки у СПБ биржи и показывать их на смартлабе и в ваших портфелях.

СПБ биржи отдает данные только через протокол FIX/FAST. Для сайта это суровое черезжопное решение — нам надо брать и с нуля писать на C++/C# engine под этот протокол, либо дорабатывать скачанные где-то библиотеки, а потом переписывать под себя, чтобы данные через протокол попадали в нашу базу данных. Решение геморройное и недешевое.

Как нам быть? Итак, пока мы видим следующие решения, может подскажете оптимальный алгритм...

1️⃣ Писать коннектор FIX/FAST
2️⃣ Поставить QUIK на сервер, и тянуть данные оттуда, написать приблуду на Lua
3️⃣ Парсить данные с сайта СПБ https://spbexchange.ru/ru/market-data/ 😁
4️⃣ Забрать данные через АПИ дата провайдеров, например tinkoff API etc.

Я честно говоря в шоке, что есть только такой интерфейс, потому что например у МОЕХ есть белый и пушистый json формат, который удобно брать и делать с ним что угодно.
28 Комментариев
  • Поликарп Брусникин
    18 декабря 2020, 15:08
    Котировки с СПБ обязательно нужны
  • Alexey
    18 декабря 2020, 15:15
    @Тимофей,
    не нужно писать самим FIX коннектор. Возьмите готовый — QuikFix. Максимум что может потребоваться подправить словарь фикс сообщений, но для котировок наверное и этого не потребуется
    www.quickfixengine.org/


  • 이익
    18 декабря 2020, 15:17
    QuickFix python\ruby поддерживает
  • Андрей Иванов
    18 декабря 2020, 15:19
    третий вариант, самый оптимальный и дешевый, остальные требуют обслуживания т.к. то соединение отвалится то протокол обновят
    • Alexey
      18 декабря 2020, 15:23
      Андрей Иванов, 
      хрень, а не вариант. Зачем городить костыли, когда есть нормальные решения с фиксом и готовая библиотека, которая широко используется в индустрии
      В общем, я бы вообще закрыл вопрос, т.к. ответ был дан.
      QuikFix под конкретный проект настраивается за 1-3 дня.
      • Андрей К
        18 декабря 2020, 18:32
        Alexey, не в российских реалиях. Сделал и забыл не получится
      • alewmt
        21 декабря 2020, 20:34
        Alexey, абстракный программист только неделю читать будет, чтобы понять что такое фикс.
    • sergsmirnoff
      18 декабря 2020, 16:32
      Андрей Иванов, третий тоже требует обслуживания, т.к. если нет открытого API, и парсить надо будет напрямую, то любое изменение верстки, уронит работу парсера, и нужно будет исправлять правила
  • Павел
    18 декабря 2020, 15:20
    Не тот сайт смотришь!
    У них на сайте виджет TradingView 
     investcab.ru/ru/inmarket/torg_instruments/card.aspx?issue=3704


  • monte_carlo
    18 декабря 2020, 15:25
    Тимофей активизировался) Байкал разозлил походу) У тебя же административный ресурс — накидай себе рейтинга)) Делов то)
  • FinSerfing
    18 декабря 2020, 15:28
    А не проще с TradingView договориться?
  • dnmsk ☮
    18 декабря 2020, 15:28
    Насколько помню есть коннекторы на шарпе к фикс-фаст, как и коннекторы на шарпе к квику. В обоих случаях придется работать со сделками, чтобы мониторить цену.
    Про вторые могу сказать — работают очень хорошо.
    Оба этих решения нужны, если планируешь делать портфели с пересчетом быстрее чем 100-200мс.
    В остальных случаях лучше что-нибудь попроще и без дополнительного зоопарка технологий.
  • Shrizt
    18 декабря 2020, 15:54
    Делать/Купить прямой коннектор. Кроилово ведет к попадалову.
  • SergeyJu
    18 декабря 2020, 16:07
    Вот не пойму, чем квик-то не устраивает. Неужели задержка в доли секунды  кого-то парит, кроме ХФТ? 
      • SergeyJu
        18 декабря 2020, 16:40
        Тимофей Мартынов, ну и пишите в базу с квика.
  • wrmngr
    18 декабря 2020, 17:08
    5 вариант : 

    — создать тайный консорциум в партнерстве с МосБиржей
    — привлечь внутреннее/внешнее финансирование под операцию
    — развернуть черный пиар питерской биржи 
    — дождаться массового оттока клиентов
    — вынудить акционеров продать акции за бесценок вашему консорциуму 
    — ликвидировать/поглотить конкурента по вкусу


  • Андрей К
    18 декабря 2020, 18:19

    1) Если выберешь свой коннектор, это будет самый надежный путь. Ни от кого не зависишь. Но опыт последних лет нашей биржи теперь говорит о говорит о том, что постоянно придется поддерживать этот вариант. Биржа вносит раз в квартал какие то изменения, нужно адаптировать часто свою разработку. Как это будет в СПБ пока не известно. Если что, алготрейдеры много лет юзали эту либу под c++. Чтобы запустить, нужно повозиться, зато потом все просто, даже при изменениях биржи.

    objectcomputing.github.io/mFAST/

     

    2) Чужое API, которые ты перечислил, сыроваты, на первый год наверянка поимеешь доп работы частые. Не получится — сделал и забыл.

     

    3) Квик прикольное решение. Если твое железо потянет постоянно гонять квик и парсить от туда, почему бы нет.

    4) Парсить сайт самое изящное решение. Главный минус — вдруг биржа поменяет  структуру таблицы. Опять садиться переделывать. Нужно качественно подойти к выбору существующих парсеров, чтобы потом на пару лет забыть об этом вопросе. 

    • _sg_
      22 декабря 2020, 18:16
      Андрей К, 
      хотел спросить про с++.
      Вы на каком С++ работаете, какой компилятор ?
      Я хотел постепенно вернуться на C++.
      Посмотрел интернет на эту тему, — масса всякой всячины.
      С++ и Qt, С++ и Boost. Компиляторов разных до хрена.
      Какой оптимальный набор средств для среднего уровня?
      На STL раньше работал, так что вспомнить точно смогу.
      А вот остальное, что-то все незнакомым кажется.
  • Extred
    18 декабря 2020, 18:33
    Тимофей, здравствуйте!
    У нас как раз есть маркетдата в формате пушистого JSON: https://alor.dev/docs
    А котировки с задержкой в 15+ минут можно получать вообще без авторизации.

    Да и в целом готовы помочь)
      • Extred
        18 декабря 2020, 20:25
        Тимофей Мартынов, прям по количеству пока не режем. Но если от кого-то очень много запросов, то снижаем приоритет обработки.
  • swerg
    03 января 2021, 16:42
    Главное  в этом деле внимательно читать договора с поставщиками данных относительно пунктов о нераспространении информации.

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

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