Михаил Шардин
Михаил Шардин личный блог
18 ноября 2025, 05:02

Российская алготорговля - это не рынок, а зоопарк API, а FinLabPy - единственный волк

В последнее время я активно занимаюсь автоматизацией торговли и знакомлюсь с разными решениями, два раза летал на конференции, познакомился с интересными людьми. На этом фоне я наткнулся на open-source проект cia76/FinLabPy, о котором уже давно слышал, но никогда не разбирался подробно.

Российская алготорговля переживает странный период: возможности растут, но стандартизации как будто не существует. Брокеры выпускают свои API, но каждый из них живёт в отдельной вселенной — со своим обозначением тикеров, задержками и внезапными отключениями.

Про проблемы алготорговли на Московской бирже почти не пишут, хотя есть мнение что 60% оборота биржи создаётся роботами. А вот автор этого проекта Игорь Чечет на своём вебинаре рассказывает о том с какими проблемами может столкнуться частный инвестор, когда приходит в алгоритмическую среду.

Начну с главного — какую вообще проблему решает FinLabPy?

Российская алготорговля - это не рынок, а зоопарк API, а FinLabPy - единственный волк

Что такое FinLabPy и какую проблему он решает

cia76/FinLabPy — это унифицированная платформа для анализа рынков, прототипирования торговых идей, тестирования стратегий и запуска автоторговли через нескольких российских брокеров.

Необходимость создания такой библиотеки возникла потому что российские брокеры реализовали API «каждый в меру своих возможностей». Несколько примеров:

  • Финам: может самостоятельно отваливать подписки.

  • Т-Инвест: присылает сделки пачками и с задержкой; бары иногда запаздывают на 2–3 минуты.

  • Алор: любит перезагружать сервер прямо во время торгов.

  • QUIK: использует свою экзотическую систему тикеров вида TQBR.SBER.

У каждого своя спецификация данных, свои ограничения и свои «фичи», которые на деле превращаются в головную боль.

FinLabPy по словам его создателя забирает всю эту боль себе: переподключения, нормализация данных, логирование, кэширование, обработка ошибок, единые тикеры — всё это зашито в open‑source библиотеке.

Архитектура: три уровня, которые упрощают жизнь разработчику

FinLabPy устроена на трёх уровнях что меня удивило:

  1. Нижний слой: нативные API брокеров.
    REST, WebSocket, GRPC — всё, что брокер даёт.

  2. Средний слой: Python‑обёртки.
    Отдельные проекты под каждого брокера:

    • AlorPy

    • FinamPy

    • QuikPy

    • TinvestPy (Т‑Инвест)

    • (в работе) обёртка для БКС

  3. Верхний слой: FinLabPy
    Единый интерфейс, единая модель данных, единая логика. При этом доступ к «уникальным» функциям конкретного брокера сохраняется:
    FinLabPy → provider.provider → уникальные методы обёртки.

Вообще меня порадовало, что внутри нет самодельных велосипедов

Технологический стек FinLabPy

Автор сознательно взял лучшие решения рынка и встроил их в экосистему. Никакого изобретения велосипеда.

Основные элементы:

  • Python

  • Backtrader — тестирование и автоторговля

  • TA‑Lib — более 200 индикаторов

  • Pandas и NumPy

  • TradingView Lightweight Charts — графики

  • aiogram — Telegram‑боты

  • Jupyter Notebook — исследования

На своём стриме автор поднимает и другие вопросы, например где запускать торговых роботов?

Только на VPS под Linux (Debian/Ubuntu). Причины:

  • стабильный интернет,

  • нет NAT, DHCP и прочих «домашних» сюрпризов,

  • нет DPI и странных блокировок провайдеров,

  • скорость соединения «сервер → брокер» всегда выше.

Стоимость VPS: 150–400 рублей в месяц.

Кэширование, спецификации тикеров и работа с расписаниями

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

Кэширование данных. Чтобы:

  • уменьшить количество запросов к API брокера;

  • ускорить прогон стратегий;

  • обходить лимиты (100 запросов в минуту, данные по 1 дню и т. д.).

