Перейти к содержанию
Документация

Stock Prices

Генератор MP4-видео с анимированными рыночными графиками. Можно запустить из CLI, встроить через Python API или держать постоянно работающего Telegram-бота в Docker или открыть Mini App для сборки запроса кнопками.

MOEX Yahoo Finance Telegram Bot API Python API Docker Compose

Что получится

Короткий MP4-пример реального результата: `SBER` и `LKOH`, стабильная шкала времени, синхронное движение линий и подписей.
Анимированный пример графика SBER и LKOH
GIF-preview того же ролика для быстрых просмотров в окружениях, где видео отключено.

Быстрый старт

Выберите вход, который нужен прямо сейчас. Для постоянного Telegram-бота удобнее Docker; для локальной проверки быстрее CLI.

copy .env.example .env
# Заполните TELEGRAM_BOT_TOKEN в .env
docker compose up -d --build
docker compose ps

После запуска откройте Telegram и отправьте боту /start.

python -m pip install -e .
python -m stock_prices --tickers "SBER|stock|shares" "LKOH|stock|shares" --start_date 2020-01-01 --end_date 2024-12-31 --currency RUB --duration 20 --fps 20

Готовый MP4 появится в animations/.

  /start
  /app
  /shoot
  /shorts
/shorts SBER LKOH за год
/queue

Бот не использует LLM: /app открывает Mini App, /shorts принимает ручной запрос, random и недельный план собираются из тикерной вселенной, а запрос с тикерами ставит в очередь конкретный ролик.

Куда идти дальше

Telegram без перегруза

Хочу Что отправить
Открыть Mini App /app, затем кнопка Открыть Mini App
Открыть меню /start или /menu
Случайная подборка random mixed 1, random mixed 3, random drama 2, random stocks 2
Недельный план plan drama 5 days 2 tickers
Снять ролик по тикерам /shorts SBER LKOH за год
Проверить рендер /queue, статус или кнопка Очередь
Открыть справку /help

Обычные строки вроде LKOH, SBER LKOH 2020 2024 и AAPL global USD shorts тоже работают. Несколько роликов можно отправить одним сообщением: один запрос на строку.

Полный справочник лежит в разделе Telegram-запросы.

Как устроено

flowchart TD
  User["Telegram / CLI / Python API"] --> Request["VideoRequest"]
  Request --> Sources{"Источник данных"}
  Sources --> Moex["MOEX: акции, фьючерсы, валюта"]
  Sources --> Global["Yahoo Finance: акции, ETF, металлы, крипто"]
  Moex --> Dataset["Единый датасет"]
  Global --> Dataset
  Dataset --> Render["Matplotlib renderer"]
  Render --> Video["MP4 через ffmpeg"]
  Video --> Output["Файл или ответ Telegram"]