Home>Blog>Every Wallet Has a Lean: How to Query Cohort Bias on Hyperliquid
Every Wallet Has a Lean: How to Query Cohort Bias on Hyperliquid

Every Wallet Has a Lean: How to Query Cohort Bias on Hyperliquid

By @CoinMarketMan - 14-Jul-2026

모든 지갑에는 방향성이 있다: Hyperliquid에서 코호트 바이어스를 조회하는 방법

Hyperliquid의 모든 지갑은 어딘가를 향해 기울어져 있습니다. 일부는 순 롱, 일부는 순 숏이며, 수천 개의 지갑에 걸친 그 기울기의 집계 방향은 어떤 캔들스틱 차트도 알려줄 수 없는 것을 말해줍니다. 문제는 당신이 그것을 읽고 있는가, 그리고 코호트별로 읽고 있는가입니다.

HyperTracker는 모든 활성 지갑을 16개의 행동 코호트 중 하나로 분류합니다. 8개는 계좌 규모(Shrimp부터 Leviathan까지), 8개는 누적 PnL(Money Printer부터 Giga-Rekt까지)로 나뉩니다. 각 코호트는 바이어스 점수를 가집니다. 해당 트레이더 그룹이 전체적으로 롱 또는 숏 어느 쪽으로 포지셔닝되어 있는지를 나타내는 단일 수치입니다. Money Printer가 한 방향으로 기울고 Giga-Rekt가 반대 방향으로 기울 때, 주목할 만한 다이버전스 신호가 생깁니다. 이 가이드는 그것을 조회하고, 해석하고, 위에 무언가를 구축하는 방법을 보여줍니다.

코호트 바이어스가 실제로 측정하는 것

바이어스는 정규화된 점수입니다. 음수는 코호트가 순 숏임을 의미합니다. 양수는 순 롱을 의미합니다. 0은 집계 포지셔닝이 균형 잡혀 있음을 의미합니다. 이 점수는 달러 금액이나 오픈 인터레스트의 비율이 아닙니다. 해당 세그먼트로 분류된 모든 지갑의 기울기를 포착하는 방향성 수치입니다.

건물의 기울기 측정기라고 생각하면 됩니다. 건물은 코호트 내의 모든 지갑입니다. 자본의 70%가 롱으로 배치되어 있다면 측정기는 양수 방향으로 기웁니다. 대부분의 지갑이 숏이라면 음수로 기웁니다. 크기는 기울기의 강도를 알려주고, 시간에 따른 변화는 확신이 쌓이고 있는지 아니면 약해지고 있는지를 알려줍니다.

핵심 구분점: 바이어스는 코호트 내 모든 지갑의 집계 방향성 기울기를 측정합니다. 특정 지갑이 무엇을 하는지는 알려주지 않습니다. 그룹이 무엇을 하는지를 알려주며, 이것이 시장 구조 분석에서 중요한 신호입니다.

이것이 중요한 이유는 개별 지갑은 거짓말을 하기 때문입니다. 단일 지갑은 헤징 중이거나, 베이시스 트레이드를 실행 중이거나, 확신을 반영하지 않는 방향으로 자본을 주차해 둘 수 있습니다. 하지만 Money Printer(누적 PnL $1M 이상)로 분류된 수백 개의 지갑이 집단적으로 롱으로 기울 때, 그것은 패턴이지 우연이 아닙니다.

Bias Spectrum

세 개의 엔드포인트, 같은 질문에 대한 세 가지 시각

HyperTracker API는 세 개의 연관된 엔드포인트를 통해 코호트 바이어스를 제공합니다. 각각은 같은 질문의 약간 다른 버전에 답합니다. 이 코호트는 어디로 기울어져 있는가?

1. 바이어스 히스토리 (롤링 12시간 윈도우)

/segments/{segmentId}/bias-history 엔드포인트는 롤링 12시간 윈도우에 걸친 바이어스 값의 시계열을 반환합니다. 각 데이터 포인트는 해당 순간의 코호트 집계 기울기 스냅샷입니다.

import requests

BASE_URL = "https://ht-api.coinmarketman.com/api/external"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

