Блог им. empenoso
В последнее время я активно занимаюсь автоматизацией торговли и знакомлюсь с разными решениями, два раза летал на конференции, познакомился с интересными людьми. На этом фоне я наткнулся на open-source проект cia76/FinLabPy, о котором уже давно слышал, но никогда не разбирался подробно.
Российская алготорговля переживает странный период: возможности растут, но стандартизации как будто не существует. Брокеры выпускают свои API, но каждый из них живёт в отдельной вселенной — со своим обозначением тикеров, задержками и внезапными отключениями.
Про проблемы алготорговли на Московской бирже почти не пишут, хотя есть мнение что 60% оборота биржи создаётся роботами. А вот автор этого проекта Игорь Чечет на своём вебинаре рассказывает о том с какими проблемами может столкнуться частный инвестор, когда приходит в алгоритмическую среду.
Начну с главного — какую вообще проблему решает FinLabPy?

cia76/FinLabPy — это унифицированная платформа для анализа рынков, прототипирования торговых идей, тестирования стратегий и запуска автоторговли через нескольких российских брокеров.
Необходимость создания такой библиотеки возникла потому что российские брокеры реализовали API «каждый в меру своих возможностей». Несколько примеров:
Финам: может самостоятельно отваливать подписки.
Т-Инвест: присылает сделки пачками и с задержкой; бары иногда запаздывают на 2–3 минуты.
Алор: любит перезагружать сервер прямо во время торгов.
QUIK: использует свою экзотическую систему тикеров вида TQBR.SBER.
У каждого своя спецификация данных, свои ограничения и свои «фичи», которые на деле превращаются в головную боль.
FinLabPy по словам его создателя забирает всю эту боль себе: переподключения, нормализация данных, логирование, кэширование, обработка ошибок, единые тикеры — всё это зашито в open‑source библиотеке.
FinLabPy устроена на трёх уровнях что меня удивило:
Нижний слой: нативные API брокеров.
REST, WebSocket, GRPC — всё, что брокер даёт.
Средний слой: Python‑обёртки.
Отдельные проекты под каждого брокера:
AlorPy
FinamPy
QuikPy
TinvestPy (Т‑Инвест)
(в работе) обёртка для БКС
Верхний слой: FinLabPy
Единый интерфейс, единая модель данных, единая логика. При этом доступ к «уникальным» функциям конкретного брокера сохраняется:
FinLabPy → provider.provider → уникальные методы обёртки.
Вообще меня порадовало, что внутри нет самодельных велосипедов
Автор сознательно взял лучшие решения рынка и встроил их в экосистему. Никакого изобретения велосипеда.
Основные элементы:
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 дню и т. д.).
Кэш хранится в локальных файлах и пополняется пошагово (инкрементально).

