Files
llm-trade-bot/README.md
2026-09-19 16:25:19 +02:00

62 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`.