Блог им. empenoso

Российская алготорговля - это не рынок, а зоопарк 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

4.8К | ★15
46 комментариев
Нуу судя по продаже им курсов за немаленькие дэньги, информации в которых за такие деньги реально МАЛО и в желании продавать железку Raspberry Pi со своей системойб попахивает инфоцыганством или желанием срубить бабла на лопатах.

QUIK: использует свою экзотическую систему тикеров вида TQBR.SBER.
Это формат Мосбиржи
avatar
Beach Bunny, я только про открытый github.com/cia76/FinLabPy написал
Михаил Шардин, вещь-то полезная, но вот сможет-ли автор далее поддерживать этот слой в актуальном состоянии, с учетом того, что и мосбиржа постоянно меняет технические детали, и брокера тоже буду, то это несколько сомнительно.
avatar
Shmelik, 
но вот сможет-ли автор далее поддерживать этот слой в актуальном состоянии, с учетом того, что и мосбиржа постоянно меняет технические детали, и брокера тоже буду, то это несколько сомнительно.

Лет пять как-то остальное поддерживает.
avatar
Beach Bunny, борд и тикер. ничо там сложного 
avatar
Когда вы реально напишите рабочий робот на этой библиотеке, тогда и поговорим. На мой взгляд все такие библиотеки достаточно бессмыслены. Большинству не по силам разобраться в этом. Кому по силам, это все задачка на неделю (о чем автор в принципе и пишет), но это будет ваше личное решение с теми нюансами, которые вам нужны. Например мне не нужна библиотека без типизации, тестов и asyncio, если уж это библиотека на Питоне
avatar
Михаил, 
На мой взгляд все такие библиотеки достаточно бессмыслены.
...
Например мне не нужна библиотека без типизации, тестов и asyncio, если уж это библиотека на Питоне
Это взаимно. Т.е. получается, что и  Вы, в отличие от И. Чечета,  не нужны никому.
avatar
Synthetic, честно говоря, мне пофиг нужен я кому-то или нет. А кто такой Чечет, о котором вы пишете?
avatar
Михаил, 
А кто такой Чечет, о котором вы пишете?

github.com/cia76


avatar
Synthetic, ну судя по количеству звездочек в его репо не сильно-то он нужен, на фоне попыток явного пиара, телеги и т.д. Мне как-то без этого удалось по больше звездочек собрать. Но желаю ему успехов — на мой взгляд дело не благодарное. Реально рынок узкий (людей занимающиеся алго мало) и в основном это люди достаточно подкованные, чтобы сделать все самим
avatar
А как же osEngine на C# с открытым кодом?
avatar
Ilya Kosarev (kimkarus), osEngine лично сам не пробовал ничего сказать не могу
Михаил Шардин, очень странно, учитывая, что две трети постов в разделе алготрейдинга от этих товарищей
avatar
Михаил, а вы пробовали?
Михаил Шардин, нет, так как такие штуки не интересуют, но osEngine явно более зрелая, чем ваш вариант
avatar
Иногда проще написать свое, чем разбираться в чужих произведениях. 
Просто в определенный момент времени можешь упереться в «не верное» решение в чужом произведении и будешь все время обставлять его костылями, в то время как в своем решении можно реализовать как считаешь правильным.
avatar

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

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

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

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




avatar
Prophetic, этот пост написан на основании вебинара Чечета. Не я придумал это.

И написал я его не потому что мне заплатили, а потому что написал про open source продукт. Открытый
Михаил Шардин, что-то показания не сходятся ) Так случайно наткнулись или услышали на вебинаре?
avatar
Sprite, этот пост написан на основании вебинара посвященного этой библиотеке, который проводил автор библиотеки
Михаил Шардин, 
1. Я не утверждал, что Вам кто-то заплатил. Но читается Ваш пост именно как реклама.
2. То, что эту чушь придумали не Вы, а автор проекта, не делает чести ни Вам ни ему. Когда недостатки других систем/проектов высосаны из пальца, то и приведенные преимущества продвигаемого проекта могут оказаться такими же…
avatar
Prophetic, автор праведный алгошник, и это не реклама от него, а его мнение, как должна развиваться эта инфраструктура.

