Strategi Market Making — Menyediakan Likuiditas dengan Wawasan Smart Money

Market maker mengambil keuntungan dari spread bid-ask dengan menyediakan kedua sisi likuiditas. Di dunia crypto, ini berisiko rendah jika dilakukan dengan benar: Anda bisa memegang inventaris minimal dengan hedging di exchange lain, mengantongi selisih spread. Smart Money API membantu market maker menyesuaikan spread secara dinamis berdasarkan aktivitas whale dan anomali funding rate.

Wawasan utama: Market maker profesional melebarkan spread ketika pesanan besar diantisipasi (berdasarkan perubahan posisi whale). Mereka menyempitkan spread ketika momentum melemah. Sinyal Smart Money memungkinkan Anda mengantisipasi perubahan ini.

Dasar-Dasar Market Making

Spread

Anda membeli di harga bid, menjual di harga ask. Keuntungan Anda adalah selisihnya:

Keuntungan per round-trip = Ask - Bid

Pada BTC/USDT di $42.000:

Risiko Inventaris

Jika Anda membeli 1 BTC di $42.000 tetapi harganya jatuh ke $41.000 sebelum Anda menjual, Anda rugi $1.000. Market maker canggih melakukan hedging:

Python — Hedging inventaris
# Beli di Bybit di bid, langsung short di Binance di ask
buy_bybit(symbol="BTCUSDT", size=1, side="buy", limit_price=41978.95)
sell_binance(symbol="BTCUSDT", size=1, side="sell", limit_price=42050)
# Keuntungan = 42050 - 41978,95 = 71,05 USDT, terlepas dari pergerakan harga
# Risiko hanya eksekusi: bagaimana jika pesanan jual Anda tidak terisi?

Strategi Spread Dinamis

1. Market Making Spread Tetap

Paling sederhana: Selalu tawarkan spread 1bp di kedua sisi.

Python — MM spread tetap
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 yang Disesuaikan Volatilitas

Lebarkan spread selama volatilitas tinggi, persempit selama pasar tenang:

Python — MM yang disesuaikan volatilitas
def volatility_adjusted_mm(mid_price, returns_1h, confidence_score):
# Hitung volatilitas 1-jam (deviasi standar return)
vol = np.std(returns_1h)
# Spread dasar: 1bp
base_spread_bps = 1.0
# Kalikan dengan volatilitas (skala 0-10x)
vol_multiplier = 1 + (vol * 50) # volatilitas tinggi = spread lebih lebar
# Kalikan dengan confidence (jika Smart Money TINGGI, persempit sedikit)
if confidence_score > 0.65:
confidence_mult = 0.8 # persempit 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. Spread Reaktif Smart Money

Sesuaikan spread berdasarkan sinyal aktivitas whale:

Python — MM reaktif whale
def smart_money_adjusted_spreads(symbol, mid_price):
# Dapatkan konfirmasi Smart Money
sm = get_smart_money_signal(symbol)
# Confidence TINGGI + bullish = pasar akan segera naik
# Lebarkan ask (berharap menjual di harga lebih baik)
# Persempit bid (eksekusi lebih cepat di sisi beli)
if sm["confidence"] == == "HIGH" and sm["direction"] == == "long"::
bid_spread = 0.8 # 0,8bp di bid (kompetitif)
ask_spread = 1.4 # 1,4bp di ask (dorong untuk terisi)
elif sm["confidence"] == == "VETO"::
bid_spread = 2.0 # lebar di kedua sisi (ketidakpastian)
ask_spread = 2.0
else:
bid_spread = 1.0 # simetris normal
ask_spread = 1.0
return {
"bid": mid_price - (mid_price * bid_spread / 10000),
"ask": mid_price + (mid_price * ask_spread / 10000)
}

Manajemen Inventaris

Target Inventaris

Tetapkan target inventaris netral (misalnya, 0 BTC). Jika Anda mengakumulasi terlalu banyak, tingkatkan bid (dorong untuk menjual). Jika terlalu short, tingkatkan ask (dorong untuk membeli):

Python — Skew inventaris
def get_inventory_skew(current_inventory, target_inventory=0):
skew = current_inventory - target_inventory
# Jika memegang terlalu banyak (+1 BTC), lebarkan bid untuk menjual
if skew > 0:
bid_adjustment = min(skew * 0.5, 2.0) # tambahkan hingga 2bp
ask_adjustment = -min(skew * 0.5, 1.0) # perkecil hingga 1bp
# Jika short, lebarkan ask untuk membeli
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

Market Maker Produksi

Python — Sistem MM lengkap
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. Dapatkan sinyal Smart Money
sm = get_smart_money_signal(self.symbol)
# 2. Penyesuaian volatilitas
vol = calculate_volatility_1h(self.symbol)
# 3. Penyesuaian inventaris
inv_bid, inv_ask = get_inventory_skew(self.inventory)
# 4. Gabungkan semua faktor
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)
# Rata-rata harga yang disesuaikan
final_bid = np.mean([base_bid, vol_bid, sm_bid]) + inv_bid
final_ask = np.mean([base_ask, vol_ask, sm_ask]) + inv_ask
# Kirim pesanan
submit_order(side="bid", price=final_bid, size=1)
submit_order(side="ask", price=final_ask, size=1)

Optimalkan market making Anda dengan sinyal Smart Money

Market maker yang menyesuaikan spread berdasarkan aktivitas whale dan kepercayaan Smart Money melihat 15-25% harga eksekusi lebih baik dan mengurangi risiko inventaris.

Dapatkan Akses Algo →