Автоматическая торговля фьючерсами + AI-контент для Telegram-канала
Система состоит из трёх взаимосвязанных модулей, работающих как единый Telegram-бот с автоматической торговлей криптовалютными фьючерсами на бирже Bybit.
Бот читает торговые сигналы из Telegram-каналов, парсит их через AI (GPT-4o), автоматически открывает и управляет сделками на бирже Bybit, генерирует уникальный контент для публичного канала и монетизирует через подписки и реферальные ссылки.
Владелец бота (трейдер) получает: автоматизацию торговли по сигналам, пассивный доход с публичного канала (реферальная программа Bybit + продажа подписок), полный контроль через Telegram-интерфейс.
Автоматическая торговля фьючерсами на основе сигналов из Telegram-каналов. Полный цикл: чтение → парсинг → валидация → торговля → управление позицией.
Telethon userbot подключается к указанным Telegram-каналам и слушает новые сообщения в реальном времени. Каждое сообщение сохраняется в raw_messages и отправляется в очередь Redis для обработки.
signal:queue для асинхронной обработкиТекст сообщения отправляется в OpenAI GPT-4o с промптом для извлечения торговых параметров. AI возвращает структурированный JSON.
Извлекаемые параметры:
direction — LONG / SHORTpair — торговая пара (BTC/USDT, ETH/USDT)entry_price — цена входа (или диапазон)stop_loss — стоп-лоссtake_profits[] — массив тейк-профитов с процентами закрытияleverage — рекомендуемое плечоconfidence — уверенность AI (0.0 - 1.0)| Операция | Действия на бирже |
|---|---|
| Open (новый сигнал) | Risk check → Transfer SPOT→FUTURES → Set leverage → Market/Limit order → Place SL + TP orders |
| Update SL | Cancel old SL order → Place new SL order |
| Partial Close (TP hit) | Reduce position size → Update remaining contracts |
| Full Close | Close position → Transfer FUTURES→SPOT → Calculate PnL |
| Reconciler (30 сек) | Проверка реального состояния позиций на бирже, синхронизация с DB |
Автоматическая генерация уникального контента для публичного Telegram-канала на основе рыночных данных и результатов торговли.
| Тип | Частота | Описание |
|---|---|---|
| Market Analysis | 2 раза/день | Обзор рынка, ключевые уровни, тренды |
| Trade Results | После профитных сделок | Результаты закрытых сделок с аналитикой |
| News Digest | 1 раз/день | Дайджест крипто-новостей |
Монетизация через продажу доступа к приватному каналу с торговыми сигналами и аналитикой.
PostgreSQL 16 с 10 таблицами. SQLAlchemy 2.0 async ORM + Alembic миграции.
| Таблица | Назначение | Ключевые поля |
|---|---|---|
users |
Пользователи бота | telegram_id, role (owner/subscriber), is_active |
exchange_accounts |
API-ключи бирж (зашифрованные) | user_id, exchange, api_key_enc, api_secret_enc, is_testnet |
signal_channels |
Мониторируемые Telegram-каналы | channel_id, title, is_active, auto_trade |
raw_messages |
Все сообщения из каналов | channel_id, message_id, text, received_at |
signals |
Распарсенные торговые сигналы | direction, pair, entry_price, stop_loss, leverage, confidence, status |
trades |
Сделки (state machine) | signal_id, account_id, status, entry_price, exit_price, pnl, pnl_pct |
trade_take_profits |
TP-уровни для каждой сделки | trade_id, level, price, close_pct, order_id, hit_at |
trade_logs |
Аудит действий по сделке | trade_id, action, details (JSONB), created_at |
content_messages |
AI-сгенерированный контент | content_type, text, published_at, channel_id |
bot_settings |
Runtime конфигурация | key (unique), value, updated_at |
| Категория | Технология | Версия | Назначение |
|---|---|---|---|
| Язык | Python | 3.12 | Основной язык |
| Telegram Bot | aiogram | 3.24 | Бот-интерфейс (команды, кнопки) |
| Telegram Client | Telethon | 1.37+ | Чтение каналов, публикация контента |
| ORM | SQLAlchemy | 2.0 | Async ORM + миграции (Alembic) |
| Database | PostgreSQL | 16 | Основное хранилище |
| Cache/Queue | Redis | 7 | Очереди, кеш, throttling |
| Exchange API | ccxt | 4.x | Унифицированный API бирж |
| AI | OpenAI | GPT-4o | Парсинг сигналов, генерация контента |
| Scheduler | APScheduler | 3.10 | Периодические задачи |
| Admin Panel | SQLAdmin + FastAPI | 0.20+ | Веб-панель управления |
| Encryption | cryptography (Fernet) | 43+ | Шифрование API-ключей |
| Docker | Docker Compose | 2.x | Контейнеризация |
На каждую сделку рискуем не более 1% от общего депозита. Это ключевое правило, обеспечивающее выживание даже при серии убыточных сделок.
risk_amount = total_balance * 0.01 (1%)
sl_distance_pct = |entry_price - stop_loss| / entry_price
position_value = risk_amount / sl_distance_pct
contracts = position_value / entry_price
| Параметр | Лимит | Описание |
|---|---|---|
| Риск на сделку | 1% депозита | Максимальный убыток при срабатывании SL |
| Max открытых сделок | 10 | Ограничение количества одновременных позиций |
| Max экспозиция | 30% депозита | Суммарный размер всех открытых позиций |
| Margin mode | Isolated | Каждая позиция изолирована (не Cross) |
| Max leverage | 20x | Потолок плеча (даже если сигнал рекомендует больше) |
| Min confidence | 0.7 | Минимальная уверенность AI для автоторговли |
| Фаза | Что делаем | Результат |
|---|---|---|
| 1 | Скаффолдинг + DB + Config + Docker | Рабочий Docker-стек, бот отвечает на /start |
| 2 | Exchange abstraction + Bybit adapter | /balance работает, переводы SPOT↔FUTURES |
| 3 | Telethon + Signal parser + AI | Читает каналы, парсит сигналы, сохраняет в DB |
| 4 | Trading engine + Risk manager | Автоматическое открытие/закрытие сделок |
| 5 | Content generator + Publisher | AI-контент в канале с реферальными ссылками |
| 6 | Admin panel + Hardening + Deploy | Веб-панель, тесты, деплой на VPS |
Crypto Trading Bot — Project Specification v1.0