Стратегии маркет-мейкинга — Обеспечение ликвидности с помощью Smart Money Insights

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

Ключевое понимание: Профессиональные маркет-мейкеры увеличивают спреды, когда ожидаются крупные ордера (на основе изменений позиций китов). Они сужают спреды, когда импульс замедляется. Сигналы Smart Money позволяют вам опережать эти изменения.

Основы маркет-мейкинга

Спред

Вы покупаете по цене бида, продаете по цене аска. Ваша прибыль — это разница:

Прибыль за круг = Аск - Бид

На BTC/USDT по цене $42,000:

Риск инвентаря

Если вы купили 1 BTC по $42,000, но цена упала до $41,000 до продажи, вы в минусе на $1,000. Опытные маркет-мейкеры хеджируют это:

Python — Хеджирование инвентаря
# Покупаем на Bybit по биду, сразу шортим на Binance по аску
buy_bybit(symbol="BTCUSDT", size=1, side="buy", limit_price=41978.95)
sell_binance(symbol="BTCUSDT", size=1, side="sell", limit_price=42050)
# Прибыль = 42050 - 41978.95 = 71.05 USDT, независимо от движения цены
# Риск только в исполнении: что, если ваш ордер на продажу не исполнится?

Динамические стратегии спредов

1. Маркет-мейкинг с фиксированным спредом

Проще всего: Всегда указывайте спред 1bp с обеих сторон.

Python — Маркет-мейкинг с фиксированным спредом
def fixed_spread_mm(mid_price, spread_bps=1.0):
spread = mid_price * (spread_bps / 10000)
bid = mid_price - (spread / 2)
ask = mid_price + (spread / 2)
return {"bid": bid, "ask": ask}

2. Спред, корректируемый волатильностью

Увеличивайте спреды при высокой волатильности, уменьшайте при спокойных рынках:

Python — Маркет-мейкинг с корректировкой волатильности
def volatility_adjusted_mm(mid_price, returns_1h, confidence_score):
# Рассчитываем волатильность за 1 час (стандартное отклонение доходностей)
vol = np.std(returns_1h)
# Базовый спред: 1bp
base_spread_bps = 1.0
# Умножаем на волатильность (масштаб 0-10x)
vol_multiplier = 1 + (vol * 50) # высокая волатильность = шире спред
# Умножаем на уверенность (если Smart Money HIGH, немного сужаем)
if confidence_score > 0.65:
confidence_mult = 0.8 # сужаем на 20%
else:
confidence_mult = 1.0
final_spread_bps = base_spread_bps * vol_multiplier * confidence_mult
spread = mid_price * (final_spread_bps / 10000)
return {
"bid": mid_price - (spread / 2),
"ask": mid_price + (spread / 2),
"spread_bps": final_spread_bps
}

3. Реактивные спреды Smart Money

Корректируйте спреды на основе сигналов активности китов:

Python — Маркет-мейкинг с реакцией на китов
def smart_money_adjusted_spreads(symbol, mid_price):
# Получаем сигнал Smart Money
sm = get_smart_money_signal(symbol)
# HIGH уверенность + бычий = рынок скоро двинется вверх
# Увеличиваем аск (надеемся продать по лучшей цене)
# Сужаем бид (быстрое исполнение на стороне покупки)
if sm["confidence"] == "HIGH" and sm["direction"] == "long":
bid_spread = 0.8 # 0.8bp на бид (конкурентоспособно)
ask_spread = 1.4 # 1.4bp на аск (стремимся к исполнению)
elif sm["confidence"] == "VETO":
bid_spread = 2.0 # широкий спред с обеих сторон (неопределенность)
ask_spread = 2.0
else:
bid_spread = 1.0 # обычный симметричный
ask_spread = 1.0
return {
"bid": mid_price - (mid_price * bid_spread / 10000),
"ask": mid_price + (mid_price * ask_spread / 10000)
}

Управление инвентарем

Целевой инвентарь

Установите нейтральный целевой инвентарь (например, 0 BTC). Если вы накопили слишком много, увеличьте бид (стремитесь продать). Если вы слишком коротки, увеличьте аск (стремитесь купить):

Python — Инвентарный перекос
def get_inventory_skew(current_inventory, target_inventory=0):
skew = current_inventory - target_inventory
# Если удерживается слишком много (+1 BTC), расширить бид для продажи
if skew > 0:
bid_adjustment = min(skew * 0.5, 2.0) # добавить до 2bp
ask_adjustment = -min(skew * 0.5, 1.0) # сузить до 1bp
# Если шорт, расширить аск для покупки
elif skew < 0:
ask_adjustment = min(abs(skew) * 0.5, 2.0)
bid_adjustment = -min(abs(skew) * 0.5, 1.0)
else:
bid_adjustment = 0
ask_adjustment = 0
return bid_adjustment, ask_adjustment

Продакшен маркет-мейкер

Python — Полная система маркет-мейкинга
class CryptoMarketMaker:
def __init__(self, symbol, inventory_target=0):
self.symbol = symbol
self.inventory = 0
self.inventory_target = inventory_target
def update_quotes(self, mid_price):
# 1. Получить сигнал Smart Money
sm = get_smart_money_signal(self.symbol)
# 2. Корректировка волатильности
vol = calculate_volatility_1h(self.symbol)
# 3. Корректировка инвентаря
inv_bid, inv_ask = get_inventory_skew(self.inventory)
# 4. Комбинирование всех факторов
base_bid, base_ask = fixed_spread_mm(mid_price, 1.0)
vol_bid, vol_ask = volatility_adjusted_mm(mid_price, [vol], sm["composite"])
sm_bid, sm_ask = smart_money_adjusted_spreads(self.symbol, mid_price)
# Усреднение скорректированных цен
final_bid = np.mean([base_bid, vol_bid, sm_bid]) + inv_bid
final_ask = np.mean([base_ask, vol_ask, sm_ask]) + inv_ask
# Отправка ордеров
submit_order(side="bid", price=final_bid, size=1)
submit_order(side="ask", price=final_ask, size=1)

Оптимизируйте маркет-мейкинг с сигналами Smart Money

Маркет-мейкеры, корректирующие спреды на основе активности китов и уверенности Smart Money, получают на 15-25% лучшие цены исполнения и снижают инвентарный риск.

Получить доступ к алгоритму →