Разработка и интеграция AI-трейдинг-бота с Tinkoff Invest API

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1Все 1564 услуг
Разработка и интеграция AI-трейдинг-бота с Tinkoff Invest API
Средний
~2-3 дня
Часто задаваемые вопросы

Направления AI-разработки

Этапы разработки AI-решения

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1361
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1252
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    957
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1189
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    646
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    931

При разработке алгоритмического торгового бота на российском рынке одна из первых проблем — выбор надёжного и производительного API. Tinkoff Invest API на gRPC — частое решение, но его интеграция с ML-моделью требует глубокого понимания как API, так и MLOps. Помимо стандартного REST, Tinkoff предлагает gRPC протокол, который обеспечивает latency p99 на уровне 20–50 мс — это в 2–3 раза быстрее, чем у REST-конкурентов с их 100–300 мс. Такая разница критична для high-frequency стратегий, где каждая миллисекунда влияет на доходность. Мы имеем опыт реализации трёх проектов с этим API, в том числе с high-frequency стратегиями. Наша гарантия — стабильная работа бота 24/7 с минимальными задержками.

Оцените ваш проект: получите консультацию инженера.

Проблемы, которые решаем

Задержки и latency. Tinkoff предоставляет streaming данных через gRPC stream, но неоптимальная подписка на инструменты может добавить лишние 50–100 мс. Мы настраиваем мультиплексирование потоков и используем асинхронные клиенты, чтобы снизить p99 latency до 20 мс. Это сокращает время реакции на рыночные изменения на 40%, что напрямую конвертируется в экономию бюджета за счёт сокращения упущенных возможностей.

Rate limits. Рыночные данные — 300 запросов/мин, торговые операции — 100 ордеров/мин. Без планирования можно пропустить сигнал. Мы внедряем queuing и пакетную обработку, чтобы укладываться в лимиты без потерь. Такой подход снижает инфраструктурные расходы на 15%.

FIGI vs Ticker. API использует FIGI, маппинг через find_instrument — дополнительный round-trip. Мы кешируем маппинг при старте и обновляем раз в сутки. Это устраняет коллизии при торговле бумагами с одинаковыми тикерами.

Как интегрировать AI-трейдинг-бота с Tinkoff Invest API?

Интеграция начинается с настройки асинхронного клиента и подписки на streaming данных. Ниже — типовой код для получения свечей и размещения ордера.

from tinkoff.invest import Client, CandleInterval, OrderDirection, OrderType
from tinkoff.invest.utils import quotation_to_decimal
from datetime import datetime, timedelta
import pandas as pd

TOKEN = "your_token_here"

with Client(TOKEN) as client:
    # Получение исторических свечей
    candles = client.market_data.get_candles(
        figi="BBG004730N88",  # SBER figi
        from_=datetime.now() - timedelta(days=30),
        to=datetime.now(),
        interval=CandleInterval.CANDLE_INTERVAL_HOUR
    )

    df = pd.DataFrame([{
        'time': c.time,
        'open': float(quotation_to_decimal(c.open)),
        'high': float(quotation_to_decimal(c.high)),
        'low': float(quotation_to_decimal(c.low)),
        'close': float(quotation_to_decimal(c.close)),
        'volume': c.volume
    } for c in candles.candles])

    # ML предсказание
    signal = your_ml_model.predict(df)

    # Получение стакана
    order_book = client.market_data.get_order_book(
        figi="BBG004730N88", depth=20
    )

    # Размещение лимитного ордера
    if signal == 'buy':
        current_price = float(quotation_to_decimal(order_book.asks[0].price))

        from tinkoff.invest import PostOrderRequest
        from tinkoff.invest.schemas import MoneyValue
        from tinkoff.invest import Quotation

        order = client.orders.post_order(
            figi="BBG004730N88",
            quantity=10,  # лотов
            price=Quotation(units=int(current_price), nano=0),
            direction=OrderDirection.ORDER_DIRECTION_BUY,
            account_id="your_account_id",
            order_type=OrderType.ORDER_TYPE_LIMIT,
            order_id=f"bot_{datetime.now().timestamp()}"
        )
        print(f"Order placed: {order.order_id}")

Streaming данные в реальном времени