Интересно было бы послушать его мнение об ОС-Енджин и о ТС-лаб. Михаил?
avatar
T-800, у меня нет диалога с ним
T-800, если под «автором» Вы подразумеваете автора проекта, то на мой поверхностный взгляд тут все очевидно:
перечисленные недостатки существующих механизмов и альтернативных решений высосаны из пальца.
Отсюда следуют два простых вывода:
1. Преимущества продвигаемого проекта такие же как и недостатки других.
2. Мнение автора проекта очевидно будет предвзятым, т.к. задача продвинуть свой проект, а не похвалить чужие.
avatar
 В общем, пост — очередная реклама, на которую должны клюнуть те, кто ничего не понимает, но хочет попробовать.
Реклама OS Engine  тут многих раздражает. Про Чечета пишут гораздо меньше. Почему бы и Чечета немного не порекламировать? Тем более, что вменяемого open source у нас раз два и обчелся. Почти буквально.
avatar
Synthetic, насчёт этого к сожалению согласен
Synthetic, насчёт рекламы не согласен потому что мне никто ничего не платил
Михаил Шардин, у вас просто типическое состояние Неофита.
Так что это нормально — то что вы пишите об этом, хотя вам не платили.
avatar
Посмотрел эти 2.45. Улучшил своё мнение и представление о Чечете.
Пусть доделает задуманное, будем пользоваться.
avatar
Имхо биржевые протоколы надо использовать — и скорость выше, и брокера легче сменить если что. Минус только один — надо платить за доступ, но там немного. Зато стабильность и надежность в разы выше.
avatar
Constantine Gr., и сколько платить?
Михаил Шардин, 4000-6000 руб в зависимости от логина. Тут можно посмотреть www.moex.com/s3462

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

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

Вы всё перепутали, это никакой не единый стандарт (и вообще не стандарт), а просто нахлобучка в виде самописных коннекторов к бэктрейдеру. Что собственно является разумным и общепринятым подходом, используемым всеми пилителями и более развитых продуктов, коих на рынке есть (OSE, S#, TSLab и т.д.)
avatar
Sprite, и тд то есть эта библиотека и ещё два продукта?
Михаил Шардин, что значит «ещё два продукта»? Я вроде вписал три наиболее известных, а вообще коннекторов, библиотек индикаторов и рисовалок свечек на гитхабе навалом. Если вам нужны хоть какая-то поддержка и многолетний опыт наступания на грабли, то это не про эту либу, которой нет и года и ноль issues. Хотите побыть бета-тестером — нет проблем, но писать о том что увидели вчера, а родилось оно в апреле и как будто это незаменимое чудо — как-то уже перебор.
avatar

Sprite, а человеку выше понравилось: smart-lab.ru/blog/1231332.php#comment18837225

Всем не угодить

Михаил Шардин, как вы читаете? Не «понравилось», а «улучшил мнение». Допустим, по шкале от 0 до 100 с -10 до -8. И я не про угодить, а про то, что вы пишете про какого-то единственного волка, похоже, будучи вообще не в теме.
avatar
Sprite, всё-таки мы говорим про текст и заголовок здесь сделан для привлечения внимания
Михаил Шардин, не мы говорим, а вы. Сначала вы придумали проблему стандартизации, а потом на базе поделки с ноль юзеров и ноль собственного опыта работы с ней успешно эту проблему осветили.
avatar
Sprite, знаете более актуальные проблемы около темы, которые могут быть интересны широкому кругу людей?
Михаил Шардин, знаете, я думаю, что писать стоит не для того, чтобы внести свой вклад в кучу мусора из коего последнее время состоит этот раздел. Если ваша единственная задача — это искать темы и выдавать на них статьи с некоей периодичностью, да ещё вы за это и денег не берете, то это печально и лучше бы брали. Имхо, так хоть как-то можно было бы оправдать потерю времени на всякую хрень.
avatar
Мельком глянул код (смотрел Т-шку):


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

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

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


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

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

Читайте на SMART-LAB:
Фото
USD/CAD: Продавцы воспользовались пятничным фиксингом, намечая новые цели для снижения?
Котировки USD/CAD тестируют на прорыв не только восходящий канал, но и уровень поддержки 1.3888, после пробоя которого может начаться более...
Фото
Смотрим какая на сегодняшний день доходность у юаневых облигаций и как она изменилась за последний месяц
Фото
Лазеры: первый год в составе «Софтлайн»
Ведущий российский производитель лазеров VPG LaserONE завершил первый год в составе Группы – год интеграции и создания прочного фундамента для...

теги блога Михаил Шардин

....все тэги



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