Версия 1.3 Открытый код · MIT Python 3.11+ Лонг и шорт Собственный сервер

Алгоритмическая торговля криптофьючерсами со встроенной защитой.

CROT — CryptoRoboTrading — бот на Python с открытым кодом для бессрочных фьючерсов USDT-M. Общий движок отделяет безопасность исполнения, транспорт биржи, состояние и телеметрию от переключаемых плагинов стратегий. Бесплатный, полностью проверяемый и честный в отношении рисков.

Приватный HTX v5 · публичные данные CCXT · контракт стратегий API v2

Торговля фьючерсами связана с существенным риском. Это программа, а не финансовая рекомендация.

Что это

Самостоятельное торговое приложение, а не очередной биржевой шаблон

Если вы использовали только встроенные конструкторы, это следующий уровень контроля. Вместо сеточного шаблона и нескольких ползунков вы запускаете полноценную программу на своём компьютере, подключённую к HTX официальными API-ключами. Видно всё: исходный код, конфигурацию и построчный журнал решений.

Ваша инфраструктура

Работает на вашем ПК или небольшом VPS. API-ключи остаются в локальном файле, не загружаются, не попадают в журналы и git. Средства всегда находятся на вашем биржевом счёте.

Ваши правила

Выберите плагин стратегии по имени. Типы, диапазоны и необязательные TOML-переопределения проверяются до обращения к бирже: опечатка или недопустимое значение останавливают запуск с понятной ошибкой.

Ваши данные

SQLite хранит события сделок, циклы, сигналы, диагностику, кандидатов и свечи. Read-only отчёты, реплей и форвардная разметка помогают оценивать стратегию по данным, а не по рекламе.

Сравнение с биржевыми конструкторами ботов

Конструкторы бирж
шаблоны grid / DCA
CROT
отдельный открытый код
ЛогикаГотовые шаблоны и несколько настроекМногоуровневая стратегия: тренд, откат, триггер, проверки качества и ранжирование
ПараметрыОбычно 5–15Типизированный манифест стратегии, TOML-переопределения и JSON Schema
КодЗакрыт — доверие чёрному ящику биржиMIT и открытый код — проверьте каждую строку до пополнения
Стоп-лоссЗависит от шаблона, иногда отсутствуетЖёсткий reduce-only стоп на бирже с момента входа, активный без сервера
Привязка к биржеПолнаяСтратегия и риск-ядро ваши; сейчас HTX, основа CCXT
Журнал и аналитикаСводные цифры в панелиSQLite WAL, JSONL-фолбэк, read-only отчёты и реплей
СтоимостьЧасто подписка или доля прибылиБесплатно, кроме обычных комиссий биржи
Что требуетсяНичего, работает на сервере биржиПостоянно включённый ПК или VPS и базовое владение терминалом

Честный компромисс: вы размещаете бота сами, а взамен получаете полный контроль, прозрачность и отсутствие регулярной платы.

Обновление версии 1.3

Нейтральный к стратегии движок — перестроен от хранилища до исполнения

Версия 1.3 — архитектурный релиз, а не набор новых пресетов. Изменились хранение, приватный транспорт биржи, рыночные данные, конфигурация, безопасность рантайма, исследования, тесты и развёртывание: теперь стратегии развиваются независимо от движка.

v1.3архитектурный релиз
Движок ↔ стратегияКонтракт плагинов API v2

Версионированные хуки, схема состояния, capabilities и стабильный StrategyContext.

Бот ↔ биржаПриватный API HTX v5

Подписанные вызовы счёта, позиций и ордеров на современной приватной поверхности HTX.

Жизненный цикл и защитаCombinedEngineлоки · состояние · биржа · защита
Выбор по имениПлагин стратегиисигнал · размер · вход · выход
Слой доказательствSQLite + исследованиятелеметрия · реплей · отчёты
01