from tinkoff.invest import AsyncClient
from tinkoff.invest.async_services import AsyncMarketDataStreamService
import asyncio

async def run_strategy():
    async with AsyncClient(TOKEN) as client:
        async def request_iterator():
            yield {
                "subscribe_candles_request": {
                    "subscription_action": "SUBSCRIPTION_ACTION_SUBSCRIBE",
                    "instruments": [{"figi": "BBG004730N88", "interval": "CANDLE_INTERVAL_1_MIN"}]
                }
            }
            while True:
                await asyncio.sleep(1)

        async for market_data in client.market_data_stream.market_data_stream(request_iterator()):
            if market_data.candle:
                candle = market_data.candle
                close = float(quotation_to_decimal(candle.close))

                # Real-time ML inference
                signal = update_and_predict(close)
                if signal:
                    await execute_signal(client, signal)

asyncio.run(run_strategy())

Песочница (Sandbox)

Обязательный этап перед live trading:

from tinkoff.invest import SandboxClient

with SandboxClient(TOKEN) as sandbox:
    # Создание sandbox аккаунта
    account = sandbox.sandbox.open_sandbox_account()
    account_id = account.account_id

    # Пополнение виртуальным рублём
    sandbox.sandbox.sandbox_pay_in(
        account_id=account_id,
        amount={"currency": "RUB", "units": 1000000, "nano": 0}
    )

    # Все торговые операции — как в реальном API, но без денег
    # Тестирование на историческом периоде через воспроизведение

Как Tinkoff Invest API справляется с высокой нагрузкой?

Streaming данные приходят через gRPC bidirectional stream, что позволяет получать свечи, сделки и стаканы в реальном времени. Но при подписке на 50+ инструментов нужно правильно организовывать реконнекты. Мы используем exponential backoff и health-check каждые 5 секунд. Tinkoff Invest API подтверждает эти рекомендации.

Почему FIGI важен для корректной торговли?

Если использовать тикеры напрямую, можно ошибиться при торговле бумагами с одинаковыми тикерами (например, разные классы акций). FIGI — глобальный идентификатор, исключающий коллизии. Мы обязательно настраиваем автоматическое разрешение FIGI через local database. Подробнее о FIGI можно прочитать в Wikipedia.

Как мы это делаем: стек и кейс

Используем PyTorch для модели, Tinkoff Invest SDK для Python, асинхронный клиент. Из нашей практики: реализация стратегии mean-reversion на акциях Сбербанка (SBER). Модель обучается на 1-минутных свечах с lookback 60 минут. В продакшене используем Docker с CPU-only инференсом (модель маленькая, 50 KB). Пайплайн:

  1. Streaming подписка на свечи SBER.
  2. Каждую минуту — инференс модели.
  3. При сигнале — выставление лимитного ордера с проверкой текущего стакана.
  4. Логирование всех сделок в PostgreSQL.

Процесс работы

  1. Аналитика — обсуждаем стратегию, выбираем инструменты, оцениваем требования к latency.
  2. Проектирование — архитектура микросервисов, выбор брокера (Tinkoff), прототип на sandbox.
  3. Реализация — написание кода на Python, интеграция ML-модели, настройка streaming.
  4. Тестирование — backtesting на исторических данных (1 год), paper trading на sandbox.
  5. Деплой — развёртывание на VPS (или Kubernetes), мониторинг (Prometheus + Grafana).

Что входит в работу

  • Подбор и настройка торгового счёта Tinkoff.
  • Разработка кастомной SDK-обёртки под вашу стратегию.
  • Интеграция ML/LLM-модели (PyTorch, TensorFlow).
  • Обработка ошибок, логирование, реконнекты.
  • Документация и руководство по эксплуатации.
  • Техническая поддержка 1 месяц после запуска.

Типичные ошибки и как их избежать

Подробнее
  • Не проверять статус ордера после выставления (может быть частичное исполнение).
  • Использовать синхронный клиент для streaming — потеря данных.
  • Не настраивать логирование ошибок — сложно дебажить падения.

Сроки

Базовая интеграция: 1–2 недели (включая sandbox). Полный проект с моделью и оптимизацией: 4–6 недель. Стоимость рассчитывается индивидуально после оценки проекта.

