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

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

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

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1451
  • 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, і ваш прибуток перестане залежати від випадковостей.