Кэш хранится в локальных файлах и пополняется пошагово (инкрементально).

Российская алготорговля - это не рынок, а зоопарк API, а FinLabPy - единственный волк

Спецификации инструментов. Отдельно кэшируются:

  • шаг цены,

  • минимальный лот,

  • доступная история свечей (у разных брокеров — разная),

  • прочие параметры.

Есть отдельный модуль для работы с расписаниями Московской биржи.
Стратегия всегда знает, когда открытие/закрытие сессии, какая сейчас стадия торгов, и может корректно обрабатывать данные.

Telegram-интеграции и мультиброкерская работа

Меня, работающего с несколькими брокерам и, особенно это зацепило. У автора всё это сведено в слой — «мультиброкерский пакет», где есть готовые Telegram‑боты:

  • сводка по всем счетам,

  • баланс,

  • открытые позиции,

  • уведомления.

Используется aiogram, поддерживается и Discord.

Зачем мультиброкерность?

  • запуск одной стратегии на нескольких брокерах;

  • диверсификация инфраструктурных рисков;

  • удобство тестирования;

  • возможность легко «мигрировать» между брокерами.

Переключение брокера = изменение параметра в конфиге.

Backtrader: стандарт де-факто, но с оговорками

Автор прямо говорит, что Backtrader — мощный инструмент, но он заброшен. В планах:

  • либо создать собственный форк и привести архитектуру в порядок,

  • либо полностью переписать движок,

  • но сохранить совместимость со всеми существующими стратегиями.

До создания шаблона я тоже пытался разработать собственный GUI для Backtrader — простой интерфейс. Но проект особо не взлетел, хотя это и была попытка создать удобный шаблон, который каждый сможет расширять под себя.

Веб-интерфейс, gRPC и клиент-серверная архитектура

Логическим продолжением разговора стала архитектура будущей версии. Автор явно движется к полноценной платформе. Планы развития со слов Игоря выглядят так:

Веб‑интерфейс. Для визуализации, анализа и, возможно, полноценной работы с роботами. Примерно как «домашний терминал».

gRPC. FinLabPy + роботы работают на VPS (сервер), а аналитика и управление — с локального ПК через gRPC‑клиент. Это даст:

  • безопасность,

  • скорость,

  • возможность разнести вычисления и интерфейс.

Из трёх часов стрима я отметил для себя несколько рекомендаций.

Практические советы разработчикам

Игорь на стриме регулярно подчёркивает несколько вещей:

  1. Не изобретайте велосипеды.
    TradingView для графиков, TA‑Lib для индикаторов, Backtrader для торговли — всё уже существует.

  2. Запускайте роботов только на VPS под Linux.

  3. Используйте подробное логирование (DEBUG). Особенно в период отладки подписок и торговых операций.

  4. Помните: унификация ограничена возможностями «самого слабого» брокера.
    Если нужны уникальные функции — используйте методы конкретной обёртки напрямую.

Немного юридических моментов

Не обошлось и без юридических деталей — неожиданный, но важный момент, который автор пояснил. Автор планирует сертифицировать FinLabPy в реестре российского ПО Минцифры.
Это нужно:

  1. для защиты авторских прав;

  2. для потенциальной интеграции библиотеки брокерами или биржей.

Но для обычных трейдеров это вроде как никак не меняет ситуацию: проект планируется open-source.

Что пока остаётся «за кадром»

Как человек, который интересуется не только инфраструктурой, но и моделями, я отметил список тем, которые автор пока не стал раскрывать:

  • продвинутые методы бэктестинга (walk-forward, Монте-Карло),

  • управление рисками и портфельные модели,

  • оптимизацию производительности,

  • структуру конфигов,

  • интеграцию LLM / AI в торговые системы.

Фокус шёл именно на инфраструктуру и унификацию.

Итог

Лично я воспринимаю cia76/FinLabPy как один из самых многообещающих open‑source проектов под российскую алготорговлю. Это попытка создать единый стандарт, которого брокеры не смогли (или не захотели) создать сами.

