OpenClaw + Pionex: как собрать крон-агента для автоматической торговли через MCP
Большинство «торговых ботов» — это либо слепой grid на одной паре, либо скрипт, который не умеет остановиться. Более интересный вариант выглядит иначе: агент по расписанию сканирует рынок, проверяет уже запущенные боты, и только потом принимает решение. Не каждую минуту. Не в панике. По жёстким правилам.
Ниже — рабочая схема на стеке OpenClaw + MCP Pionex + cron + Telegram. Это не инвестиционный совет, а технический разбор того, как собрать автономный цикл принятия решений.
Что делает система
Раз в заданный интервал агент:
- Запускает сканер фьючерсных PERP-пар
- Получает сигналы LONG/SHORT с conviction и score
- Проверяет, есть ли уже работающий бот на Pionex
- Если бот есть — не создаёт новый, только шлёт отчёт
- Если ботов нет — выбирает лучший сигнал и создаёт futures grid
- Отправляет структурированный отчёт в Telegram
Ключевая идея простая: система должна уметь не торговать. Именно это отделяет автоматизацию от хаоса.
Архитектура
cron
└─ OpenClaw agent
├─ multi_coin_scanner_v5.py
├─ MCP Pionex
│ ├─ pionex_bot_order_list
│ └─ pionex_bot_futures_grid_create
└─ Telegram report
OpenClaw здесь — среда, в которой живёт агент, его инструкции и инструменты.
MCP Pionex — слой доступа к бирже: список ботов, создание grid, баланс.
Cron — триггер, а не мозг. Мозг — правила агента.
Что нужно до запуска
- Рабочий OpenClaw workspace
- Установленный MCP-набор для Pionex
- API-доступ к Pionex с правами на futures bot
- Скрипт сканера — multi_coin_scanner_v5.py на GitHub Gist
- Telegram-канал или чат для отчётов
- Cron или аналог (systemd timer / внешний scheduler)
Крон-задача вызывает скрипт, скрипт вызывает модель. Модель дополнительно анализирует выбранный актив и только потом создаёт бота — это финальная проверка перед входом в позицию.
Без MCP-kit агент не сможет безопасно и одинаково вызывать биржевые методы. Именно MCP делает сценарий повторяемым: не «надеюсь, скрипт отработает», а «есть инструмент с понятным входом и выходом».
Логика крон-задачи
Шаг 1. Сканер
Агент запускает:
python3 /home/matros/.openclaw/workspace/multi_coin_scanner_v5.py
Сканер разбирает futures PERP-пары и возвращает сигналы:
- направление: LONG / SHORT
- conviction: VERY HIGH / HIGH / MEDIUM / LOW
- score
- volume ratio
- risk/reward
- RSI и связанные фильтры
Это сырьё для решения, а не приказ покупать.
Шаг 2. Проверка существующих ботов
Критический шаг:
pionex_bot_order_list(status='running')
Если есть хотя бы один running-бот:
- нового бота не создавать
- не пытаться «добавить ещё один»
- только отчёт в Telegram
- в отчёте явно писать: «Есть работающий бот, новый не создан»
Это главное safety-правило всей системы.
Шаг 3. Отбор кандидата
Только если running-ботов нет.
Приоритет:
- VERY HIGH
- HIGH
- MEDIUM
- LOW
При равном conviction — выше Score. Дополнительно:
- Volume Ratio > 1.0x
- Risk/Reward > 1.0
- RSI не в экстремуме
Брать монету нужно из финального решения сканера, а не «что-то примерно похожее». Если всё слабо — пропуск до следующего часа.
Шаг 4. Создание futures grid
Только если ботов нет и кандидат прошёл фильтры.
Параметры:
- тип: PERP futures grid
- направление: как у сигнала
- сумма: весь доступный USDT-баланс с запасом на комиссии
- плечо: 9x
- уровней: 20
- тип сетки: geometric
- диапазон: bottom = entry × 0.92, top = entry × 1.08
- take-profit: +3% PnL (profitStopType: profit_ratio, profitStop: 0.03)
- stop-loss по цене: LONG — entry × 0.90, SHORT — entry × 1.10
- минимальный баланс: 8 USDT, иначе пропуск
Пример вызова MCP:
pionex_bot_futures_grid_create
base: ETH
quote: USDT
buOrderData:
top: entry * 1.08
bottom: entry * 0.92
row: 20
grid_type: geometric
trend: long | short
leverage: 9
quoteInvestment: [весь доступный USDT]
profitStopType: profit_ratio
profitStop: 0.03
lossStopType: price
lossStop: entry * 0.90 # для LONG
Для SHORT lossStop считается как entry * 1.10.
Шаг 5. Отчёт в Telegram
Отчёт должен быть одинаковым каждый раз. Тогда его можно читать за 10 секунд.
В отчёте:
- топ-3 LONG
- топ-3 SHORT
- выбранный кандидат
- статус ботов
- баланс: total / in bot / free
- действие: создан бот / не создан / ошибка API
Если бот уже был — это не «тишина». Это тоже результат, и он обязан попасть в Telegram.
Почему так, а не «всегда в рынке»
Сетка на весь баланс и плечо 9x — агрессивный режим. Именно поэтому система не должна плодить ботов. Один работающий grid уже занимает капитал и задаёт риск. Второй бот в таком режиме — не диверсификация, а способ ускорить ошибку.
Хороший крон-агент отличается не тем, что он постоянно что-то открывает. А тем, что у него есть право на действие «ничего не делать».
Минимальный чеклист перед боем
- MCP Pionex отвечает на
pionex_bot_order_list - сканер стабильно возвращает JSON/структурированный вывод
- Telegram-отправка работает
- в промпте агента правило «не создавать бота при running» написано жёстко
- есть нижний порог баланса
- есть стоп по цене, а не только надежда на grid
OpenClaw здесь не «магический трейдер». Это оркестратор: сканер даёт картину рынка, MCP даёт руки для биржи, cron даёт ритм, а правила не дают системе потерять дисциплину.
Вывод
Если убрать хотя бы один слой — получается либо ручная торговля, либо бесконтрольный скрипт. В связке они уже похожи на автономного агента: не потому что он умный всегда, а потому что он действует по одному и тому же жёсткому процессу каждый час.
Полный промпт крон-задачи
Скопируйте этот промпт и вставьте его в крон-задачу как есть — со всеми эмодзи и форматированием. Это точная логика, по которой агент работает каждый час.
Выполни крон-задачу автоматической торговли:
═══════════════════════════════════════
🔄 КРОН-ЗАДАЧА | [время] МСК ([дата])
═══════════════════════════════════════
Шаг 1: Запуск сканера
Выполни: python3 /home/matros/.openclaw/workspace/multi_coin_scanner_v5.py
Анализирует фьючерсные PERP пары
Выдаёт сигналы LONG/SHORT с conviction
Шаг 2: ПРОВЕРКА СУЩЕСТВУЮЩИХ БОТОВ (КРИТИЧЕСКИ ВАЖНО!)
Проверь список работающих ботов через pionex_bot_order_list(status='running')
ЕСЛИ ЕСТЬ ХОТЬ ОДИН РАБОТАЮЩИЙ БОТ:
✅ НЕ СОЗДАВАТЬ НОВОГО БОТА!
✅ НЕ ПЫТАТЬСЯ СОЗДАТЬ БОТА!
✅ ТОЛЬКО отправить отчет в Telegram с текущим статусом
✅ В отчете указать: "Есть работающий бот, новый не создан"
ЕСЛИ БОТОВ НЕТ:
Продолжить к Шагу 3
Шаг 3: Отбор кандидата №1 (ТОЛЬКО ЕСЛИ НЕТ РАБОТАЮЩИХ БОТОВ)
Приоритет: VERY HIGH > HIGH > MEDIUM > LOW
Если conviction одинаковый — брать с самым высоким Score
Если сигнал SHORT — брать SHORT, если LONG — брать LONG
Проверить: Volume Ratio > 1.0x, Risk/Reward > 1.0, RSI не экстремальный
Если всё плохо — пропустить, ждать следующий час
Создовай на весь доступный баланс !
БРАТЬ В КОНЕЧНОМ ИТОГЕ МОНЕТУ ДЛЯ GRID BOT ИЗ 🎯 ФИНАЛЬНОГО РЕШЕНИЯ !
Шаг 4: Создание Grid бота (ТОЛЬКО ЕСЛИ НЕТ РАБОТАЮЩИХ БОТОВ)
Тип: PERP фьючерсный Grid бот
Монета: выбранная (например, ETH_USDT_PERP)
Направление: LONG или SHORT (как у сигнала)
Сумма: ВЕСЬ доступный баланс USDT (с запасом на комиссии)
Плечо: 9x
Уровней: 20 (geometric)
Диапазон: entry * 0.92 (bottom) до entry * 1.08 (top)
Тейк-профит: PNL +3% (profitStopType: profit_ratio, profitStop: 0.03)
Стоп-лосс: ПО ЦЕНЕ -10% для LONG, +10% для SHORT (lossStopType: price)
Минимальный баланс: 8 USDT (если меньше — пропуск)
Параметры для MCP pionex_bot_futures_grid_create:
base: [монета без _PERP, например ETH]
quote: USDT
buOrderData:
top: [entry * 1.08]
bottom: [entry * 0.92]
row: 20
grid_type: geometric
trend: long или short
leverage: 9
quoteInvestment: [весь баланс USDT]
profitStopType: profit_ratio // TP по PNL +3%
profitStop: 0.03
lossStopType: price // ⚠️ SL по ЦЕНЕ -10% для LONG, +10% для SHORT
lossStop: [entry * 0.90 для LONG] или [entry * 1.10 для SHORT]
Шаг 5: Отправить красивый отчёт в Telegram
Формат отчёта (ИСПОЛЬЗОВАТЬ ТОЧНО ТАК):
═══════════════════════════════════════
📊 CRYPTO TRADING BOT REPORT — [HH:MM] (Europe/Minsk)
═══════════════════════════════════════
🔥 ТОП-3 LONG СИГНАЛЫ
┌─────────────────────────────────────┐
│ #1 [MONETA] Score: [score] 🟢 │
│ Conviction: [conviction] │
│ Vol: [ratio]x | R/R: [ratio] │
├─────────────────────────────────────┤
│ #2 [MONETA] Score: [score] 🟢 │
│ Conviction: [conviction] │
│ Vol: [ratio]x | R/R: [ratio] │
├─────────────────────────────────────┤
│ #3 [MONETA] Score: [score] 🟢 │
│ Conviction: [conviction] │
│ Vol: [ratio]x | R/R: [ratio] │
└─────────────────────────────────────┘
📉 ТОП-3 SHORT СИГНАЛЫ
┌─────────────────────────────────────┐
│ #1 [MONETA] Score: [score] 🔴 │
│ Conviction: [conviction] │
│ Vol: [ratio]x | R/R: [ratio] │
├─────────────────────────────────────┤
│ #2 [MONETA] Score: [score] 🔴 │
│ Conviction: [conviction] │
│ Vol: [ratio]x | R/R: [ratio] │
├─────────────────────────────────────┤
│ #3 [MONETA] Score: [score] 🔴 │
│ Conviction: [conviction] │
│ Vol: [ratio]x | R/R: [ratio] │
└─────────────────────────────────────┘
✅ ВЫБРАННЫЙ КАНДИДАТ
┌─────────────────────────────────────┐
│ [🟢/🔴] [MONETA] │
│ Сигнал: [LONG/SHORT] │
│ Score: [score] │
│ Conviction: [conviction] │
│ Entry: $[price] │
│ Target: $[price] │
│ Stop: $[price] │
│ R/R: 1:[ratio] │
└─────────────────────────────────────┘
📈 СТАТУС БОТОВ
┌─────────────────────────────────────┐
│ Активных ботов: [количество] │
│ ├─ [BOT_NAME] ([LONG/SHORT]) │
│ │ Прибыль: [pnl]% │
│ │ Время работы: ~[время] │
│ │ Статус: 🟢 Активен │
└─────────────────────────────────────┘
💰 БАЛАНС
┌─────────────────────────────────────┐
│ Баланс: [balance] USDT │
│ В боте: [in_bot] USDT │
│ Свободно: [free] USDT │
└─────────────────────────────────────┘
🚀 ДЕЙСТВИЕ
[создан новый бот / есть работающий бот, новый не создан / ошибка API]
═══════════════════════════════════════
🤖 Crypto Snapshot Pro Bot
⚠️ КРИТИЧЕСКОЕ ПРАВИЛО:
НЕ ПЫТАТЬСЯ СОЗДАТЬ ГРИД БОТА ЕСЛИ ЕСТЬ РАБОТАЮЩИЙ БОТ !!!!
ПРОСТО В ТАКОМ СЛУЧАЕ ПРИСЫЛАТЬ ОТЧЕТ В ТЕЛЕГРАМ !!!!
Если ваш агент уже действует — дайте ему возможность платить за себя самому. Создать платного агента →