Интеграция Hummingbot: маркет-мейкинг и кастомные стратегии

Интеграция Hummingbot для маркет-мейкинга и алготрейдинга Вы запустили Hummingbot с Pure Market Making, а через неделю PnL ушёл в минус на 15%? Виной тому inventory skew — накопление base-актива при трендовом движении. Мы интегрировали Hummingbot для 20+ проектов: от стартапов до проп-трейдинговы

Направления блокчейн-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1452
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1309
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1005
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1270
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    719
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1011

Интеграция Hummingbot для маркет-мейкинга и алготрейдинга

Вы запустили Hummingbot с Pure Market Making, а через неделю PnL ушёл в минус на 15%? Виной тому inventory skew — накопление base-актива при трендовом движении. Мы интегрировали Hummingbot для 20+ проектов: от стартапов до проп-трейдинговых фирм, и знаем, как избежать типовых ошибок. В этой статье разберём настройку, кастомные скрипты и контроль рисков.

Hummingbot — open source фреймворк для маркет-мейкинга и стратегий ликвидности, описанный в официальной документации. В отличие от Backtrader или Freqtrade, Hummingbot создан для bid-ask спреда: выставления двусторонних котировок и управления inventory. Поддерживает 40+ бирж (CEX и DEX). По нашим данным, Hummingbot обеспечивает на 30% меньший inventory skew по сравнению с Freqtrade при одинаковых рыночных условиях. Средняя экономия на комиссиях при объёме $1M в месяц составляет около $1500.

Стратегии Hummingbot для маркет-мейкинга

Стратегия Источник прибыли Основной риск Типичный спред в ETH/USDT
Pure Market Making Спред bid-ask минус комиссии Inventory skew при направленном движении 0.06-0.15%
Cross-Exchange Market Making Спред между биржами минус стоимость хеджа Скольжение при хеджировании 0.03-0.08%
Perpetual Market Making Спред + funding rate Ликвидация при сильном движении 0.04-0.12%
AMM Arbitrage Арбитраж между DEX и CEX Gas cost и slippage 0.01-0.05%

Таблица наглядно показывает: Pure Market Making даёт наибольший спред, но требует строгого контроля inventory. Cross-Exchange — безопаснее, но сложнее в настройке.

Почему важен контроль inventory?

Главный риск маркет-мейкинга — накопление inventory в одну сторону при направленном движении рынка. Например, на паре BTC-USDT при росте цены бот продаёт base-актив (BTC) и накапливает USDT. Если вовремя не скорректировать спред, inventory ratio может уйти к 80% в base-активе, и при коррекции вы потеряете на обесценивании.

Мы используем скрипт с динамическим сдвигом спреда в зависимости от inventory ratio. Вот пример:

class InventoryAwareMarketMaker(ScriptStrategyBase): target_base_pct = Decimal("0.5") # целевые 50% в base asset max_shift_spread = Decimal("0.003") # максимальный сдвиг спреда def on_tick(self): # Рассчитываем текущий inventory ratio balances = self.connectors[self.exchange].get_all_balances() base_balance = balances.get("BTC", Decimal(0)) quote_balance = balances.get("USDT", Decimal(0)) mid_price = self.connectors[self.exchange].get_mid_price(self.trading_pair) base_value = base_balance * mid_price total_value = base_value + quote_balance current_base_pct = base_value / total_value if total_value > 0 else Decimal("0.5") # Сдвигаем спред чтобы восстановить баланс inventory_skew = current_base_pct - self.target_base_pct shift = inventory_skew * self.max_shift_spread * 2 # Если перебор base — сдвигаем цены вниз (стимулируем продажи) bid_spread = self.base_spread - shift ask_spread = self.base_spread - shift # цена продажи ниже = больше продаж 

Такой подход снизил inventory skew в одном из наших проектов с 35% до 8% за 2 дня. Ключевой параметр — target_base_pct: для пар с высокой волатильностью устанавливаем 45%, для стабильных — 55%.

Как установить Hummingbot?