def fetch_bias_history(segment_id, recency="all"):
    resp = requests.get(
        f"{BASE_URL}/segments/{segment_id}/bias-history",
        headers=HEADERS,
        params={"positionRecencyTimeframe": recency}
    )
    resp.raise_for_status()
    return resp.json()

# Money Printer 바이어스 (최근 12시간)
bias = fetch_bias_history(segment_id=8)
for point in bias[:5]:
    print(f"{point['timestamp']}: {point['bias']}")

positionRecencyTimeframe 파라미터는 포지션 연령별로 필터링합니다: 24h, 7d, 30d, 또는 all(기본값). 24h로 설정하면 최근에 열린 포지션의 바이어스만 표시되어, 몇 주째 열려 있을 수 있는 레거시 포지션과 구분하여 신선한 확신을 격리합니다.

조회 기간 제한: 이 엔드포인트는 롤링 12시간 윈도우를 반환합니다. 다중 일 백테스팅이 아닌 당일 감정 분석을 위해 설계되었습니다. 과거 추세 데이터가 필요하다면 대신 포지션 메트릭스 엔드포인트를 사용하세요(아래에서 다룸).

2. 세그먼트 요약 (현재 스냅샷)

/segments/{segmentId}/summary 엔드포인트는 코호트의 현재 집계 상태를 제공합니다. 트레이더 수, 총 명목 익스포저, 롱 대 숏 분석, 그리고 상위 10개 오픈 포지션입니다.

def fetch_segment_summary(segment_id, position_age="all"):
    resp = requests.get(
        f"{BASE_URL}/segments/{segment_id}/summary",
        headers=HEADERS,
        params={"positionAge": position_age}
    )
    resp.raise_for_status()
    return resp.json()

# Leviathan 요약 ($5M+ 지갑)
summary = fetch_segment_summary(segment_id=7)
print(f"트레이더 수: {summary['traderCount']}")
print(f"롱: ${summary['longNotional']:,.0f}")
print(f"숏: ${summary['shortNotional']:,.0f}")
print(f"바이어스: {'LONG' if summary['longNotional'] > summary['shortNotional'] else 'SHORT'}")

이 엔드포인트는 시계열을 제공하지 않습니다. 단일 시점 스냅샷입니다. 가치는 원시 수치에 있습니다. 자체 롱/숏 비율을 계산하고, 코호트 간 비교하며, 상위 10개 포지션이 어떤 자산에 집중되어 있는지 정확히 확인할 수 있습니다. positionAge 필터는 바이어스 엔드포인트와 동일하게 작동하며 최근 활동을 격리할 수 있습니다.

3. 코인 및 세그먼트별 포지션 메트릭스 (수 주 단위 히스토리)

/position-metrics/coin/{coin}/segment/{segmentId} 엔드포인트는 추세 분석에 사용하는 것입니다. 특정 코인과 코호트 조합에 대한 과거 롱/숏 값, OI, 트레이더 수를 약 4주까지 반환합니다.

from datetime import datetime, timedelta

def fetch_cohort_position_metrics(coin, segment_id, days_back=14):
    start = (datetime.utcnow() - timedelta(days=days_back)).strftime(
        "%Y-%m-%dT00:00:00.000Z"
    )
    resp = requests.get(
        f"{BASE_URL}/position-metrics/coin/{coin}/segment/{segment_id}",
        headers=HEADERS,
        params={"start": start}
    )
    resp.raise_for_status()
    return resp.json()

# Smart Money BTC 포지셔닝 (최근 14일)
metrics = fetch_cohort_position_metrics("BTC", segment_id=9, days_back=14)
for entry in metrics[:3]:
    long_pct = entry["longValue"] / max(entry["longValue"] + entry["shortValue"], 1)
    print(f"{entry['timestamp']}: {long_pct:.1%} 롱")

이 엔드포인트는 ISO 8601 형식의 start 파라미터가 필요합니다. 최대 조회 기간은 약 4주입니다. 그 이상의 데이터는 이용할 수 없습니다. 더 긴 과거 분석을 위해서는 개별 포지션 엔드포인트(/positions)를 사용하세요. 약 10개월까지 조회 가능합니다.

Api Data Flow

코호트 다이버전스 대시보드 구축

