Интеграция с Hummingbot

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1Все 1306 услуг
Интеграция с Hummingbot
Средний
~3-5 дней
Часто задаваемые вопросы

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

Этапы блокчейн-разработки

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

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

Интеграция с Hummingbot

Hummingbot — open source фреймворк специально для маркет-мейкинга и стратегий ликвидности. В отличие от Backtrader или Freqtrade, ориентированных на direction trading, Hummingbot создан для bid-ask спреда: выставления двусторонних котировок и управления inventory.

Ключевые стратегии Hummingbot

Pure Market Making — непрерывное выставление bid и ask вокруг mid-price. Прибыль = спред минус inventory risk.

Cross-Exchange Market Making — котируем на одной бирже, хеджируем на другой. Зарабатываем на спреде минус стоимость хеджа.

Perpetual Market Making — маркет-мейкинг на фьючерсных рынках с управлением funding rate.

AMM Arbitrage — арбитраж между DEX (Uniswap, Curve) и CEX.

Установка

# Docker установка (рекомендуется)
git clone https://github.com/hummingbot/hummingbot.git
cd hummingbot
docker compose up -d

# Или через pip
pip install 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 Management

Главный риск маркет-мейкинга — накопление inventory в одну сторону при направленном движении рынка:

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  # цена продажи ниже = больше продаж

Конфигурация через 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 — стандарт де-факто для крипто маркет-мейкинга в open source пространстве. Поддерживает 40+ бирж (CEX и DEX), активно развивается, имеет большое сообщество и certification program для маркет-мейкеров.