Your Risk Engine Is Blind Without Liquidation Scores
By @CoinMarketMan - 14-Jul-2026
청산 점수 없는 리스크 엔진은 맹목이다
7월 4일, Hyperliquid의 금 무기한 선물이 1분도 안 되는 시간에 약 $100 급락했다가 차익거래 봇이 가격을 되돌렸다. 그 60초 동안 레버리지 롱 포지션을 보유하고 있던 트레이더들은 눈 깜짝할 사이에 청산당했다. 컨트랙트는 결국 자체 정정됐지만, 피해는 이미 발생한 뒤였다.
이런 플래시 크래시는 예고 없이 찾아온다. 공휴일 주말, 유동성이 얕은 시간대, 오라클 불일치 상황에서 발생한다. 리스크 엔진이 가격과 마진만 들여다본다면, 수면 아래에서 쌓이는 압력을 전혀 감지하지 못하고 있는 것이다. 청산 리스크 점수는 이 공백을 메운다. 특정 자산에서 얼마나 많은 미결제약정(OI)이 강제 청산에 가까운지, 그 자산을 보유한 행동 코호트별로 세분화해서 보여준다.
이 글에서는 HyperTracker의 청산 리스크 엔드포인트를 실제 작동하는 리스크 엔진에 연결하는 방법을 설명한다. 끝까지 읽으면 리스크 점수를 폴링하고, 코호트별로 필터링하며, 연쇄 청산이 시작되기 전에 알림을 발송하는 Python 코드를 갖게 된다.
청산 리스크 점수가 실제로 측정하는 것
대부분의 리스크 대시보드는 마진 비율을 추적한다. 자신의 포지션 관리에는 유용하지만, 더 넓은 시장에 대해서는 아무것도 알려주지 않는다. 청산 리스크 점수는 질문을 뒤집는다. "내가 청산당하려는가"가 아니라 "시장 전체에서 얼마나 많은 포지션이 청산 직전인가"를 묻는다.
청산 리스크 엔드포인트는 특정 코호트 내 각 자산에 대해 세 가지 필드를 반환한다.
totalValue: 해당 코호트에서 그 자산의 총 미결제약정riskValue: 청산 임계값의 75% 이내에 위치한 포지션의 달러 금액percentRisk: 총 익스포저 대비 위험 노출 비율
Whale 코호트의 ETH에서 percentRisk가 18%라는 것은 Whale이 보유한 ETH 포지션 중 거의 5분의 1이 강제 청산에 가깝다는 의미다. 이것은 선행 지표다. 레버리지가 높은 대형 포지션들이 청산 임계값 근처에 몰리면, 비교적 작은 가격 움직임만으로도 연쇄 청산을 유발할 수 있다. 강제 매도가 가격을 끌어내리고, 추가 청산을 촉발하며, 가격을 더 밀어내린다.
엔드포인트: 호출 한 번으로 모든 자산을
청산 리스크 엔드포인트 경로:
GET /api/external/{segmentId}/assets/liquidation-risk
경로 파라미터로 코호트의 세그먼트 ID를 전달하면, 리스크 익스포저 순으로 정렬된 자산 목록이 반환된다. 응답에는 totalCount(해당 코호트에서 포지션을 보유한 자산 수)와 각 자산의 리스크 세부 정보를 담은 items 배열이 포함된다.
조회할 수 있는 코호트 ID 전체 목록:
| 코호트 | 유형 | ID | |---|---|---| | Shrimp ($0-$250) | 규모 | 16 | | Fish ($250-$10K) | 규모 | 1 | | Dolphin ($10K-$50K) | 규모 | 2 | | Apex Predator ($50K-$100K) | 규모 | 3 | | Small Whale ($100K-$500K) | 규모 | 4 | | Whale ($500K-$1M) | 규모 | 5 | | Tidal Whale ($1M-$5M) | 규모 | 6 | | Leviathan ($5M+) | 규모 | 7 | | Money Printer (+$1M+) | PnL | 8 | | Smart Money (+$100K-$1M) | PnL | 9 | | Consistent Grinder (+$10K-$100K) | PnL | 10 | | Humble Earner ($0-$10K) | PnL | 11 | | Exit Liquidity (-$10K-$0) | PnL | 12 | | Semi-Rekt (-$100K to -$10K) | PnL | 13 | | Full Rekt (-$1M to -$100K) | PnL | 14 | | Giga-Rekt (below -$1M) | PnL | 15 |
신호의 품질은 어느 코호트를 조회하느냐에 달려 있다. Whale과 Leviathan의 청산은 시장을 움직인다. 강제 청산 물량이 가격에 영향을 줄 만큼 크기 때문이다. Shrimp 청산은 노이즈에 불과하다. 따라서 리스크 엔진은 그에 맞게 점수에 가중치를 부여해야 한다.
구축하기: 50줄 미만의 Python 리스크 모니터
아래는 50줄 미만으로 작성한 실제 작동하는 리스크 모니터다. 시장에 영향력이 큰 코호트(Whale, Tidal Whale, Leviathan, Smart Money, Money Printer)를 대상으로 청산 리스크 엔드포인트를 폴링하고, 가중 점수를 산출한 뒤, 집계값이 설정한 임계값을 넘으면 알림을 발송한다.
import requests, time, json
API_BASE = "https://ht-api.coinmarketman.com/api/external"
TOKEN = "YOUR_JWT_TOKEN"
HEADERS = {"Authorization": f"Bearer {TOKEN}"}
# 시장을 움직이는 코호트와 상대적 가중치
WATCHED_COHORTS = {
5: {"name": "Whale", "weight": 1.0},
6: {"name": "Tidal Whale", "weight": 1.5},
7: {"name": "Leviathan", "weight": 2.0},
9: {"name": "Smart Money", "weight": 1.2},
8: {"name": "Money Printer", "weight": 1.3},
}
ALERT_THRESHOLD = 15.0 # 알림 발동 기준 가중 percentRisk
POLL_INTERVAL = 300 # 5분, API 갱신 주기와 동일
def get_risk(segment_id):
url = f"{API_BASE}/{segment_id}/assets/liquidation-risk"
resp = requests.get(url, headers=HEADERS)
resp.raise_for_status()
return resp.json()["items"]
def compute_weighted_risk(coin):
"""단일 자산의 코호트 전반 가중 리스크 점수 계산."""
total_weight = 0
weighted_sum = 0
for seg_id, meta in WATCHED_COHORTS.items():
assets = get_risk(seg_id)
match = next((a for a in assets if a["coin"] == coin), None)
if match:
weighted_sum += match["percentRisk"] * meta["weight"]
total_weight += meta["weight"]
return weighted_sum / total_weight if total_weight else 0
def scan_and_alert():
# 자산 목록 확보를 위해 코호트 하나 먼저 조회
all_assets = get_risk(5)
for asset in all_assets:
score = compute_weighted_risk(asset["coin"])
if score >= ALERT_THRESHOLD:
print(f"ALERT: {asset['coin']} 가중 리스크 = {score:.1f}%")
# 웹훅, Telegram 봇, Slack 호출로 교체하세요
fire_alert(asset["coin"], score)
while True:
scan_and_alert()
time.sleep(POLL_INTERVAL)
임계값과 가중치에 대한 참고사항. ALERT_THRESHOLD 15.0과 코호트 가중치는 예시로 제시한 출발점이다. 실제 백테스팅과 자신의 리스크 허용 범위를 기준으로 두 값 모두 직접 보정해야 한다. HyperTracker는 지갑을 코호트로 분류한다. 특정 리스크 임계값이나 포지션 사이징 규칙을 제시하지 않는다.
코호트 필터링: 왜 중요한가
단순하게 접근하면 16개 코호트 전체를 조회해서 리스크 점수를 평균 낼 수도 있다. 그런데 이는 신호를 희석시켜 아무 정보도 주지 못하는 결과로 이어진다. Shrimp 포지션이 청산 직전에 몰려도 시장은 거의 반응하지 않는다. Leviathan이 위험에 처하면, 강제 매도 물량이 플래시 크래시를 만드는 연쇄 청산을 일으킬 수 있다.
위 코드는 대형 잔고 코호트에 높은 가중치를 부여해 이 문제를 처리한다. 별도의 알림 단계도 구성할 수 있다.
- 1단계 (긴급): Leviathan, Tidal Whale, Money Printer. 이 코호트의 포지션은 명목 익스포저가 가장 크다. 리스크 상승 시 즉시 발동.
- 2단계 (경고): Whale, Small Whale, Smart Money. 의미 있는 물량이지만 시장 충격은 상대적으로 작다.
- 3단계 (참고): 나머지 전부. 리서치와 백테스팅용으로 로깅하되, 실운영 환경에서는 알림 발송 불요.
이 단계별 구조는 알림 채널을 깔끔하게 유지해준다. 모든 것에 알림을 보내는 리스크 엔진은 결국 아무것도 알리지 않는 것과 같다. 운영자가 주의를 기울이지 않게 되기 때문이다.
점수에서 결정으로: 봇이 해야 할 일
리스크 점수 자체는 관측이다. 결정이야말로 모니터링 대시보드와 리스크 엔진을 구분 짓는다. 청산 리스크 상승을 자동화된 액션으로 전환하는 방법을 소개한다.
연쇄 청산 전에 익스포저 줄이기
봇이 ETH 롱을 보유 중인데 ETH의 가중 청산 리스크 점수가 임계값을 넘어 급등했다면, 포지션 규모를 줄이거나 손절 폭을 넓혀야 한다는 신호다. 논리는 단순하다. 리스크가 높다는 것은 레버리지 포지션 풀이 강제 청산 직전에 있다는 뜻이고, 대형 포지션의 강제 청산은 가격을 불리한 방향으로 몰 수 있다. 방향을 예측할 필요가 없다. 그냥 규모를 줄이면 된다.
급락 이후 페이드 기회 포착하기
연쇄 청산은 대개 과도하게 움직이는 경향이 있다. 급락이 마무리된 후에는 위험 포지션들이 이미 청산됐기 때문에 청산 리스크 점수가 급격히 떨어진다. 이 시점에서 평균 회귀가 발동하는 경우가 많다. 봇이 리스크 점수를 시계열로 추적하고 있다면, 고점에서 저점으로의 갑작스러운 하락은 강제 매도가 끝나고 반등이 온다는 신호가 될 수 있다.
코호트 바이어스와 교차 참조하기
청산 리스크는 압력이 쌓이고 있음을 알려준다. 코호트 바이어스는 어느 방향인지를 알려준다. Leviathan들이 압도적으로 롱 포지션을 보유한 상태에서 청산 리스크가 상승하고 있다면, 방향성 신호가 된다. 강제 매도가 발생한다면 롱 쪽이 된다는 뜻이다. /assets/liquidation-risk 엔드포인트와 /bias 엔드포인트를 함께 활용하면 더 풍부한 시각을 얻을 수 있다.
실제 맥락: 지금 이것이 중요한 이유
Hyperliquid의 총 미결제약정(OI)은 7월 13일 $11.07B에 달해 2026년 최고치를 기록했다. OI가 늘어날수록 포지션, 레버리지, 잠재적 청산 물량도 늘어난다. 플랫폼이 성장할수록 "내 마진 모니터링"과 "시장 전체 마진 모니터링"의 격차는 벌어진다.
7월 4일 금 플래시 크래시가 교과서적인 사례다. 금 무기한 선물이 얇은 공휴일 유동성과 오라클 가격 이탈로 인해 1분도 안 되는 시간에 약 $100 급락했다. 컨트랙트는 빠르게 회복됐지만, 그 60초 동안 레버리지 롱을 보유하고 있던 누구든 대응할 틈도 없이 청산당했다. 금의 청산 리스크 점수를 추적하는 리스크 엔진이 있었다면, 크래시 발생 전에 위험 포지션이 집중된 구간에 이미 플래그가 세워졌을 것이다.
이 패턴은 반복된다. 2026년 5월 하순, Hyperliquid의 SpaceX 상장 전 무기한 선물이 오라클 데이터 문제로 30분도 안 되는 시간에 약 45% 하락하며 1,393개 포지션에서 $1.51M의 청산이 발생했다. 자산은 달랐지만 메커니즘은 동일했다. 청산 임계값 근처에 집중된 레버리지, 촉발 이벤트, 그리고 연쇄 청산. 리스크 엔진이 미리 감지했느냐 아니냐만 달랐다.
실운영 환경 전환
위의 최소한의 모니터는 프로토타이핑에 적합하다. 실운영 환경에서는 몇 가지를 추가해야 한다.
- 상태 지속성: 히스토리컬 리스크 점수를 시계열 데이터베이스(InfluxDB, TimescaleDB, 혹은 평범한 CSV)에 저장한다. 임계값 보정을 백테스팅하고 추세를 파악하는 데 활용할 수 있다.
- 웹훅 수신: Flow ($799/mo) 또는 Stream ($1,999/mo) 티어를 사용하면 폴링 대신 웹훅으로 푸시 업데이트를 받을 수 있다. 5분 폴링 간격이 사라지고, 데이터가 갱신되는 즉시 리스크 정보를 받게 된다.
- 멀티 자산 상관관계: 동일 코호트 내 여러 자산에서 청산 리스크가 동시에 급등하면, 이는 더 광범위한 레버리지 축소 이벤트다. 리스크 엔진은 상관된 급등을 감지하고 집계 신호에 반응해야 한다. 고립된 급등보다 상관된 급등이 훨씬 위험하기 때문이다.
- 대시보드 레이어: 청산 리스크 데이터를 Grafana, Retool, 또는 커스텀 프론트엔드로 파이프한다. 리스크 점수를 가격과 겹쳐서 시각화하면 로그 출력을 읽는 것보다 훨씬 빠르게 패턴을 인식할 수 있다.
직접 구축 vs. API 도입 비용 비교: 원시 Hyperliquid 데이터에서 동등한 청산 리스크 점수를 구축하려면 모든 포지션을 수집하고, 청산 임계값까지의 거리를 계산하며, 지갑을 행동 세그먼트로 분류하고, 코호트별로 집계해야 한다. 구축에 수개월이 걸리고 운영비로 월 $10,000 이상이 든다. HyperTracker API는 REST 호출 한 번으로 동일한 인텔리전스를 월 $179부터 제공한다.
리스크 엔진에 청산 리스크 점수를 추가하세요
16개 행동 코호트. 자산 단위 리스크 익스포저. API 호출 한 번. 무료 티어로 지금 바로 구축을 시작하세요.
리스크 엔진은 이미 마진과 PnL을 추적하고 있다. 청산 리스크 점수는 그동안 빠져 있던 레이어를 추가한다. 나머지 시장이 강제로 무엇을 해야 하는지 보여주는 레이어다. 플래시 크래시가 60초 안에 전개되는 시장에서, 그 선견지명은 익스포저를 줄이는 것과 Exit Liquidity가 되는 것의 차이를 만든다.