코호트 바이어스에서 가장 실행 가능한 신호는 단일 코호트의 기울기가 아닙니다. 두 코호트 간의 격차입니다. Money Printer 코호트(세그먼트 ID 8)가 롱으로 포지셔닝되어 있고 Giga-Rekt 코호트(세그먼트 ID 15)가 숏으로 포지셔닝되어 있을 때, 그 다이버전스는 집계 OI나 펀딩 비율만으로는 알 수 없는 시장에 대한 무언가를 알려줍니다.

두 코호트를 폴링하고 다이버전스 점수를 계산하는 스크립트입니다:

import time

def compute_divergence():
    mp_bias = fetch_bias_history(segment_id=8)  # Money Printer
    gr_bias = fetch_bias_history(segment_id=15)  # Giga-Rekt

    if not mp_bias or not gr_bias:
        return None

    # 각 코호트의 가장 최근 바이어스 값
    mp_latest = mp_bias[0]["bias"]
    gr_latest = gr_bias[0]["bias"]

    divergence = mp_latest - gr_latest

    return {
        "money_printer_bias": mp_latest,
        "giga_rekt_bias": gr_latest,
        "divergence": round(divergence, 4),
        "interpretation": interpret_divergence(divergence)
    }

def interpret_divergence(div):
    # 예시 임계값 — 자체 백테스팅을 기반으로 보정하세요
    if div > 0.3:
        return "Strong bullish divergence: winners long, losers short"
    elif div > 0.15:
        return "Moderate bullish divergence"
    elif div < -0.3:
        return "Strong bearish divergence: winners short, losers long"
    elif div < -0.15:
        return "Moderate bearish divergence"
    return "Low divergence: cohorts roughly aligned"

여기의 해석 임계값은 예시적인 출발점입니다. 실제 보정은 관찰하는 자산과 다이버전스가 해소되는 빈도에 따라 달라집니다. 어떤 고정된 임계값을 트리거로 신뢰하기 전에 며칠간 값을 기록하세요.

Divergence Dashboard

확인을 위해 바이어스와 포지션 메트릭스 결합하기

바이어스만으로는 방향을 알려줍니다. 포지션 메트릭스는 규모를 알려줍니다. 확신 분석은 이 둘의 조합에서 이루어집니다.

Money Printer 코호트가 BTC에서 +0.35의 바이어스를 보인다고 가정해 봅시다. 명확한 롱 기울기입니다. 하지만 그 뒤에는 얼마나 많은 자본이 있을까요? 포지션 메트릭스 엔드포인트는 실제 명목 값으로 그 질문에 답합니다. 그 기울기가 수백만 달러의 익스포저를 나타내는지, 아니면 우연히 같은 방향을 가리키는 소수의 작은 포지션인지 확인할 수 있습니다.

def full_cohort_picture(coin, segment_id):
    # 현재 바이어스 방향
    bias = fetch_bias_history(segment_id)
    latest_bias = bias[0]["bias"] if bias else None

    # 현재 명목 익스포저
    summary = fetch_segment_summary(segment_id)
    long_val = summary.get("longNotional", 0)
    short_val = summary.get("shortNotional", 0)

    # 과거 추세 (2주)
    metrics = fetch_cohort_position_metrics(coin, segment_id, days_back=14)
    trend = []
    for m in metrics[-5:]:
        total = m["longValue"] + m["shortValue"]
        trend.append(m["longValue"] / total if total > 0 else 0.5)

    avg_trend = sum(trend) / len(trend) if trend else 0.5

    return {
        "segment_id": segment_id,
        "coin": coin,
        "current_bias": latest_bias,
        "long_notional": long_val,
        "short_notional": short_val,
        "trend_avg_long_pct": round(avg_trend, 3),
        # 예시 임계값
        "conviction": "HIGH" if abs(latest_bias or 0) > 0.25
                      and abs(avg_trend - 0.5) > 0.1 else "MODERATE"
    }

# BTC에서 두 코호트 비교
mp_picture = full_cohort_picture("BTC", 8)   # Money Printer
gr_picture = full_cohort_picture("BTC", 15)  # Giga-Rekt
print(f"Money Printer: bias={mp_picture['current_bias']}, "
      f"${mp_picture['long_notional']:,.0f} 롱")
print(f"Giga-Rekt: bias={gr_picture['current_bias']}, "
      f"${gr_picture['short_notional']:,.0f} 숏")