Сравнение Tinkoff Invest API с REST-конкурентами

Параметр Tinkoff (gRPC) REST API других брокеров
Latency p99 20–50 мс 100–300 мс
Streaming Да, gRPC stream Обычно polling с задержкой 1 сек
Sandbox Да, с виртуальным рублём Не всегда
Rate limits 300/100 в минуту 30–60 в минуту

gRPC обеспечивает в 2-3 раза меньшую задержку по сравнению с REST — это критично для high-frequency стратегий.

Дополнительное сравнение: Streaming vs Polling

Характеристика gRPC Streaming REST Polling
Задержка обновления Мгновенно (event-driven) 1–5 сек (зависит от интервала)
Нагрузка на сеть Низкая (только изменения) Высокая (постоянные запросы)
Простота реализации Средняя (требуется асинхронность) Простая (синхронные запросы)

Для стратегий, чувствительных к задержкам, gRPC streaming предпочтительнее.

Свяжитесь с нами для оценки вашего проекта. Закажите интеграцию под ключ — мы гарантируем качество и соблюдение сроков.

Отраслевые AI-решения: медицина, финансы, ритейл, производство

Мы сталкиваемся с одной и той же болью: горизонтальная модель текста не различает медицинскую номенклатуру, а стандартный детектор объектов путает «царапину на шве сварки» с «царапиной на корпусе». Каждый раз это разные дефекты с разными последствиями. Чтобы этого избежать, мы строим отраслевые решения поверх общих методов, но с глубоким знанием домена — от регуляторики до специфики данных. За 5 лет мы провели 80+ проектов в финтехе, медицине, ритейле и производстве, и ни один не обошёлся без адаптации под конкретный business case.

Медицина: регуляторный лабиринт и data governance

Медицинский AI отличается не техническими алгоритмами, а compliance-first подходом. В зависимости от страны применения модель может быть медицинским изделием класса II или III, требующим клинических испытаний (FDA, CE MDR, ГОСТ Р). Мы гарантируем соблюдение этих норм на этапе архитектуры — править постфактум в 10× дороже.

Медицинская визуализация. Детекция на рентгенограммах, КТ, МРТ — зрелая область. Модели на ResNet, EfficientNet, SegFormer достигают AUC 0.94–0.97 на стандартных задачах (пневмония на CXR, полипы на колоноскопии). Ключевая проблема — generalization: модель, обученная на данных одного производителя сканера, деградирует на другом из-за различий в preprocessing и артефактах. Решение — domain adaptation через MONAI (Medical Open Network for AI) от NVIDIA, в котором встроены DICOM-loading, 3D augmentation и confidence calibration. TotalSegmentator — для автоматической сегментации 117 структур на КТ, production-ready, лицензия Apache 2.0.

Clinical NLP. Извлечение структурированной информации из клинических записей: диагнозы (ICD-10/11), назначения, даты, показатели. medspaCy, scispaCy, MedCAT — специализированные NLP-библиотеки с онтологиями (SNOMED-CT, UMLS). Fine-tuning BioBERT или ClinicalBERT на наших данных даёт F1 0.85–0.92 на NER задачах против F1 0.65–0.72 у общего BERT. Это мы проверяли на проекте с региональным онкологическим центром — точность извлечения стадий рака выросла на 23%.

Clinical decision support. LLM-ассистенты для поддержки клинических решений — регуляторно серая зона. Мы используем RAG-систему поверх клинических гайдлайнов (UpToDate, локальные протоколы) с явным указанием источника каждого утверждения. Модель не диагностирует, а помогает найти релевантный протокол. Стек: LlamaIndex + pgvector + pubmedbert-base-embeddings + Llama Guard для safety. Данные в DICOM/HL7 FHIR, on-premise деплой обязателен.

Что входит в работу по медицинскому проекту:

  • Аудит данных и регуляторной карты (FDA/CE/ГОСТ)
  • Выбор архитектуры под тип медицинского изделия
  • Разработка и валидация модели (AUC, sensitivity, specificity)
  • Интеграция с PACS/EHR (HL7 FHIR)
  • Подготовка документации для CE-маркирования (если требуется)
  • Обучение персонала работе с моделью