Движок отделён от стратегии

  • Движок владеет ключами, маршрутизацией аккаунтов, транспортом биржи, точностью, локами, состоянием, private sync, жизненным циклом и остановкой.
  • Плагин владеет сигналами, отбором, размером, входом, выходом и собственным типизированным strategy_state.
  • Обязательные reduce-only проверки и обработка закрывающих ордеров остаются в движке перед хуками стратегии.
02

Переключение стратегий без переписывания бота

  • STRATEGY=btc_countertrend_grid_v1 выбирает текущую стратегию по умолчанию.
  • ema_pullback_lermont сохраняет прежний EMA-подход в изолированном адаптере с указанием происхождения.
  • xsec_reversion_v1 — экспериментальный измерительный пакет, example_minimal — шаблон разработчика. Внешние пакеты подключаются через Python entry points.
03

SQLite — основной источник аналитики

  • WAL и шесть типизированных таблиц для сделок, циклов, сигналов, диагностики, кандидатов и свечей, плюс полный санитизированный JSON payload.
  • Запись fail-open: торговое состояние и локи остаются независимыми файлами; CSV — фолбэк записи, JSONL — аварийный читаемый след.
  • В комплекте есть идемпотентный импорт, проверка целостности, online backup, read-only отчёты, архив свечей, реплей и форвардная разметка.
04

Нативный HTX v5 и живой стакан

  • Подписанный клиент HTX v5 обслуживает приватные методы счёта, позиций и ордеров, нужные современным режимам аккаунта; публичные данные остаются на CCXT.
  • Переподключаемый WebSocket HTX читает 20 уровней depth.step6; кэш общий для long и short.
  • Устаревшая цена не может запустить выход по цели: нужен свежий исполнимый BBO, при необходимости — некэшированный публичный REST-фолбэк.
05

Более безопасный combined-рантайм

  • Один процесс ведёт long и short с общей обёрткой биржи, кэшем рынка, private snapshot, резервированием символов и equity guard, но раздельными состояниями, локами и правилами направлений.
  • Несовместимое состояние стратегии при открытой экспозиции блокирует продолжение; неизвестные закрывающие ордера принимает или обрабатывает общий слой безопасности.
  • Повторно используемые client order ID, атомарная запись файлов, heartbeat и внешний watchdog делают ретраи и восстановление наблюдаемыми.
06

Проверяемая конфигурация и переносимое развёртывание

  • Секреты и инфраструктура остаются в .env; каждый плагин задаёт типизированные значения и необязательные TOML-переопределения с диапазонами.
  • Тот же манифест строит сгруппированную документацию и JSON Schema; неверный ключ или значение отклоняется до вызова биржи.
  • Идемпотентный build.sh, Docker-образ, healthcheck развёртывания и независимый от стратегии conformance-набор дают воспроизводимую установку.
Текущая стратегия по умолчанию

BTC Countertrend Grid — новая модель исполнения, а не переименованный EMA-алгоритм

Maker-first вход. Пятиуровневая post-only сетка удаляет недоступные ступени или переходит к одному пассивному ордеру, не раздувая риск ради минимума биржи.

Экономический preflight. До отправки заявки проверяются цель относительно комиссий, спреда и стопа, округлённые контракты, минимальный нотионал, маржа и портфельные лимиты.

Выход по биржевой правде. Maker-цель, защита на бирже, подтверждение свежим BBO, IOC на непокрытый остаток и ограниченный выход по времени заменяют допущения по кэшированной цене.

Общие лимиты счёта. Плановый риск, направленная и портфельная экспозиция, маржа, нотионал, дневной убыток и просадка от high-water проверяются каскадом.

Архитектуру и автоматические тесты можно проверить офлайн. Это не доказывает активацию в live, наличие биржевой защиты на конкретном счёте или доходность: для этого нужны отдельные операционные свидетельства, а фьючерсы остаются высокорисковыми.

Пример встроенной стратегии

EMA Pullback сохранена как изолированный плагин

