Strategie Market Making — Dostarczanie płynności z wykorzystaniem Smart Money Insights

Market makerzy zarabiają na spreadach bid-ask, dostarczając płynność po obu stronach. W kryptowalutach jest to niskie ryzyko, jeśli wykonane prawidłowo: możesz utrzymywać minimalne zapasy, zabezpieczając się na innej giełdzie, zatrzymując różnicę spreadu. Smart Money API pomaga market makerom dynamicznie dostosowywać spready na podstawie aktywności wielorybów i anomalii w stopach finansowania.

Kluczowa wskazówka: Profesjonalni market makerzy zwiększają spready, gdy spodziewane są duże zlecenia (na podstawie zmian pozycji wielorybów). Zmniejszają spready, gdy momentum słabnie. Sygnały Smart Money pozwalają wyprzedzić te zmiany.

Podstawy Market Makingu

Spread

Kupujesz po cenie bid, sprzedajesz po cenie ask. Twój zysk to różnica:

Zysk na pełnym obrocie = Ask - Bid

Dla BTC/USDT przy cenie $42,000:

Ryzyko zapasów

Jeśli kupisz 1 BTC za $42,000, ale cena spadnie do $41,000 przed sprzedażą, tracisz $1,000. Zaawansowani market makerzy zabezpieczają to:

Python — Zabezpieczenie zapasów
# Kup na Bybit po bid, natychmiast sprzedaj na Binance po ask
buy_bybit(symbol="BTCUSDT", size=1, side="buy", limit_price=41978.95)
sell_binance(symbol="BTCUSDT", size=1, side="sell", limit_price=42050)
# Zysk = 42050 - 41978.95 = 71.05 USDT, niezależnie od ruchu ceny
# Ryzyko dotyczy tylko wykonania: co jeśli Twoje zlecenie sprzedaży nie zostanie zrealizowane?

Dynamiczne strategie spreadu

1. Market Making ze stałym spreadem

Najprostsza: Zawsze oferuj 1bp po obu stronach.

Python — Market Making ze stałym spreadem
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. Spread dostosowany do zmienności

Zwiększaj spready podczas wysokiej zmienności, zmniejszaj podczas spokojnych rynków:

Python — Market Making dostosowany do zmienności
def volatility_adjusted_mm(mid_price, returns_1h, confidence_score):
# Oblicz zmienność 1-godzinną (odchylenie standardowe zwrotów)
vol = np.std(returns_1h)
# Spread bazowy: 1bp
base_spread_bps = 1.0
# Pomnóż przez zmienność (skala 0-10x)
vol_multiplier = 1 + (vol * 50) # wysoka zmienność = szerszy spread
# Pomnóż przez pewność (jeśli Smart Money jest WYSOKA, lekko zmniejsz)
if confidence_score > 0.65:
confidence_mult = 0.8 # zmniejsz o 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. Reaktywne spready Smart Money

Dostosuj spready na podstawie sygnałów aktywności wielorybów:

Python — Market Making reaktywny na wieloryby
def smart_money_adjusted_spreads(symbol, mid_price):
# Pobierz sygnał Smart Money
sm = get_smart_money_signal(symbol)
# WYSOKA pewność + byczy = rynek wkrótce pójdzie w górę
# Zwiększ ask (nadzieja na sprzedaż po lepszej cenie)
# Zmniejsz bid (szybsza realizacja po stronie kupna)
if sm["confidence"] == ] == "HIGH" and sm["direction"] == ] == "long"::
bid_spread = 0.8 # 0.8bp na bid (konkurencyjne)
ask_spread = 1.4 # 1.4bp na ask (nacisk na realizację)
elif sm["confidence"] == ] == "VETO"::
bid_spread = 2.0 # szeroki po obu stronach (niepewność)
ask_spread = 2.0
else:
bid_spread = 1.0 # normalny symetryczny
ask_spread = 1.0
return {
"bid": mid_price - (mid_price * bid_spread / 10000),
"ask": mid_price + (mid_price * ask_spread / 10000)
}

Zarządzanie zapasami

Docelowe zapasy

Ustaw neutralny cel zapasów (np. 0 BTC). Jeśli zgromadzisz za dużo, zwiększ bid (nacisk na sprzedaż). Jeśli jesteś zbyt krótki, zwiększ ask (nacisk na zakup):

Python — Skład zapasów
def get_inventory_skew(current_inventory, target_inventory=0):
skew = current_inventory - target_inventory
# Jeśli posiadamy za dużo (+1 BTC), poszerzamy bid, aby sprzedać
if skew > 0:
bid_adjustment = min(skew * 0.5, 2.0) # dodaj do 2bp
ask_adjustment = -min(skew * 0.5, 1.0) # zawęż do 1bp
# Jeśli jesteśmy krótko, poszerzamy ask, aby kupić
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

Produkcyjny Market Maker

Python — Pełny system MM
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. Pobierz sygnał Smart Money
sm = get_smart_money_signal(self.symbol)
# 2. Korekta zmienności
vol = calculate_volatility_1h(self.symbol)
# 3. Korekta zapasów
inv_bid, inv_ask = get_inventory_skew(self.inventory)
# 4. Połącz wszystkie czynniki
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)
# Średnia z dostosowanych cen
final_bid = np.mean([base_bid, vol_bid, sm_bid]) + inv_bid
final_ask = np.mean([base_ask, vol_ask, sm_ask]) + inv_ask
# Złóż zlecenia
submit_order(side="bid", price=final_bid, size=1)
submit_order(side="ask", price=final_ask, size=1)

Optymalizuj swoje market making z sygnałami Smart Money

Market makerzy, którzy dostosowują spready na podstawie aktywności wielorybów i zaufania Smart Money, osiągają 15-25% lepsze ceny wykonania i zmniejszone ryzyko zapasów.

Uzyskaj dostęp do algorytmu →