# LLM Trade Bot Автономный DeepSeek-агент для выделенного **Bybit Demo Trading** аккаунта. Бот анализирует Spot и Linear USDT-рынки два раза в день, умеет искать рыночный контекст в интернете и управляется через Telegram. Сервис принципиально не поддерживает production endpoint Bybit. Размер позиции и все лимиты проверяются обычным кодом непосредственно перед отправкой ордера. ## Возможности - новая stateless-сессия `micro-agents` для каждого анализа; - долговременные `note` и односторонние `ask_admin` через SQLite/Telegram; - сканер ликвидных Spot и Linear инструментов, свечи 1h/4h/1d, стакан и индикаторы; - Brave Search и безопасное чтение выбранных публичных HTTPS-страниц; - максимум 2% equity риска на идею, 40% gross exposure, пять идей и 3x Linear leverage; - обязательный exchange-side stop-loss, TP или trailing для Linear, TP/SL для Spot; - Telegram-команды, приватный Bybit WebSocket, аудит и восстановление состояния через REST. ## Подготовка 1. Создайте ключ в основном аккаунте Bybit после переключения в **Demo Trading**, а не на testnet. 2. Настройте Unified account в `ISOLATED_MARGIN` и one-way position mode. Для Spot margin borrowing не используется. 3. Создайте Telegram-бота и получите `api_id`/`api_hash` приложения Telegram. 4. Получите DeepSeek API key и Brave Search API key. 5. Скопируйте `config.example.toml` в `config.toml`, а `prompts.example.md` в `prompts.md`. 6. Замените секреты в `config.toml`. Локальные конфиги исключены из Git. ```powershell Copy-Item config.example.toml config.toml Copy-Item prompts.example.md prompts.md uv sync uv run llm-trade-bot --config config.toml ``` По умолчанию анализ запускается в 09:00 и 21:00 `Europe/Warsaw`. Пропущенные во время остановки процесса запуски не воспроизводятся. ## Промпты Путь к Markdown-файлу задаётся через `prompts.file_path` в `config.toml`. В нём обязательны две именованные секции: - `## master_prompt` — системные правила и поведение агента; - `## run_prompt` — инструкция для каждого торгового запуска. Границами частей служат заголовки второго уровня. Внутри самих промптов используйте `###` и более глубокие заголовки. Файл перечитывается перед каждой новой stateless-сессией, поэтому изменения применяются без перезапуска сервиса; уже выполняющаяся сессия продолжает работать со своим снимком промптов. ## Telegram Доступ имеют только ID из `telegram.admin_user_ids`: - `/status`, `/positions`, `/orders`, `/last`, `/notes`; - `/pause`, `/resume`; - `/run` для внепланового анализа; - `/help`. `/pause` запрещает новые агентские сессии и входы, но уже размещённые защитные ордера остаются на Bybit. ## Тесты ```powershell uv run pytest ``` Тесты не используют реальные ключи и не создают ордера. Перед первым полноценным запуском рекомендуется пополнить Demo Trading только USDT и проверить `/status`, `/positions` и `/orders`.