В версии 1.3 по умолчанию используется BTC Countertrend Grid, но прежний подход EMA Pullback доступен как ema_pullback_lermont. Он торгует откаты по направлению тренда: определяет медленный тренд, ждёт отката и восстановления на быстрых графиках, затем применяет собственную цепочку качества входа. Описание ниже относится к этому плагину, а не к жёстко встроенной логике движка.

Смена плагина заменяет торговую логику и типизированное состояние стратегии, но не транспорт биржи, сохранение состояния, проверки безопасности исполнения, combined-жизненный цикл и телеметрию движка. Это разделение — главное архитектурное изменение версии 1.3.

Три слоя таймфреймов

Сигналы считаются только по закрытым свечам, поэтому бот не реагирует на ещё формирующуюся свечу и избегает целого класса ложных сигналов.

СлойТаймфреймEMAРоль
Макротренд1 ч48 / 120Есть ли настоящий тренд?
Откат5 мин24 / 72Цена откатилась и восстанавливается?
Триггер5 мин24 / 72Краткосрочный импульс согласован?

Логика зеркальна: лонг покупает откаты в восходящем тренде, шорт продаёт отскоки в нисходящем. Оба профиля работают в одном процессе и не открывают встречные позиции по одной монете.

Семь проверок качества до входа

Одного тренда недостаточно. Кандидат проходит независимую цепочку:

  1. Фильтр боковика пропускает шумный рынок.
  2. Подтверждение объёмом требует поддержки движения и блокирует подозрительные встречные всплески.
  3. Профиль объёма считает неблагоприятный пробой зоны стоимости риском разворота.
  4. Относительная сила к BTC проверяет самостоятельность движения монеты.
  5. 30-минутный фильтр BTC запрещает лонги при резком падении и шорты при выносе вверх.
  6. Сверка между биржами блокирует вход при аномальном расхождении HTX с эталонной площадкой.
  7. Итоговый рейтинг распределяет капитал только среди сильнейших кандидатов.

Терпеливый вход

Лестница post-only лимитных заявок ниже рынка (выше для шорта) ждёт цену вместо погони и получает maker-комиссию.

Ограниченная частота

Жёсткие лимиты ограничивают новые позиции на сигнал и час. Когда много монет сигналят одновременно, правила перегруженного рынка автоматически ужесточаются.

Строго ограниченное усреднение

Добавление к убыточной позиции ограничено двумя этапами и требует минимальной просадки с учётом волатильности, интервала времени, нового сигнала восстановления и соблюдения всех лимитов маржи.

Управление рисками

Риск — ядро конструкции, а не дополнение

Правила конкретной стратегии могут отличаться, но обязательные проверки исполнения, состояния и счёта в версии 1.3 остаются в общем движке.

Защита на стороне биржи

Общий слой исполнения проверяет reduce-only закрытия, сверяет фактическую позицию и считает неполную видимость закрывающих ордеров проблемой безопасности. Стратегия может запросить защиту, но не обойти инварианты движка.

Экономический preflight до входа

Стратегия сетки проверяет округлённые контракты, минимумы биржи, цель после оценённых расходов, расстояние до стопа, требуемую маржу и запас портфельных лимитов. Цель не повышается искусственно ради допуска слабой сделки.

Каскад лимитов экспозиции

Плановый риск сделки, направленный и общий риск портфеля, маржа, брутто-нотионал, число позиций, серия убытков и кулдауны проверяются независимо. Прохождение одного лимита не означает прохождение остальных.

Постоянный equity guard

Атомарный общий sidecar хранит high-water эквити, границу UTC-дня, дневной убыток и блок входов. Если guard нельзя надёжно прочитать или записать, новые входы блокируются, а защита и выходы продолжаются.

Только свежие данные

Устаревший WebSocket-тик не запускает выход по цели. Движок запрашивает свежий некэшированный публичный BBO, а при его отсутствии продолжает сверять позицию и защиту, не изображая наблюдение исполнимой цены.