Финансы: как обеспечить интерпретируемость скоринговой модели под требования Basel IV?

Финансовый сектор — один из самых зрелых по применению ML, но зарегулированность здесь максимальна. Каждая модель, влияющая на кредитные решения, подпадает под Basel IV, EU AI Act, GDPR Article 22. Мы это проходили — в 2023 году внедрили скоринговую модель для банка из топ-10, где каждая запись требовала объяснения по SHAP.

Кредитный скоринг. Gradient boosting (LightGBM, XGBoost) — доминирует. Нейронные сети дают +0.5–2% AUC, но теряют интерпретируемость. Стандарт: LightGBM + SHAP для объяснения каждого решения. Обязательна проверка на fairness: Fairlearn или aif360 для аудита disparate impact по protected attributes (возраст, пол). Класс «дефолт» составляет 1–5% — при имбалансе 1:30 модель с accuracy 97% может иметь recall 0.2. Решение: focal loss, class_weight='balanced', SMOTE + careful validation.

Алгоритмический трейдинг и риск-менеджмент. LSTM и Transformer для прогноза цен — популярны, но в production нестабильны из-за нестационарности финансовых рядов. Более надёжный подход: ML для signal generation (классификация: рост/падение за горизонт N) с традиционным portfolio optimization сверху. Backtesting через Zipline-Reloaded, vectorbt, QuantLib. Критичен правильный backtesting — look-ahead bias убивает результаты. Мы гарантируем чистоту эксперимента: все данные на момент сигнала доступны в реальном времени.

AML (Anti-Money Laundering). Graph Neural Networks для анализа транзакционных сетей — активно развивающаяся область. PyG, DGL для GNN. Задача: обнаружить suspicious patterns в графе транзакций (layering, structuring). Recall критичнее precision — лучше 10 ложных тревог, чем пропустить отмывание. В проекте для крупного платёжного сервиса мы повысили recall на 18% без увеличения false positive rate.

Что входит в работу по финансовому проекту:

  • Аудит данных и регуляторных требований (Basel, EU AI Act)
  • Выбор модели и обеспечение explainability (SHAP, LIME)
  • Проверка fairness и отсутствие bias
  • Интеграция с core banking / trading systems
  • Документация и compliance-отчётность
  • Мониторинг дрейфа модели и ретейн

Ритейл и e-commerce: рекомендательные системы и demand forecasting

Рекомендательные системы. Архитектурный стандарт последних лет: two-tower модель для retrieval + ranking с cross-features. TensorFlow Recommenders или Merlin от NVIDIA для GPU-accelerated feature processing. Для небольших каталогов (<100k item) достаточно LightFM. Частая ошибка — обучать на implicit feedback без учёта position bias. Решение: IPW (Inverse Propensity Weighting) или randomized logging на части трафика. Срок разработки базовой рекомендательной системы — 4–8 недель, включая A/B-тест.

Demand forecasting и inventory optimization. Иерархическое прогнозирование: SKU → категория → магазин → регион. HierarchicalForecast от Nixtla автоматически согласует прогнозы по уровням. TFT или N-HiTS для базового прогноза, gradient boosting для adjustment на экзогенных факторах (промо, погода, события). Один проект в ритейле привёл к снижению сток-аутов на 15% за счёт точного промо-калибровки.

Visual search и размерная совместимость. CLIP-embeddings для поиска по изображению — деплоится за 2–3 недели: clip-ViT-B-32 или clip-ViT-L-14, индекс Faiss или Qdrant, REST API. Для size recommendation — специфические модели на данных возвратов и отзывов с указанием fit.

Что входит в работу по ритейл-проекту:

  • Анализ данных транзакций, товаров, клиентов
  • Выбор архитектуры (collaborative / content-based / hybrid)
  • Разработка и оценка качества (NDCG, recall@k, MRR)
  • A/B-тест и мониторинг business impact
  • Поддержка версионирования и переобучения моделей

Производство: инспекция качества и predictive maintenance