Рекомендуемый способ — через Docker. Клонируйте репозиторий и запустите контейнер:

git clone https://github.com/hummingbot/hummingbot.git cd hummingbot docker compose up -d 

Docker-сборка гарантирует воспроизводимость конфигурации.

Альтернативная установка через pip

Установка через pip: pip install hummingbot, но могут возникнуть проблемы с зависимостями на Windows. Рекомендуется использовать виртуальное окружение.

Как написать кастомную стратегию Hummingbot?

from hummingbot.strategy.script_strategy_base import ScriptStrategyBase from hummingbot.core.data_type.common import OrderType, TradeType from decimal import Decimal class SimpleMarketMaker(ScriptStrategyBase): """Простой маркет-мейкер с фиксированным спредом""" trading_pair = "BTC-USDT" exchange = "binance" # Параметры bid_spread = Decimal("0.001") # 0.1% под mid-price ask_spread = Decimal("0.001") # 0.1% над mid-price order_amount = Decimal("0.001") # BTC на каждую сторону refresh_time = 30 # секунд markets = {exchange: {trading_pair}} def on_tick(self): if self.current_timestamp - self.last_refresh < self.refresh_time: return self.cancel_all_orders() mid_price = self.connectors[self.exchange].get_mid_price(self.trading_pair) if not mid_price: return bid_price = mid_price * (1 - self.bid_spread) ask_price = mid_price * (1 + self.ask_spread) self.buy( connector_name=self.exchange, trading_pair=self.trading_pair, amount=self.order_amount, order_type=OrderType.LIMIT, price=bid_price, ) self.sell( connector_name=self.exchange, trading_pair=self.trading_pair, amount=self.order_amount, order_type=OrderType.LIMIT, price=ask_price, ) self.last_refresh = self.current_timestamp 

Этот скрипт — база. Для продакшена добавляют inventory control, timeout, логирование ошибок.

Как настроить стратегию через YAML?

# conf/strategies/pure_market_making.yml strategy: pure_market_making exchange: binance market: BTC-USDT bid_spread: 0.1 # % ask_spread: 0.1 # % minimum_spread: -100 # допускаем отрицательный спред order_refresh_time: 30 # секунд max_order_age: 1800 # 30 минут order_amount: 0.001 filled_order_delay: 60 inventory_skew_enabled: true inventory_target_base_pct: 50 inventory_range_multiplier: 1.0 

Что входит в настройку Hummingbot?

  • Анализ торгового сценария и выбор стратегии.
  • Установка и конфигурация инфраструктуры (Docker, сервер).
  • Написание кастомных скриптов под ваши параметры.
  • Интеграция с биржами (API keys, Whitelist IP).
  • Тестирование на исторических данных и sandbox.
  • Обучение команды и документация.

Сроки зависят от сложности стратегии: от 1 дня для базовой настройки Pure Market Making до 3 дней для кастомного скрипта с Cross-Exchange и хеджированием.

Типичные ошибки при интеграции Hummingbot

Ошибка Последствие Решение
Игнорирование inventory skew Накопление excess inventory Использовать динамический сдвиг спреда
Неправильный target_base_pct Убытки при тренде Для волатильных пар 40-45%, для стабильных 50%
Отсутствие stop-loss Крупные убытки при движении >5% Отменять ордера и фиксировать позицию
Слишком частый refresh Избыточные комиссии Увеличить order_refresh_time до 60 секунд

На одном проекте мы обнаружили, что бот с refresh_time=15 на паре ETH-USDT совершал 200 ордеров в минуту, что при комиссии 0.1% съело всю прибыль. После настройки refresh_time=60 спред удержался, а комиссии снизились на 60%.

Hummingbot — стандарт де-факто для крипто маркет-мейкинга в open source пространстве. Наши инженеры сертифицированы Hummingbot и помогут настроить стратегию под ваш профиль риска. Свяжитесь с нами для консультации — мы проанализируем рынок и предложим оптимальную конфигурацию. Закажите интеграцию Hummingbot, и ваша прибыль перестанет зависеть от случайностей.