Безопасный рестарт и состояние

Состояние записывается атомарно и после рестарта сверяется с биржей. Плагин не может интерпретировать открытую позицию как состояние другой стратегии: несовместимое переключение блокируется.

Настройка

Инфраструктура в .env. Параметры стратегии — в проверяемой схеме.

Версия 1.3 больше не смешивает секреты, рантайм и торговые решения в одном огромном файле. Плагин хранит типизированные значения по умолчанию, а необязательный TOML с переопределениями проверяется до запуска и отражается в диагностике.

  • Чёткая граница. API-ключи, пути, профили и инфраструктурные флаги остаются в .env; торговые параметры живут в пакете выбранной стратегии.
  • Одна стратегия на combined-процесс. STRATEGY задаётся глобально, поэтому long и short не могут незаметно запустить несовместимую логику или состояние.
  • Строгая проверка. Неизвестные ключи, неверные типы, выход за диапазон и изменение полей идентичности отклоняются до настройки биржи.
  • Машиночитаемая схема. Из dataclass и аннотаций строятся манифест, сгруппированная документация и JSON Schema для будущих интерфейсов.
.env + необязательный TOML стратегии
# .env — рантайм
STRATEGY=btc_countertrend_grid_v1
BOT_PROFILES=long,short
STRATEGY_CONFIG=config/conservative.toml
SQLITE_ENABLED=true

# config/conservative.toml — переопределения
leverage = 20
risk_per_trade_pct = 0.02
max_simultaneous_positions = 6
Прозрачность

Бот измеряет себя и показывает данные

Вместо одной цифры PnL он сохраняет полный контекст каждого решения и содержит инструменты статистического анализа.

Полный журнал

SQLite хранит типизированные события сделок, циклы, сигналы, диагностику, решения по кандидатам и свечи. Полный санитизированный JSON сохраняет новые поля стратегий, а JSONL остаётся аварийным читаемым следом.

Исследовательские инструменты

Read-only отчёты работают с активной базой или проверенным snapshot. Реплей, форвардная разметка, отчёты по горизонтам и времени удержания, факторная диагностика и архив свечей позволяют воспроизводить гипотезы без записи в торговую базу.

Тесты, версии и открытость

Тесты движка, стратегий, аналитики и conformance работают на моках без live API. Сгенерированная документация поверхности движка и проверки схемы падают при дрейфе контракта; проверка репозитория намеренно отделена от live-верификации.

Начало работы

От нуля до работающего бота

Четыре шага. Выделите вечер: большую часть времени стоит потратить на комментарии конфигурации и контрольный список запуска.

  1. 1

    Откройте фьючерсный счёт HTX

    Нужен счёт HTX с USDT-M фьючерсами. Можно зарегистрироваться с кодом 6hc25223, поддержав проект без доплаты. Выберите кросс-маржу и односторонний режим позиций.

  2. 2

    Создайте API-ключ только для торговли

    Разрешите торговлю фьючерсами и отключите вывод средств. Ключ хранится только в локальном файле.

  3. 3

    Установите и настройте

    Клонируйте репозиторий, установите зависимости в виртуальное окружение и скопируйте пример настроек:

    терминал
    git clone https://github.com/Lermont/HTX-crypto-bot.git
    cd HTX-crypto-bot
    python -m venv .venv && source .venv/bin/activate
    pip install -r requirements.txt
    cp .env.example .env   # добавьте API-ключи и список монет
  4. 4

    Проверьте и начните с малого

    Запустите тесты, сохраните консервативные лимиты и используйте сумму, за которой готовы внимательно наблюдать первые дни:

    терминал
    python -m pytest -q     # все тесты должны пройти
    python bot.py           # запускает лонг и шорт

    В репозитории есть полный контрольный список: проверка плеча, режима маржи и безопасных бюджетов первого запуска. Обязательно прочитайте его.