이 통합 뷰는 세 가지를 한 번에 알려줍니다. 방향(바이어스), 그 뒤의 자본(요약), 그리고 현재 포지셔닝이 최근 추세와 일치하는지(포지션 메트릭스). 세 가지 모두 동의하는 것은 하나만 볼 때보다 신뢰도가 높은 신호입니다.

요청 한도와 폴링 전략

각 바이어스 히스토리 호출은 세그먼트당 하나의 API 요청입니다. 16개 코호트 전체 스윕은 16회 요청이 필요합니다. 세그먼트 요약(16회 추가)과 4개 주요 코호트 상위 3개 코인에 대한 포지션 메트릭스(12회 추가)를 더하면, 전체 대시보드 갱신에 약 44회 요청이 필요합니다.

무료 티어에서 일 100회 요청으로 44회 전체 갱신을 하루 두 번 실행할 수 있으며, 즉흥적인 조회를 위한 여유도 있습니다. 매일 아침저녁 바이어스 확인으로 충분합니다. 5분 간격 지속 모니터링을 위해서는 $179/mo의 Pulse 티어에서 월 50,000회 요청을 제공합니다. 사이클당 44회, 하루 288 사이클이면 하루 12,672회 요청으로, 하루 약 1,600회라는 월간 예산 내에 충분히 맞습니다. 스윕 범위를 가장 중요한 코호트 4개와 코인 2개로 좁히면 사이클당 비용이 약 12회로 줄어들어 24시간 내내 여유롭게 운영할 수 있습니다.

폴링 팁: 당사 데이터는 대부분의 엔드포인트에서 약 5분마다 갱신되며, 집계 분석은 12~15분마다 업데이트됩니다. 5분보다 빠르게 폴링하면 동일한 스냅샷이 반환되어 요청 예산을 낭비하게 됩니다.

바이어스가 알려줄 수 없는 것

코호트 바이어스는 강력한 렌즈지만 한계가 있습니다. 몇 가지 중요한 한계를 염두에 두세요.

  • 단일 지갑 귀속 불가. 바이어스는 집계값입니다. 특정 고래가 무엇을 하는지 알아야 한다면 주소 필터와 함께 /positions 엔드포인트를 사용하세요.
  • 바이어스 히스토리는 12시간 롤링 윈도우. 이 엔드포인트만으로는 바이어스 기반 전략을 백테스팅할 수 없습니다. 다중 일 조회(약 4주)에는 /position-metrics/coin/{coin}/segment/{segmentId}를, 더 깊은 과거 분석(약 10개월)에는 /positions를 사용하세요.
  • 바이어스는 방향을 예측하지 않습니다. 포지셔닝된 자본이 어디에 있는지를 보여줍니다. 해당 자본이 맞는지 틀린지는 별개의 질문입니다. 포지션 메트릭스 엔드포인트로 코호트 정확도의 과거 분석이 가능하지만, 바이어스 값 자체는 서술적이지 예측적이지 않습니다.
  • 헤징과 베이시스 트레이드가 신호를 흐립니다. 현물 롱과 퍼프 숏을 동시에 가진 지갑은 실제 방향성 익스포저가 중립임에도 바이어스 계산에서 숏으로 표시됩니다. 코호트 집계가 이 노이즈를 완화하지만 완전히 제거하지는 않습니다.

지금 바로 코호트 바이어스 조회 시작하기

무료 티어는 하루 100회 API 호출을 제공합니다. 모든 코호트에 대한 바이어스 스냅샷을 하루 두 번 가져오고 다이버전스 대시보드 구축을 시작하기에 충분합니다.

무료 API 키 받기

코호트 바이어스는 원시 포지셔닝 데이터에서 시장 구조에 대한 견해까지의 가장 빠른 경로입니다. 세 개의 엔드포인트와 몇 줄의 Python 코드로, 역사적으로 수익을 내는 지갑들이 역사적으로 손실을 내는 지갑들과 같은 방향으로 기울고 있는지 확인할 수 있습니다. 둘이 동의하면 시장에 컨센서스가 있는 것입니다. 둘이 갈라지면 무언가가 곧 해소될 것입니다. 당신의 역할은 그 순간을 지켜보는 것입니다.