Если вы пишете торговых роботов под российских брокеров — присмотреться к FinLabPy определённо стоит.

Автор: Михаил Шардин
🔗 Моя онлайн‑визитка
📢 Telegram «Умный Дом Инвестора»

18 ноября 2025

46 Комментариев
  • Beach Bunny
    18 ноября 2025, 06:36
    Нуу судя по продаже им курсов за немаленькие дэньги, информации в которых за такие деньги реально МАЛО и в желании продавать железку Raspberry Pi со своей системойб попахивает инфоцыганством или желанием срубить бабла на лопатах.

    QUIK: использует свою экзотическую систему тикеров вида TQBR.SBER.
    Это формат Мосбиржи
      • Shmelik
        18 ноября 2025, 14:42
        Михаил Шардин, вещь-то полезная, но вот сможет-ли автор далее поддерживать этот слой в актуальном состоянии, с учетом того, что и мосбиржа постоянно меняет технические детали, и брокера тоже буду, то это несколько сомнительно.
        • Synthetic
          18 ноября 2025, 15:59
          Shmelik, 
          но вот сможет-ли автор далее поддерживать этот слой в актуальном состоянии, с учетом того, что и мосбиржа постоянно меняет технические детали, и брокера тоже буду, то это несколько сомнительно.

          Лет пять как-то остальное поддерживает.
    • BiggusDickus
      18 ноября 2025, 11:09
      Beach Bunny, борд и тикер. ничо там сложного 
  • Михаил
    18 ноября 2025, 07:42
    Когда вы реально напишите рабочий робот на этой библиотеке, тогда и поговорим. На мой взгляд все такие библиотеки достаточно бессмыслены. Большинству не по силам разобраться в этом. Кому по силам, это все задачка на неделю (о чем автор в принципе и пишет), но это будет ваше личное решение с теми нюансами, которые вам нужны. Например мне не нужна библиотека без типизации, тестов и asyncio, если уж это библиотека на Питоне
    • Synthetic
      18 ноября 2025, 16:08
      Михаил, 
      На мой взгляд все такие библиотеки достаточно бессмыслены.
      ...
      Например мне не нужна библиотека без типизации, тестов и asyncio, если уж это библиотека на Питоне
      Это взаимно. Т.е. получается, что и  Вы, в отличие от И. Чечета,  не нужны никому.
      • Михаил
        18 ноября 2025, 17:01
        Synthetic, честно говоря, мне пофиг нужен я кому-то или нет. А кто такой Чечет, о котором вы пишете?
        • Synthetic
          18 ноября 2025, 17:15
          Михаил, 
          А кто такой Чечет, о котором вы пишете?

          github.com/cia76


          • Михаил
            18 ноября 2025, 17:29
            Synthetic, ну судя по количеству звездочек в его репо не сильно-то он нужен, на фоне попыток явного пиара, телеги и т.д. Мне как-то без этого удалось по больше звездочек собрать. Но желаю ему успехов — на мой взгляд дело не благодарное. Реально рынок узкий (людей занимающиеся алго мало) и в основном это люди достаточно подкованные, чтобы сделать все самим
  • Ilya Kosarev (kimkarus)
    18 ноября 2025, 07:43
    А как же osEngine на C# с открытым кодом?
      • Михаил
        18 ноября 2025, 11:20
        Михаил Шардин, очень странно, учитывая, что две трети постов в разделе алготрейдинга от этих товарищей
          • Михаил
            18 ноября 2025, 14:05
            Михаил Шардин, нет, так как такие штуки не интересуют, но osEngine явно более зрелая, чем ваш вариант
  • T-800
    18 ноября 2025, 08:46
    Иногда проще написать свое, чем разбираться в чужих произведениях. 
    Просто в определенный момент времени можешь упереться в «не верное» решение в чужом произведении и будешь все время обставлять его костылями, в то время как в своем решении можно реализовать как считаешь правильным.
  • Denis
    18 ноября 2025, 11:51

    Проблема всех этих библиотек — что они пишутся под конкретную задачу разработчика, и «доведение напильником» также требует разработчика.
    В таймфремом от 1 мин, все, что нужно — это получить котировки — сохранить их в БД, по триггеру — пересчитать сигналы — сохранить их в БД, из сигналов сгенерировать заявки — скинуть в БД, и уже риск-менеджер из БД разгребает таблицу заявок и принимает решение по тому, что отправить в АПИ, а что игнорировать.

    Но, так писать долго и еще нужно отлаживать — и так никто не делает. Но, в целом, к этому решению подключается, все, что угодно.

  • Prophetic
    18 ноября 2025, 15:48
    Автору промыли мозги и теперь он их другим полощет.
    1. 
    QUIK: использует свою экзотическую систему тикеров вида
    Сами придумали, или подсказал кто? У разных (фактчески) инструментов на разных площадках могут совпадать тикеры (код инструмента). И для точной идентификации инструментов существует «код класса» (тот самый пример с TQBR). Не беритесь утверждать то, в чем не разбираетесь.
    2. Альтернативы не пробовали, но однозначно утверждаете, что «FinLabPy — единственный волк». Ну-ну...
    3. Только на VPS под Linux (Debian/Ubuntu).
    Ага, как же. Зарубите себе на носу: НИКТО и НИКОГДА не сможет Вам гарантировать отсутствие любых видов сбоев. Думаете и хостеров никогда не пропадает интернет (там это немного иначе называется, но обывательсткая суть та же)? Чем Вам не угодил NAT и DHCP вероятно и объяснить не сможете. Ни разу даже не слышал, чтобы у кого-то эти механизмы проблемы вызывали в торговле. 
    Нет DPI? Вы серъезно? Они что трафик мимо РФ до российских провайдеров пускают? И опять же — пока DPI нгикак не влияет на торговлю. А если начнет — то никакой VPS Вас не спасет.
    Скорость Сервер-Брокер. О, да! Это аргумент. Если для Вас так важна скорость — переходите на Plaza II, и забудьте схему «сервер-брокер». Но такого в Вашей шпаргалке конечно же не предусмотрено.

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




      • Sprite
        18 ноября 2025, 20:51
        Михаил Шардин, что-то показания не сходятся ) Так случайно наткнулись или услышали на вебинаре?
      • Prophetic
        19 ноября 2025, 14:50
        Михаил Шардин, 
        1. Я не утверждал, что Вам кто-то заплатил. Но читается Ваш пост именно как реклама.
        2. То, что эту чушь придумали не Вы, а автор проекта, не делает чести ни Вам ни ему. Когда недостатки других систем/проектов высосаны из пальца, то и приведенные преимущества продвигаемого проекта могут оказаться такими же…
    • T-800
      18 ноября 2025, 19:52
      Prophetic, автор праведный алгошник, и это не реклама от него, а его мнение, как должна развиваться эта инфраструктура.

      Интересно было бы послушать его мнение об ОС-Енджин и о ТС-лаб. Михаил?
      • Prophetic
        19 ноября 2025, 14:57
        T-800, если под «автором» Вы подразумеваете автора проекта, то на мой поверхностный взгляд тут все очевидно:
        перечисленные недостатки существующих механизмов и альтернативных решений высосаны из пальца.
        Отсюда следуют два простых вывода:
        1. Преимущества продвигаемого проекта такие же как и недостатки других.
        2. Мнение автора проекта очевидно будет предвзятым, т.к. задача продвинуть свой проект, а не похвалить чужие.
  • Synthetic
    18 ноября 2025, 16:19
     В общем, пост — очередная реклама, на которую должны клюнуть те, кто ничего не понимает, но хочет попробовать.
    Реклама OS Engine  тут многих раздражает. Про Чечета пишут гораздо меньше. Почему бы и Чечета немного не порекламировать? Тем более, что вменяемого open source у нас раз два и обчелся. Почти буквально.
      • Beach Bunny
        18 ноября 2025, 19:58
        Михаил Шардин, у вас просто типическое состояние Неофита.
        Так что это нормально — то что вы пишите об этом, хотя вам не платили.
  • svgr
    18 ноября 2025, 17:26
    Посмотрел эти 2.45. Улучшил своё мнение и представление о Чечете.
    Пусть доделает задуманное, будем пользоваться.
  • Constantine Gr.
    18 ноября 2025, 20:21
    Имхо биржевые протоколы надо использовать — и скорость выше, и брокера легче сменить если что. Минус только один — надо платить за доступ, но там немного. Зато стабильность и надежность в разы выше.
      • Constantine Gr.
        19 ноября 2025, 09:53
        Михаил Шардин, 4000-6000 руб в зависимости от логина. Тут можно посмотреть www.moex.com/s3462

        Ну и есть какие-то дорогие для проф участников, но они нужны только если вы брокер.

        Хотя если HFT делать, то там уже надо брать TWIME и SIMBA и выйдет под 40 тыс руб, но там спецы и алгоритмы на 2 порядка дороже чем все эти расходы :)
  • Sprite
    18 ноября 2025, 20:40
    Это попытка создать единый стандарт, которого брокеры не смогли (или не захотели) создать сами.

    Вы всё перепутали, это никакой не единый стандарт (и вообще не стандарт), а просто нахлобучка в виде самописных коннекторов к бэктрейдеру. Что собственно является разумным и общепринятым подходом, используемым всеми пилителями и более развитых продуктов, коих на рынке есть (OSE, S#, TSLab и т.д.)
      • Sprite
        19 ноября 2025, 04:59
        Михаил Шардин, что значит «ещё два продукта»? Я вроде вписал три наиболее известных, а вообще коннекторов, библиотек индикаторов и рисовалок свечек на гитхабе навалом. Если вам нужны хоть какая-то поддержка и многолетний опыт наступания на грабли, то это не про эту либу, которой нет и года и ноль issues. Хотите побыть бета-тестером — нет проблем, но писать о том что увидели вчера, а родилось оно в апреле и как будто это незаменимое чудо — как-то уже перебор.
          • Sprite
            19 ноября 2025, 14:44
            Михаил Шардин, как вы читаете? Не «понравилось», а «улучшил мнение». Допустим, по шкале от 0 до 100 с -10 до -8. И я не про угодить, а про то, что вы пишете про какого-то единственного волка, похоже, будучи вообще не в теме.
              • Sprite
                19 ноября 2025, 15:26
                Михаил Шардин, не мы говорим, а вы. Сначала вы придумали проблему стандартизации, а потом на базе поделки с ноль юзеров и ноль собственного опыта работы с ней успешно эту проблему осветили.
                  • Sprite
                    19 ноября 2025, 18:34
                    Михаил Шардин, знаете, я думаю, что писать стоит не для того, чтобы внести свой вклад в кучу мусора из коего последнее время состоит этот раздел. Если ваша единственная задача — это искать темы и выдавать на них статьи с некоей периодичностью, да ещё вы за это и денег не берете, то это печально и лучше бы брали. Имхо, так хоть как-то можно было бы оправдать потерю времени на всякую хрень.
  • SmallCKYHC
    20 ноября 2025, 10:09
    Мельком глянул код (смотрел Т-шку):


    # Получаем портфель по счету
    for position in response.positions: # Пробегаемся по всем активным позициям счета
    symbol = self._get_symbol_info(figi=position.figi) # Спецификация тикера по figi

    Смотрим офф. документацию Т-шки:

    Обратите внимание: FIGI, присваемые в Т-Инвестициях, не всегда совпадают с международным классификатором. Это устаревший параметр, который не рекомендуется использовать. Используйте uid — уникальный идентификатор в формате uuid.


    Вопрос — зачем писать библиотеку на deprecated-идентификаторах?

    Это то, что ищется бросается в глаза за 30-40 сек.
    Как идея — может быть, как чужой пет для реального использования — вряд ли.

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

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