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.
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.

Тесты

uv run pytest

Тесты не используют реальные ключи и не создают ордера. Перед первым полноценным запуском рекомендуется пополнить Demo Trading только USDT и проверить /status, /positions и /orders.

Description
No description provided
Readme 342 KiB
Languages
Python 100%