LLM Trade Bot
Автономный GLM-агент через z.ai для выделенного Bybit Demo Trading либо Binance Testnet аккаунта. Один процесс работает только с одной биржей, выбранной в config.toml; одновременная торговля на обеих не поддерживается. Бот анализирует Spot и linear USDT-рынки два раза в день, умеет искать рыночный контекст в интернете и управляется через Telegram.
linear — публичное имя USDⓈ-M Futures: оно намеренно сохранено в инструментах агента и промптах. Production endpoints не поддерживаются. Для Binance адреса Spot Testnet и USDⓈ-M Futures Demo Testnet зафиксированы в коде и не настраиваются через TOML.
Возможности
- новая stateless-сессия
micro-agentsдля каждого анализа; - долговременные
noteи односторонниеask_adminчерез SQLite/Telegram; - общий exchange gateway с нормализованными ордерами, сделками и приватными WebSocket-событиями;
- сканер ликвидных Spot и Linear инструментов, свечи 1h/4h/1d, стакан и индикаторы;
- Brave Search и безопасное чтение выбранных публичных HTTPS-страниц;
- без программных лимитов на risk/exposure, число позиций, дублирующие входы и срок жизни Limit-ордеров; размер нового входа можно задать через quote notional или процент доступного баланса (по умолчанию используется весь buying power выбранного кошелька);
- обязательный exchange-side stop-loss, TP или trailing для Linear, TP/SL для Spot;
- на Binance Spot — одна атомарная OTOCO-конструкция: Limit-вход и ожидающая рыночная TP/SL OCO-пара; если Testnet её отклоняет, вход не создаётся;
- на Binance USDⓈ-M — one-way + isolated margin, плечо перед входом и обязательный stop через
/fapi/v1/algoOrder; при ошибке установки stop-loss позиция аварийно закрывается; - отдельные снимки и лимиты 2%/40% для Spot и Futures кошельков Binance, при общем лимите пяти идей;
- Telegram-команды, приватные WebSocket-потоки, аудит и REST-reconciliation.
Подготовка
- Выберите
exchange.providerвconfig.toml. - Для Bybit создайте ключ в основном аккаунте после переключения в Demo Trading, а не на testnet. Настройте Unified account в
ISOLATED_MARGINи one-way position mode. - Для Binance создайте два отдельных набора ключей: Spot Testnet на testnet.binance.vision и USDⓈ-M Futures Testnet/Demo. У ключей должны быть права чтения и торговли. Futures-аккаунт должен использовать one-way mode; бот проверит это при запуске и выставит isolated margin/плечо перед входом.
- Создайте Telegram-бота и получите
api_id/api_hashприложения Telegram. - Получите z.ai API key и Brave Search API key.
- Скопируйте
config.example.tomlвconfig.toml, аprompts.example.mdвprompts.md. - Замените секреты только выбранного провайдера. Локальные конфиги исключены из Git.
Для GLM используйте раздел [zai]: базовый URL https://api.z.ai/api/paas/v4 и модель glm-4.6 уже заданы в примере. Ключ создаётся в z.ai; раздел [deepseek] больше не поддерживается.
Раздел [risk] больше не используется: если он остался в существующем config.toml, его значения игнорируются.
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 запрещает новые агентские сессии и входы, но уже размещённые защитные ордера остаются на выбранной бирже.
Тесты
uv run pytest
Тесты не используют реальные ключи и не создают ордера. Перед первым полноценным запуском проверьте /status, /positions и /orders на выбранном Testnet/Demo-кошельке. Для Binance отдельно проверьте Spot Limit OTOCO и Futures Market-вход с защитой.