Hyperliquid에서 마켓메이커 봇 구축하기
- hyperliquid market maker
- hl market maker tutorial
- hyperliquid 마켓메이커 봇
- 온체인 무기한 선물 마켓메이킹
- hyperliquid api 마켓메이킹
마켓메이킹(Market Making)은 금융시장에서 가장 오래된 거래 전략 중 하나입니다. 마켓메이커는 매수·매도 양쪽에 동시에 지정가 주문을 걸어두고, 두 가격의 차이인 스프레드(spread)를 통해 수익을 추구하면서 시장에 유동성을 공급합니다.
Hyperliquid 같은 온체인 무기한 선물 거래소가 성장하면서, 이제는 기관이 아니더라도 독립 개발자나 소규모 퀀트 팀이 공개 API를 활용해 마켓메이킹에 참여할 수 있습니다. 이 글에서는 Hyperliquid에서 마켓메이커 봇을 구축할 때 필요한 전략 로직, 기술 아키텍처, 리스크 관리, 그리고 OneKey 하드웨어 지갑으로 봇의 서명 키를 보호하는 방법을 정리합니다.
무기한 선물에서 마켓메이킹이란?
전통적인 현물 시장에서 마켓메이커는 실제 자산 재고를 보유합니다. 반면 무기한 선물 시장에서의 “재고”는 순롱 또는 순숏 포지션 노출로 나타납니다.
이상적인 마켓메이커는 항상 델타 중립(delta neutral)에 가까운 상태를 유지하면서, 가격 방향에 베팅하기보다는 매수·매도 호가를 자주 갱신해 스프레드를 확보하려고 합니다.
Hyperliquid의 오더북 구조는 중앙화 거래소와 유사하지만, 결제는 온체인에서 이뤄지고 자금은 사용자가 직접 커스터디합니다. 주문 유형, 수수료 구조, API 규격은 Hyperliquid 공식 문서에 자세히 설명되어 있으므로, 마켓메이커 봇을 개발하려면 반드시 먼저 확인해야 합니다.
마켓메이커 봇의 핵심 로직
스프레드 계산
가장 단순한 대칭형 마켓메이킹 전략은 중간가(mid price)를 기준으로 양쪽에 일정 비율의 스프레드를 두고 주문을 내는 방식입니다.
매수가 = mid_price * (1 - spread / 2)
매도가 = mid_price * (1 + spread / 2)
spread는 최소한 다음 비용과 리스크를 반영해야 합니다.
- 거래 수수료, 특히 테이커 수수료(Taker fee)
- 예상치 못한 불리한 가격 변동, 즉 adverse selection 리스크
- 펀딩비 변동으로 인한 헤지 비용
시장별 수수료 구간은 Hyperliquid 공식 문서를 참고하고, 자신의 운용 자금 규모에 맞춰 적절한 스프레드 기준을 설정하는 것이 좋습니다.
주문 갱신 로직
시장 가격은 계속 변하기 때문에, 기존에 걸어둔 주문도 적절한 가격을 유지하도록 주기적으로 갱신해야 합니다. 일반적인 갱신 트리거는 다음과 같습니다.
- 시간 기반: 예를 들어 5초마다 한 번씩 주문 갱신
- 가격 편차 기반: 시장 중간가가 현재 주문 가격에서 일정 임계값 이상 벗어나면 즉시 갱신
- 체결 기반: 주문이 체결되면 즉시 새 주문을 넣어 유동성 보충
실제 운영 환경에서는 여러 트리거를 함께 사용합니다. 너무 자주 갱신하면 수수료와 API 사용량이 늘고, 너무 늦게 갱신하면 낡은 호가가 차익거래 대상이 될 수 있습니다.
재고 리스크 관리
마켓메이킹을 하다 보면 한쪽 주문만 계속 체결되고 반대쪽은 체결되지 않아 재고가 쌓일 수 있습니다. 이때 순포지션이 중립에서 멀어지며, 이것이 마켓메이킹의 주요 리스크 중 하나입니다.
대표적인 관리 방법은 다음과 같습니다.
- 포지션 스큐(skewing): 순롱 상태라면 매수·매도 가격을 모두 아래로 조정해 추가 매수를 억제하고 매도를 유도합니다. 반대로 순숏 상태라면 가격을 위로 조정합니다.
- 하드 포지션 제한: 순포지션이 설정한 임계값을 넘으면, 해당 방향으로 더 이상 주문을 내지 않고 포지션이 줄어들 때까지 기다립니다.
# 의사코드: 순포지션 기반 가격 스큐
position = get_net_position("BTC") # 양수는 롱, 음수는 숏
skew_factor = -position * inventory_risk_param # 조정 가능한 재고 리스크 파라미터
bid_price = mid_price * (1 - spread / 2) + skew_factor
ask_price = mid_price * (1 + spread / 2) + skew_factor
시스템 아키텍처 개요
완성도 있는 마켓메이커 봇은 보통 다음 모듈로 구성됩니다.
┌─────────────────────────────────────────────────────┐
│ 마켓메이커 봇 메인 루프 │
├──────────────┬──────────────┬────────────────────────┤
│ 데이터 레이어 │ 전략 레이어 │ 실행 레이어 │
│ │ │ │
│ WebSocket │ 중간가 계산 │ REST API 주문/취소 │
│ 오더북 구독 │ 스프레드 계산 │ 배치 주문 관리 │
│ 체결 리포트 │ 재고 스큐 │ 서명(OneKey 하드웨어 레이어)│
│ │ 포지션 리스크 │ │
└──────────────┴──────────────┴────────────────────────┘
│ │
시장 데이터 입력 Hyperliquid로 주문 제출
- 데이터 레이어는 WebSocket으로 오더북 스냅샷과 체결 데이터를 실시간 구독합니다. 자세한 내용은 Hyperliquid 문서의 WebSocket 섹션을 참고하세요.
- 전략 레이어는 최신 시장 데이터를 기반으로 새로운 호가를 계산합니다.
- 실행 레이어는 REST API로 기존 주문을 일괄 취소하고 새 주문을 제출하며, EIP-712 구조화 서명으로 요청 보안을 확보합니다.
기술 구현 포인트
REST API로 주문 넣기
배치 주문 API를 사용하면 한 번의 요청으로 매수·매도 양쪽 주문을 동시에 제출할 수 있어 네트워크 지연을 줄이는 데 도움이 됩니다.
def refresh_quotes(exchange, coin, bid_px, ask_px, order_size):
# 기존 주문 일괄 취소
open_orders = get_open_orders(coin)
if open_orders:
cancel_ids = [o["oid"] for o in open_orders]
exchange.bulk_cancel(coin, cancel_ids)
# 새 호가 일괄 제출
new_orders = [
build_limit_order(coin, is_buy=True, px=bid_px, sz=order_size),
build_limit_order(coin, is_buy=False, px=ask_px, sz=order_size),
]
return exchange.bulk_orders(new_orders)
WebSocket으로 체결 감지하기
체결 알림은 REST 폴링만으로는 충분히 빠르게 처리하기 어렵습니다. 사용자 체결 이벤트는 WebSocket으로 구독하는 것이 좋습니다.
def on_user_fill(fill_data):
coin = fill_data["coin"]
side = fill_data["side"] # "B" 매수 체결 / "A" 매도 체결
sz = fill_data["sz"]
px = fill_data["px"]
update_inventory(coin, side, sz, px)
trigger_quote_refresh(coin) # 체결 후 즉시 호가 갱신
WebSocket 연결은 언제든 끊길 수 있으므로 자동 재연결 로직을 반드시 구현해야 합니다. 재연결 후에는 모든 채널을 다시 구독하고, 로컬 상태도 초기화하거나 서버 상태와 재동기화해야 합니다.
주요 리스크 분석
마켓메이킹은 “무위험 차익거래”가 아닙니다. 다음 리스크를 반드시 고려해야 합니다.
- 가격 급변 리스크: 급격한 변동성 확대 시 기존 호가가 불리한 가격에 체결될 수 있습니다.
- 재고 리스크: 한쪽 방향 체결이 누적되면 순포지션이 커지고, 시장이 반대로 움직일 때 손실이 확대될 수 있습니다.
- 유동성 리스크: 시장 깊이가 얕은 종목에서는 작은 주문도 가격에 큰 영향을 줄 수 있습니다.
- 기술 리스크: API 장애, WebSocket 단절, 봇 로직 오류, 서버 장애가 직접적인 손실로 이어질 수 있습니다.
- 레버리지 리스크: 무기한 선물은 레버리지 상품이므로 손실이 빠르게 커질 수 있으며, 청산 가능성도 존재합니다.
OneKey 하드웨어 지갑: 봇 키 관리의 모범 사례
마켓메이커 봇은 주문 제출을 위해 자주 서명해야 합니다. 하지만 서명이 잦다고 해서 보안 기준을 낮춰서는 안 됩니다.
OneKey 하드웨어 지갑은 개인키를 네트워크와 분리된 보안 칩에 보관합니다. 서버가 침해되더라도 공격자가 개인키를 직접 추출할 수 없도록 설계되어 있습니다.
권장 아키텍처는 다음과 같습니다.
- Hyperliquid의 API Agent 기능을 사용해 봇 전용 하위 계정 지갑을 만들고 메인 계정에 연결합니다.
- 하위 계정 지갑의 개인키는 OneKey 하드웨어 지갑으로 관리합니다.
- 봇 로직은 거래 메시지를 구성하고, 로컬 서명 서비스를 통해 OneKey로 서명 요청을 보냅니다.
- 서명된 요청만 Hyperliquid에 제출합니다.
이 구조에서는 봇 코드에 악성 로직이 주입되더라도, OneKey 하드웨어 지갑의 검토와 서명 과정을 거치지 않고 임의로 자금을 이동시키기 어렵습니다.
성능 최적화 팁
- 주문 취소와 재주문을 가능한 한 원자적 작업으로 묶습니다. Hyperliquid는 cancel-and-place 방식의 배치 인터페이스를 지원합니다.
- 가능하면
Alo(post-only, 지정가 메이커 전용) 주문 유형을 사용해 메이커 수수료 혜택을 노립니다. - 모든 체결의 타임스탬프, 가격, 수량을 기록하고 정기적으로 전략 성과를 분석합니다. 특히 손익을 스프레드 수익과 재고 손실로 나눠 보는 것이 중요합니다.
- 서킷 브레이커를 구현합니다. 예를 들어 계정 손실이 일중 한도를 넘으면 봇을 자동 중단하고 알림을 보내도록 설정합니다.
자주 묻는 질문
Q1. Hyperliquid에서 마켓메이킹을 시작하려면 자금이 얼마나 필요한가요?
Hyperliquid가 공식적으로 정한 최소 마켓메이킹 자금은 없습니다. 실제 진입 장벽은 시장 가격, 최소 주문 수량, 운용하려는 종목의 유동성에 따라 달라집니다.
처음에는 아주 작은 규모로 전략 로직을 테스트하고, 시스템이 안정적으로 동작하는 것을 확인한 뒤 점진적으로 규모를 늘리는 것이 좋습니다.
Q2. 마켓메이커 봇의 수익원은 무엇인가요?
주요 수익원은 매수·매도 스프레드입니다. 비슷한 가격대에서 매수 주문과 매도 주문이 모두 체결되면, 두 가격의 차이에서 수수료를 뺀 금액이 수익이 됩니다.
시장이 활발하고 거래량이 많을수록 잠재적 기회는 늘어날 수 있지만, 그만큼 경쟁도 치열해집니다.
Q3. 실제 자금을 위험에 노출하지 않고 봇을 테스트할 수 있나요?
Hyperliquid는 테스트넷 환경을 제공합니다. 공식 문서의 테스트넷 설정 부분을 참고해 API 엔드포인트를 테스트넷으로 전환하면, 실제 자금 손실 없이 봇 로직을 디버깅할 수 있습니다.
Q4. OneKey 하드웨어 지갑이 봇의 성능 병목이 되지 않나요?
OneKey의 서명 속도는 대부분의 퀀트 전략 요구사항을 충족할 수 있습니다. 다만 초고빈도 전략처럼 초당 수십 회 이상의 서명이 필요한 경우에는 API Agent 지갑 구조와 함께 사용하는 방식을 고려할 수 있습니다.
예를 들어 고빈도 주문 실행은 제한된 권한의 핫월렛에 위임하고, 메인 계정 관리와 자금 이동은 OneKey로 보호하는 방식입니다. 이렇게 하면 보안과 성능 사이의 균형을 맞출 수 있습니다.
Q5. API 속도 제한은 어떻게 처리해야 하나요?
Hyperliquid는 요청 빈도에 제한을 둡니다. 구체적인 기준은 공식 문서를 확인해야 합니다.
실무적으로는 토큰 버킷 알고리즘으로 요청 빈도를 제어하고, 속도 제한 응답(HTTP 429)을 받으면 자동으로 대기 후 재시도하는 로직을 구현하는 것이 좋습니다.
마무리
Hyperliquid에서 마켓메이커 봇을 구축하는 일은 퀀트 금융, 시스템 엔지니어링, 블록체인 보안을 함께 다루는 작업입니다. 스프레드 계산부터 재고 관리까지 모든 단계에 개선 여지가 있고, 소프트웨어 개인키 대신 OneKey 하드웨어 서명을 사용하는 것처럼 보안 계층을 강화하는 일도 중요합니다.
처음부터 자동화 봇을 개발하기 부담스럽다면, 먼저 OneKey Perps를 통해 무기한 선물 시장의 주문 흐름과 포지션 관리를 익혀보는 것도 좋은 출발점입니다. OneKey를 다운로드해 지갑을 설정하고, OneKey Perps에서 실제 거래 환경을 살펴본 뒤 자신에게 맞는 자동화 전략이 필요한지 판단해 보세요.
Hyperliquid App에서 직접 시장을 확인하거나, Hyperliquid 공식 문서를 참고해 API 세부 사항을 더 깊이 살펴볼 수 있습니다.
리스크 안내: 마켓메이킹은 고위험 퀀트 전략입니다. 시장 변동성, 기술 장애, 전략 실패로 인해 큰 손실이 발생할 수 있으며, 무기한 선물의 레버리지 특성은 잠재 손실을 확대할 수 있습니다. 이 글은 기술 학습을 위한 참고 자료일 뿐이며, 투자 또는 거래 조언이 아닙니다. 본인의 위험 감수 능력을 충분히 평가하고, 거주 지역의 법규를 준수한 뒤 신중하게 결정하시기 바랍니다.



