마켓 메이킹 전략 — Smart Money 인사이트로 유동성 제공
마켓 메이커는 양측 유동성을 제공하여 매수-매도 호가 스프레드에서 수익을 얻습니다. 암호화폐에서 이는 올바르게 수행할 경우 저위험입니다: 다른 거래소에서 헤징하여 최소 인벤토리만 보유함으로써 스프레드 차익을 얻을 수 있습니다. Smart Money API는 마켓 메이커가 고래 활동과 펀딩 비율 이상 징후에 기반해 스프레드를 동적으로 조정할 수 있도록 도와줍니다.
핵심 인사이트: 프로 마켓 메이커는 대형 주문이 예상될 때(고래 포지션 변화 기준) 스프레드를 넓히고, 모멘텀이 정체될 때 스프레드를 좁힙니다. Smart Money 신호를 통해 이러한 변화를 선제적으로 대응할 수 있습니다.
마켓 메이킹 기본 원리
스프레드
매수 호가에서 사고, 매도 호가에서 팝니다. 수익은 그 차이입니다:
왕복 거래당 수익 = 매도 호가 - 매수 호가
BTC/USDT가 $42,000일 때:
- 좁은 스프레드 (0.5bp): 매수 $41,978.95, 매도 $42,000 → 1 BTC 거래당 $21 수익
- 넓은 스프레드 (2bp): 매수 $41,916, 매도 $42,000 → 1 BTC 거래당 $84 수익
인벤토리 리스크
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 — 고정 스프레드 MM
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 — 변동성 조정 MM
def volatility_adjusted_mm(mid_price, returns_1h, confidence_score):
# 1시간 변동성 계산 (수익률 표준편차)
vol = np.std(returns_1h)
# 기본 스프레드: 1bp
base_spread_bps = 1.0
# 변동성 곱 (0-10배 스케일)
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 — 고래 반응형 MM
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 — 완전한 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. 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% 더 나은 실행 가격과 감소된 인벤토리 리스크를 경험합니다.
알고리즘 액세스 받기 →