Спецификации инструментов. Отдельно кэшируются:
шаг цены,
минимальный лот,
доступная история свечей (у разных брокеров — разная),
прочие параметры.
Есть отдельный модуль для работы с расписаниями Московской биржи.
Стратегия всегда знает, когда открытие/закрытие сессии, какая сейчас стадия торгов, и может корректно обрабатывать данные.
Меня, работающего с несколькими брокерам и, особенно это зацепило. У автора всё это сведено в слой — «мультиброкерский пакет», где есть готовые Telegram‑боты:
сводка по всем счетам,
баланс,
открытые позиции,
уведомления.
Используется aiogram, поддерживается и Discord.
запуск одной стратегии на нескольких брокерах;
диверсификация инфраструктурных рисков;
удобство тестирования;
возможность легко «мигрировать» между брокерами.
Переключение брокера = изменение параметра в конфиге.
Автор прямо говорит, что Backtrader — мощный инструмент, но он заброшен. В планах:
либо создать собственный форк и привести архитектуру в порядок,
либо полностью переписать движок,
но сохранить совместимость со всеми существующими стратегиями.
До создания шаблона я тоже пытался разработать собственный GUI для Backtrader — простой интерфейс. Но проект особо не взлетел, хотя это и была попытка создать удобный шаблон, который каждый сможет расширять под себя.
Логическим продолжением разговора стала архитектура будущей версии. Автор явно движется к полноценной платформе. Планы развития со слов Игоря выглядят так:
Веб‑интерфейс. Для визуализации, анализа и, возможно, полноценной работы с роботами. Примерно как «домашний терминал».
gRPC. FinLabPy + роботы работают на VPS (сервер), а аналитика и управление — с локального ПК через gRPC‑клиент. Это даст:
безопасность,
скорость,
возможность разнести вычисления и интерфейс.
Из трёх часов стрима я отметил для себя несколько рекомендаций.
Игорь на стриме регулярно подчёркивает несколько вещей:
Не изобретайте велосипеды.
TradingView для графиков, TA‑Lib для индикаторов, Backtrader для торговли — всё уже существует.
Запускайте роботов только на VPS под Linux.
Используйте подробное логирование (DEBUG). Особенно в период отладки подписок и торговых операций.
Помните: унификация ограничена возможностями «самого слабого» брокера.
Если нужны уникальные функции — используйте методы конкретной обёртки напрямую.
Не обошлось и без юридических деталей — неожиданный, но важный момент, который автор пояснил. Автор планирует сертифицировать FinLabPy в реестре российского ПО Минцифры.
Это нужно:
для защиты авторских прав;
для потенциальной интеграции библиотеки брокерами или биржей.
Но для обычных трейдеров это вроде как никак не меняет ситуацию: проект планируется open-source.
Как человек, который интересуется не только инфраструктурой, но и моделями, я отметил список тем, которые автор пока не стал раскрывать:
продвинутые методы бэктестинга (walk-forward, Монте-Карло),
управление рисками и портфельные модели,
оптимизацию производительности,
структуру конфигов,
интеграцию LLM / AI в торговые системы.
Фокус шёл именно на инфраструктуру и унификацию.
Лично я воспринимаю cia76/FinLabPy как один из самых многообещающих open‑source проектов под российскую алготорговлю. Это попытка создать единый стандарт, которого брокеры не смогли (или не захотели) создать сами.
Если вы пишете торговых роботов под российских брокеров — присмотреться к FinLabPy определённо стоит.
Автор: Михаил Шардин
🔗 Моя онлайн‑визитка
📢 Telegram «Умный Дом Инвестора»
18 ноября 2025
Это формат Мосбиржи
Лет пять как-то остальное поддерживает.
github.com/cia76
Просто в определенный момент времени можешь упереться в «не верное» решение в чужом произведении и будешь все время обставлять его костылями, в то время как в своем решении можно реализовать как считаешь правильным.
Проблема всех этих библиотек — что они пишутся под конкретную задачу разработчика, и «доведение напильником» также требует разработчика.
В таймфремом от 1 мин, все, что нужно — это получить котировки — сохранить их в БД, по триггеру — пересчитать сигналы — сохранить их в БД, из сигналов сгенерировать заявки — скинуть в БД, и уже риск-менеджер из БД разгребает таблицу заявок и принимает решение по тому, что отправить в АПИ, а что игнорировать.
Но, так писать долго и еще нужно отлаживать — и так никто не делает. Но, в целом, к этому решению подключается, все, что угодно.
1. Сами придумали, или подсказал кто? У разных (фактчески) инструментов на разных площадках могут совпадать тикеры (код инструмента). И для точной идентификации инструментов существует «код класса» (тот самый пример с TQBR). Не беритесь утверждать то, в чем не разбираетесь.
2. Альтернативы не пробовали, но однозначно утверждаете, что «FinLabPy — единственный волк». Ну-ну...
3. Только на VPS под Linux (Debian/Ubuntu).
Ага, как же. Зарубите себе на носу: НИКТО и НИКОГДА не сможет Вам гарантировать отсутствие любых видов сбоев. Думаете и хостеров никогда не пропадает интернет (там это немного иначе называется, но обывательсткая суть та же)? Чем Вам не угодил NAT и DHCP вероятно и объяснить не сможете. Ни разу даже не слышал, чтобы у кого-то эти механизмы проблемы вызывали в торговле.
Нет DPI? Вы серъезно? Они что трафик мимо РФ до российских провайдеров пускают? И опять же — пока DPI нгикак не влияет на торговлю. А если начнет — то никакой VPS Вас не спасет.
Скорость Сервер-Брокер. О, да! Это аргумент. Если для Вас так важна скорость — переходите на Plaza II, и забудьте схему «сервер-брокер». Но такого в Вашей шпаргалке конечно же не предусмотрено.
В общем, пост — очередная реклама, на которую должны клюнуть те, кто ничего не понимает, но хочет попробовать.
И написал я его не потому что мне заплатили, а потому что написал про open source продукт. Открытый
1. Я не утверждал, что Вам кто-то заплатил. Но читается Ваш пост именно как реклама.
2. То, что эту чушь придумали не Вы, а автор проекта, не делает чести ни Вам ни ему. Когда недостатки других систем/проектов высосаны из пальца, то и приведенные преимущества продвигаемого проекта могут оказаться такими же…
Интересно было бы послушать его мнение об ОС-Енджин и о ТС-лаб. Михаил?
перечисленные недостатки существующих механизмов и альтернативных решений высосаны из пальца.
Отсюда следуют два простых вывода:
1. Преимущества продвигаемого проекта такие же как и недостатки других.
2. Мнение автора проекта очевидно будет предвзятым, т.к. задача продвинуть свой проект, а не похвалить чужие.
Так что это нормально — то что вы пишите об этом, хотя вам не платили.
Пусть доделает задуманное, будем пользоваться.
Ну и есть какие-то дорогие для проф участников, но они нужны только если вы брокер.
Хотя если HFT делать, то там уже надо брать TWIME и SIMBA и выйдет под 40 тыс руб, но там спецы и алгоритмы на 2 порядка дороже чем все эти расходы :)
Вы всё перепутали, это никакой не единый стандарт (и вообще не стандарт), а просто нахлобучка в виде самописных коннекторов к бэктрейдеру. Что собственно является разумным и общепринятым подходом, используемым всеми пилителями и более развитых продуктов, коих на рынке есть (OSE, S#, TSLab и т.д.)
Sprite, а человеку выше понравилось: smart-lab.ru/blog/1231332.php#comment18837225
Всем не угодить
# Получаем портфель по счету
for position in response.positions: # Пробегаемся по всем активным позициям счета
symbol = self._get_symbol_info(figi=position.figi) # Спецификация тикера по figi
Смотрим офф. документацию Т-шки:
Обратите внимание: FIGI, присваемые в Т-Инвестициях, не всегда совпадают с международным классификатором. Это устаревший параметр, который не рекомендуется использовать. Используйте uid — уникальный идентификатор в формате uuid.
Вопрос — зачем писать библиотеку на deprecated-идентификаторах?
Это то, что ищется бросается в глаза за 30-40 сек.
Как идея — может быть, как чужой пет для реального использования — вряд ли.