Вопросы и ответы

Прямые ответы

Этот бот будет приносить мне прибыль?

Никто не может этого обещать, и мы не станем. Стратегия в первую очередь ограничивает убытки: жёсткие стоп-лоссы, лимиты маржи и ограничение частоты входов. Каждое решение записывается, чтобы вы оценивали результат по реальным данным. Рынки меняются, и у любой стратегии бывают убыточные периоды. Начинайте с небольших сумм, изучайте журналы и увеличивайте масштаб только тогда, когда цифры заслужат доверие.

Нужно ли уметь программировать?

Для запуска готовой стратегии — нет. Секреты и инфраструктурные параметры находятся в .env, стратегия выбирается одним именем, а необязательные переопределения задаются в проверяемом TOML-файле. Нужны базовые команды терминала, запуск тестов и редактирование текста. Для создания нового плагина стратегии потребуется Python.

Где работает бот?

На любом подконтрольном вам компьютере с Python 3.11 или новее: домашнем ПК, мини-компьютере или небольшом VPS примерно за 5 долларов в месяц. Для непрерывной торговли обычно используют постоянно включённый сервер. В проект входит watchdog для перезапуска. Жёсткий стоп находится на самой бирже и продолжает защищать позицию даже при отключении сервера.

В безопасности ли средства и API-ключи?

Средства не покидают ваш счёт HTX: бот только отправляет подписанные торговые ордера через официальный API. Ключи хранятся в локальном .env и исключены из журналов, снимков конфигурации и системы контроля версий. Создавайте ключи только с правом торговли и отключённым выводом — тогда даже утечка ключа не позволит вывести средства.

Сколько это стоит?

Нисколько. Бот бесплатен и распространяется с открытым кодом по лицензии MIT: без подписки, доли прибыли и платных уровней. Ваши расходы — обычные комиссии биржи и, при необходимости, аренда сервера.

Какие биржи поддерживаются?

Сейчас поддерживаются бессрочные фьючерсы USDT-M на HTX. Транспорт гибридный: публичные данные получает CCXT, а приватные операции со счётом и ордерами выполняет собственный клиент HTX v5. Биржевой слой принадлежит движку, поэтому новую площадку не придётся встраивать в каждую стратегию.

Стратегия зафиксирована навсегда?

Нет. В версии 1.3 пакет стратегии выбирается по имени без изменения движка. По умолчанию используется BTC Countertrend Grid, отдельно поставляется адаптер EMA Pullback, а сторонние пакеты могут подключаться через стандартную точку входа. При смене стратегии сохраняются защитный слой исполнения, состояние, транспорт биржи и телеметрия движка.

Чем это отличается от встроенных биржевых ботов?

Биржевые конструкторы предлагают несколько шаблонов и немного настроек. CROT отделяет повторно используемый движок исполнения от версионированных плагинов стратегий, хранит аналитику в SQLite, проверяет схему параметров до обращения к бирже и содержит офлайн-тесты контракта и исследовательские инструменты. Открытый код позволяет проверить каждый путь ордера и защитное правило.

Можно ли протестировать до риска реальными деньгами?

Да. Тесты движка, стратегий, аналитики и общий conformance-набор работают на моках и стабах без реальных ордеров. Их прохождение подтверждает целостность кода, но не доходность и не готовность конкретного счёта к live: отдельно проверяются разрешения, режим позиций, риск-тиры, открытые позиции и биржевая защита.

Почему ссылки на биржи реферальные?

Ссылки HTX и MEXC содержат реферальный код. При регистрации по ним проект получает комиссию от биржи без дополнительных расходов для вас — это единственная монетизация бесплатного проекта. Вы можете зарегистрироваться напрямую.

Сначала прочитайте код. В этом весь смысл.

Всё описанное проверяется в репозитории: документ стратегии, справочник настроек, тесты и история изменений. Начните с них.