Development торгового бота с Telegram-интерфейсом управления
Telegram как интерфейс управления торговым ботом — прагматичный выбор для трейдеров, которые не хотят открывать браузер для каждой проверки. Push-уведомления о сделках, быстрые команды для управления, статус одним сообщением — всё в одном приложении, которое и так открыто весь день.
Architecture интеграции
Telegram-интерфейс — это отдельный слой поверх trading core. Bot API взаимодействует с Telegram серверами, получает команды от пользователя и отправляет уведомления. Trading core остаётся независимым.
Trading Bot Core
↕ (internal API / message queue)
Telegram Bot Service
↕ (HTTPS polling / webhook)
Telegram Bot API
↕
Telegram App (пользователь)
Webhook vs Long Polling: для продакшена — webhook. Telegram сам отправляет updates на ваш endpoint, минимальная задержка. Long polling проще в dev (не нужен публичный IP), но гоняет постоянные HTTP-запросы.
Библиотеки: python-telegram-bot (Python, asyncio-native), node-telegram-bot-api (Node.js), telebot (Python, проще, меньше возможностей).
Команды и сценарии использования
Информационные команды
/status — текущее состояние бота (running/stopped, uptime)
/positions — открытые позиции с unrealized PnL
/balance — баланс по биржам
/pnl — P&L за день/неделю/месяц
/trades — последние 10 сделок
/stats — общая статистика (win rate, Sharpe, max drawdown)
Управляющие команды
/pause — приостановить открытие новых позиций
/resume — возобновить торговлю
/stop — остановить бота (не закрывает позиции)
/close_all — закрыть все позиции (требует подтверждения)
/set_risk <value> — изменить параметр риска
Алерты и уведомления
Это главная ценность Telegram-интерфейса — push-уведомления без опроса UI:
- Открытие/закрытие позиции с деталями сделки
- Достижение take-profit или stop-loss
- Аномалии: аномальный slippage, отклонённый ордер
- Технические события: потеря соединения с биржей, ошибка API
- Дневной отчёт P&L в заданное время
Безопасность Telegram-бота
Telegram — не самый безопасный канал для управления финансовой системой. Минимальный контроль доступа:
User ID whitelist: бот отвечает только на сообщения от pre-approved user IDs. Все остальные игнорируются или получают отказ. User ID в Telegram постоянный и не меняется.
Confirmation для деструктивных действий: команда /close_all должна отвечать inline keyboard с кнопками «Подтвердить» и «Отмена». Случайная отправка команды не должна сразу закрыть позиции.
Команды только для чтения vs управляющие: разделить права, если несколько пользователей. Один может смотреть статус, другой — управлять.
Не хранить секреты в чате: никаких API ключей, паролей в переписке. Telegram чаты не шифруются на уровне сервера.
Форматирование сообщений
Telegram поддерживает Markdown и HTML разметку. Для торговых данных HTML удобнее — меньше экранирования:
<b>Новая позиция открыта</b>
📊 BTC/USDT LONG
💰 Размер: 0.1 BTC
📈 Цена входа: $67,450
🎯 TP: $70,000 (+3.78%)
🛑 SL: $65,000 (-3.64%)
Биржа: Binance Futures
Стратегия: Trend Following
Inline keyboard кнопки под сообщением позволяют быстро действовать: «Закрыть позицию», «Перенести SL», «Показать детали».
Реализация notification pipeline
При активной торговле уведомлений может быть много. Нужна приоритизация:
| Приоритет | Тип события | Задержка |
|---|---|---|
| Критический | Ошибка подключения, аварийная остановка | Немедленно |
| Высокий | Открытие/закрытие позиции, SL сработал | Немедленно |
| Средний | Частичное исполнение, изменение ордера | Немедленно |
| Низкий | Дневная статистика, heartbeat | По расписанию |
Rate limiting от Telegram: не более 30 сообщений в секунду в один чат. При высокочастотной торговле агрегируйте события в пачки.
Telegram-интерфейс — не замена полноценному UI, но отличный канал для мониторинга и быстрого реагирования без привязки к рабочему столу.