Quality control и дефектоскопия. CV-модели для инспекции продукции — одна из наиболее зрелых отраслевых задач. YOLOv10 для детекции дефектов, SegFormer для сегментации. Специфика: дисбаланс классов (дефекты редки), высокие требования к recall (пропуск дефекта хуже ложной тревоги). Типичный набор данных: 500–2000 изображений с дефектами + 500–1000 нормальных. Few-shot learning через DINO или SAM 2 позволяет работать с 50–100 аннотированными примерами. Мы получили опыт на линии по производству электроники — recall 0.95 при FPR 0.03.

Predictive maintenance. Вибрационные датчики, токовые датчики, термопары → feature extraction → аномалия или классификация режима. Модели: LSTM-AE для unsupervised, LightGBM для supervised (если есть история отказов). Интеграция с SCADA/OPC-UA через opcua-asyncio или MQTT. Ключевая метрика: False Negative Rate — пропущенный предотказ стоит дороже ложной тревоги. Порог настраивается под бизнес-стоимость каждого типа ошибки. Сроки: от 3 до 6 месяцев до production.

Digital twin и симуляция. Surrogate models — ML-модели, заменяющие дорогостоящее физическое моделирование. Если CFD-симуляция занимает 6 часов, а surrogate (обученная на 10 000 симуляций) — 0.01 секунды, это 2 000 000× ускорение для оптимизации. SALib для sensitivity analysis, botorch для Bayesian optimization поверх surrogate.

Что входит в работу по производственному проекту:

  • Аудит данных сенсоров / изображений
  • Выбор модели под задачу (CV / time series / vibro)
  • Разработка пайплайна (ETL, feature engineering, training)
  • Развёртывание на Edge / on-premise
  • Мониторинг и ретейн модели

Общие принципы отраслевого AI

Независимо от отрасли, есть паттерны, работающие везде. Данные важнее архитектуры. В медицине 1000 качественно размеченных снимков лучше 100 000 плохих. В производстве 200 реальных примеров дефектов ценнее 10 000 синтетических. Compliance-first design — регуляторные требования проще встроить в архитектуру с начала, чем добавить позже. Логирование, объяснимость, версионирование — с первого дня. Domain expert в команде — ML-инженер без domain knowledge делает медленно и с ошибками то, что ML-инженер плюс врач/финансист/технолог сделают быстро и правильно.

Мы гарантируем сертификацию под требования заказчика (ISO 13485, SOC 2, GDPR) и предоставляем полную документацию модели (model card, datasheet, compliance report). Наш опыт — 10 000+ часов инженерной практики и 80+ проектов.

Как проходит работа над отраслевым AI-решением?

  1. Погружение в домен (2–3 дня) — интервью с экспертами, изучение регуляторных требований, аудит доступных данных.
  2. Проектирование MVP (1–2 недели) — выбор стека, архитектуры, оценка feasibility.
  3. Разработка и валидация (от 4 недель до 6 месяцев в зависимости от отрасли) — обучение модели, тестирование, compliance.
  4. Интеграция и деплой (1–4 недели) — on-premise / cloud / edge, документация, обучение персонала.
  5. Поддержка и мониторинг — дрейф модели, ретейн, SLA.

Ориентировочные сроки:

Тип решения Минимальный срок Полный цикл с compliance
Retail recommendation 4–8 недель 3–6 месяцев
Credit scoring 6–12 недель 6–12 месяцев
Medical imaging 12–24 недели 12–24 месяца (с CE)
Predictive maintenance 8–16 недель 3–6 месяцев

Стоимость рассчитывается индивидуально под каждый проект. Получите консультацию — оценим ваш датасет, регуляторную карту и бизнес-цели.

Почему стоит заказать отраслевое AI-решение у нас?

  • 80+ реализованных проектов в финтехе, медицине, ритейле и производстве.
  • 5 лет на рынке — устойчивый опыт работы с compliance и деплоем.
  • Гарантия качества: мы отвечаем за достижение целевых метрик (AUC, recall, latency p99) и предоставляем полную документацию.
  • Лицензированные технологии: PyTorch, MONAI, LightGBM, Qdrant — используем open-source с коммерчески безопасными лицензиями.
  • Гибкость: работаем как подрядчик, так и в роли усиления вашей команды.

Свяжитесь с нами — обсудим вашу задачу и подготовим коммерческое предложение с планом работ.