전체 글
마켓 데이터Up/Down 마켓BTCETH

Polymarket Up/Down 마켓: 슬러그, 결과 확정, 그리고 사라지는 오더북

Polymarket의 암호화폐 Up/Down 마켓은 플랫폼에서 가장 빈도가 높은 상품이면서 가장 오해받는 상품 중 하나입니다. 슬러그 읽는 법, 결과 확정을 결정하는 요소, 그리고 마켓이 마감된 뒤 Polymarket이 정확히 무엇을 보관하는지 설명합니다.

10분 분량2026년 9월 24일 업데이트

Polymarket의 암호화폐 Up/Down 마켓은 5분마다 정산되고, 24시간 내내 운영되며, 상당한 거래량을 기록합니다. 아래 예시로 사용한 5분 BTC 마켓 하나의 거래량이 $638,615였습니다. 예측 시장에서 고빈도 상품에 가장 가까운 존재입니다.

동시에 플랫폼에서 연구하기 가장 어려운 마켓이기도 합니다. 그 이유는 설계와는 무관하고, 마감 후 이 마켓들에 일어나는 일과 전적으로 관련이 있습니다. 이 글은 세 부분을 모두 다룹니다. 슬러그 읽기, 결과 확정 이해하기, 그리고 그 뒤에 남는 것.

슬러그 해독하기

모든 Up/Down 마켓에는 고정되고 완전히 예측 가능한 형식의 슬러그가 있습니다:

{coin}-updown-{timeframe}-{unix_start}

btc-updown-5m-1775181000
│   │      │   └── Unix timestamp: window START, in UTC
│   │      └────── Timeframe: 5m | 15m | 1h | 4h | 24h
│   └───────────── Always "updown"
└───────────────── Coin: btc | eth | sol | xrp | doge | bnb

끝의 정수가 유용한 부분입니다. 거래 구간이 시작되는 순간의 Unix 타임스탬프(UTC)입니다. 해독하면 마켓이 정확히 어떤 5분을 다루는지 알 수 있습니다:

from datetime import datetime, timezone

slug = "btc-updown-5m-1775181000"
coin, _, timeframe, ts = slug.split("-")

start = datetime.fromtimestamp(int(ts), tz=timezone.utc)
print(coin.upper(), timeframe, start)
# BTC 5m 2026-04-03 01:50:00+00:00

# The market's own title renders this in US Eastern:
# "Bitcoin Up or Down - April 2, 9:50PM-9:55PM ET"

형식이 결정적이므로 슬러그를 검색하지 않고 직접 만들 수 있습니다. 모든 5m BTC 마켓은 5분 경계에서 시작하므로, 어떤 구간의 슬러그든 btc-updown-5m-에 그 경계의 Unix 타임스탬프를 붙이면 됩니다. 슬러그를 갖고 있고 결과를 알고 싶다면 마켓 조회에 붙여 넣으세요.

startDate 필드를 믿지 마세요

이 마켓들을 파싱하는 거의 모든 사람이 여기서 걸립니다. btc-updown-5m-1775181000의 API startDate는 2026-04-02T01:58:12Z로, 거래 구간보다 무려 24시간 이릅니다. 이 필드는 구간이 시작되는 시각이 아니라 마켓 객체가 생성된 시각을 기록합니다. 슬러그 타임스탬프가 실제 시작이고, endDate(2026-04-03T01:55:00Z)가 실제 종료입니다. endDate는 정확히 슬러그 타임스탬프에 300초를 더한 값입니다.

결과 확정 방식

구조는 의도적으로 단순합니다. 마켓은 구간 종료 시점의 코인 가격이 시작 시점보다 높은지를 묻습니다. 결과는 Up과 Down 두 가지이며, 그중 하나가 $1로 정산됩니다.

필드btc-updown-5m-1775181000의 값
questionBitcoin Up or Down - April 2, 9:50PM-9:55PM ET
outcomes["Up", "Down"]
outcomePrices["0", "1"]: Down 승리
endDate2026-04-03T01:55:00Z
volumeNum638,615
spread0.01
umaResolutionStatusresolved
Gamma API에서 가져온 실제 값입니다. 정산 후 승자는 outcomePrices로 읽습니다.

이 마켓들을 모델링하는 사람에게 중요한, 이 설계의 몇 가지 결과:

  • 동률은 Down으로 확정됩니다. 질문은 종료가가 시작가보다 높은지입니다. 높지 않으면(정확히 같은 경우 포함) Down입니다. 5분 구간에서는 드물지만 무시할 수준은 아니며, 단순한 동전 던지기 모델이 놓치는 작은 구조적 비대칭을 만듭니다.
  • 결과 확정은 스냅샷이 아니라 Chainlink TWAP을 따릅니다. 2026년 8월 7일부터 암호화폐 Up/Down 마켓은 마감 시점의 단일 가격이 아니라 시간 가중 평균으로 정산되며, 8월 14일부터 모든 5분 마켓은 60초 구간을 사용합니다(그 사이 일주일은 30초였습니다). 넘어야 할 가격과 정산 가격 모두 그 TWAP에서 나옵니다. 이는 막판 양상을 크게 바꿉니다. 마지막 10초의 급등은 60초 평균을 거의 움직이지 못하므로, 막판 반전은 현물 차트에서 보이는 것보다 훨씬 약합니다.
  • 만기가 가까워질수록 확률이 강하게 압축됩니다. 60초가 남고 코인이 보합이면 양쪽 모두 50¢ 쪽으로 수렴하고 스프레드가 승부를 가릅니다. 결정적인 움직임 뒤 10초가 남으면 한쪽은 97–99¢에 고정되고 거래할 것이 거의 남지 않습니다.
  • 스프레드가 전부입니다. $1을 지급하는 마켓에서 0.01 호가 스프레드는 이진 결과에 대한 1% 왕복 비용입니다. 중간가 기준으로 수익이 나 보이는 전략 대부분은 스프레드를 넘고 나면 수익이 나지 않습니다. 아래를 참고하세요.

8월 이전에 무언가를 만들었다면 다시 확인하세요

5주 동안 정산 관련 변경이 세 번 있었습니다. 8월 7일 TWAP 결과 확정 도입(5m 마켓은 30초 구간), 8월 14일 60초 구간으로 변경, 그리고 암호화폐 마켓의 테이커 지연이 8월 17일 250ms → 50ms, 이어서 9월 4일 50ms → 150ms로 바뀌었습니다. 8월 이전의 움직임으로 보정한 모델은 다른 상품에 맞춰 보정된 것입니다.

5m 마켓이 구조적으로 다른 이유

24시간 BTC 마켓에서는 펀더멘털과 자금 흐름이 중요합니다. 5분 마켓에서는 시장 미시구조를 거래합니다. 주문 흐름, 기준 피드의 틱, 마지막 몇 초 동안의 오더북 모양입니다. 전략은 타임프레임 간에 옮겨지지 않으며, 24h 데이터로 테스트해도 5m의 움직임에 대해서는 아무것도 알 수 없습니다. 이름 규칙만 같은 서로 다른 상품으로 다루세요.

마켓 결과 확정 후 Polymarket이 보관하는 것

이것이 이 마켓들을 애초에 연구할 수 있는지를 결정합니다. Polymarket은 결과 확정 후 마켓 레코드와 성긴 가격 시계열을 보관합니다. 오더북은 보관하지 않습니다. 2026년 9월 29일, 4일 된 것부터 약 6개월 된 것까지 결과가 확정된 BTC 5분 마켓 6개를 확인했습니다.

정정, 2026년 9월 29일

이 글의 이전 버전에서는 결과 확정 후 prices-history가 빈 배열을 반환한다고 했습니다. 저희가 실행한 한 번의 요청(6개월 된 마켓에 interval=max)에서는 사실이었지만, 일반적인 진술로는 틀렸습니다. 시작과 끝을 명시하면 Polymarket이 보관하는 포인트를 반환합니다. 오더북에 관한 주장은 변함없으며, 시도한 모든 마켓에서 성립했습니다.

TOK=<token_id_of_a_resolved_market>
START=1790466900          # the number at the end of btc-updown-5m-1790466900
END=$((START + 300))

# 1. The order book: gone, at every age we tried.
curl -s "https://clob.polymarket.com/book?token_id=$TOK"
# {"error":"No orderbook exists for the requested token id"}     HTTP 404

# 2. The price series: thin, but there if you give it a window.
curl -s "https://clob.polymarket.com/prices-history?market=$TOK&startTs=$START&endTs=$END&fidelity=1"
# {"history":[{"t":...,"p":0.365}, ...]}          6 points for this 5-minute market

# 3. The same call with interval=max: empty for the six-month-old market we tried.
curl -s "https://clob.polymarket.com/prices-history?market=$TOK&interval=max&fidelity=1"
# {"history":[]}                                                  HTTP 200

따라서 가격 시계열이 사라진 것은 아니지만 성깁니다. btc-updown-5m-1790466900에 대해 Polymarket은 구간 시작 후 11초부터 316초까지 6개의 포인트를 반환했고, 마지막 1분에는 그중 하나만 있었습니다. PolyTest는 같은 마켓에 대해 약 0.12초마다 하나씩, 각각 양쪽 오더북을 포함한 2,552개의 스냅샷을 보유하고 있습니다. 1분에 하나인 가격으로는 누가 이겼는지, 대략 언제 가격이 움직였는지 알 수 있습니다. 500주 주문이 어떤 가격에 체결되었을지는 알 수 없으며, 이 마켓들의 승부가 갈리는 마지막 1분은 거의 담지 못합니다.

Polymarket의 새 Data API에는 60초 버킷을 반환하는 두 번째 경로 GET /v2/prices-history가 있습니다. 저희 테스트에서는 8일 된 마켓까지는 데이터가 있었고 15일 이상 된 마켓에는 아무것도 없었으므로, 아카이브를 대신할 수 없습니다.

원하는 것결과 확정 후에도 이용 가능?
마켓 메타데이터 (질문, 결과, 거래량)예, ?closed=true로
어느 쪽이 이겼는지예, outcomePrices
구간 내 가격 시계열예, 시작과 끝을 명시하면 약 1분에 한 포인트
임의 시점의 오더북 깊이아니요, 시도한 모든 기간에서 404
주문이 어떤 가격에 체결되었을지아니요

1분에 하나인 가격은 오더북이 아닙니다

Down이 이겼다는 것과, 가격이 1분 단위로 대략 어떻게 움직였는지는 알 수 있습니다. 어느 순간 오더북 양쪽에 무엇이 걸려 있었는지는 알 수 없는데, 모든 실행 관련 질문이 바로 그것에 달려 있습니다. 가격 시계열은 기저율과 대략적인 차트에는 충분합니다. 스프레드를 지불하는 전략을 백테스트하기에는 충분하지 않습니다.

기저율만으로는 부족한 이유

여기서 흔히 드는 생각이 있습니다. 결과를 가져올 수 있다면 결과 확정 빈도만 연구하면 되지 않을까? 최근 1,000개 마켓에서 5m BTC가 얼마나 자주 Up으로 확정되었는지 세고, 편향을 찾아 거래하는 것입니다.

문제는 그런 편향이 여러분이 보기 훨씬 전에 가격에 반영된다는 것입니다. 지난달 SOL 5m 마켓이 52% 확률로 Up으로 확정되었다면 마켓 메이커도 알고 있고, Up은 52¢에 시작합니다. 기저율은 우위가 아니라 이미 가격에 들어 있는 것입니다. 우위를 찾으려면 Polymarket이 보관하지 않는 것이 필요합니다. 가격이 틀렸을 때 오더북이 어떤 모습이었는가입니다.

이것이 Up/Down 전략을 검증하기 어려운 솔직한 이유입니다. 마켓이 효율적이어서가 아니라, 어느 쪽으로든 주장을 검증하는 데 필요한 증거가 API에 없기 때문입니다.

Polymarket이 보관하지 않는 것을 기록하기

사라진 오더북을 우회하는 유일한 방법은 마켓이 진행되는 동안 기록해 두는 것입니다. 그것이 PolyTest가 하는 일입니다. Polymarket 암호화폐 Up/Down 마켓을 진행되는 동안 연속적인 특정 시점 스냅샷으로 기록하고, 결과가 확정된 후에도 보관합니다. 한쪽당 8단계 오더북 깊이와 1초 미만 단위 타임스탬프를 갖춘 240M+개의 스냅샷입니다.

코인타임프레임
BTC5m · 15m · 1h · 4h · 24h
ETH5m · 15m · 1h
SOL5m · 15m · 1h
XRP · DOGE · BNB현재 수집 중. 곧 지원 예정
import os, requests

BASE = "https://api.polytest.io/api/v1"
H = {"X-API-Key": os.environ["POLYTEST_KEY"]}

# Resolved markets are still here — that is the whole point.
markets = requests.get(f"{BASE}/markets",
                       params={"coin": "sol", "market_type": "5m", "limit": 50},
                       headers=H).json()["markets"]

for m in markets:
    snaps = requests.get(f"{BASE}/markets/{m['id']}/snapshots",
                         params={"include_orderbook": "true"},
                         headers=H).json()["snapshots"]

    # The final minute is where 5m markets are actually decided.
    endgame = snaps[-12:]
    for s in endgame:
        print(m["slug"], s["timestamp"], s["midPrice"], s["spread"])

테스트해 볼 만한 세 가지

  1. 우위가 스프레드를 견디나요? 유망한 결과가 있다면 중간가 대신 실제로 매수했을 매도 호가로 다시 실행하세요. $1 마켓에서 1¢ 스프레드는 이기는 전략을 지는 전략으로 바꾸는 경우가 많습니다. 이것부터 하세요. 대부분의 아이디어를 저렴하게 걸러냅니다.
  2. 마지막 60초 동안 깊이는 어떻게 움직이나요? Up/Down 마켓은 만기 근처에서 극적으로 얇아집니다. 3분 남았을 때 체결되는 규모가 30초 남았을 때는 체결되지 않을 수 있으며, 이는 어떤 중간가 시계열에서도 보이지 않습니다.
  3. 코인 간에 옮겨지는 것이 있나요? BTC, ETH, SOL 5m 마켓은 설계는 같지만 유동성 구조는 다릅니다. BTC 오더북에 맞춰 튜닝한 전략은 더 얇은 SOL 오더북에서 무너지는 경우가 많습니다. 자금을 넣은 후가 아니라 넣기 전에 알아 둘 가치가 있습니다.

백테스팅 가이드에서 체결 시뮬레이션을 더 자세히 다루며, 결정하기 전에 데이터를 확인하고 싶다면 3일 무료 체험이 있습니다.

자주 묻는 질문

btc-updown-5m 슬러그 형식은 무엇을 뜻하나요?
Polymarket Up/Down 슬러그는 {coin}-updown-{timeframe}-{unix_start} 패턴을 따릅니다. btc-updown-5m-1775181000에서 btc는 코인, 5m은 구간 길이, 1775181000은 거래 구간이 시작되는 순간의 Unix 타임스탬프(UTC)입니다. 이 경우 2026-04-03 01:50:00 UTC이며, 마켓 제목에는 April 2, 9:50PM-9:55PM ET로 표시됩니다. 형식이 결정적이므로 슬러그를 검색하지 않고 직접 만들 수 있습니다.
Polymarket Up/Down 마켓의 결과는 어떻게 확정되나요?
구간 종료 시점의 코인 기준 가격이 시작 시점보다 높으면 Up, 그렇지 않으면 Down으로 확정됩니다. 기준이 엄격하게 '높음'이므로 정확히 보합으로 끝나면 Down으로 확정됩니다. 2026년 8월 7일부터 시작가와 종료가는 단일 가격이 아니라 Chainlink 시간 가중 평균에서 나오며, 8월 14일부터 5분 마켓은 60초 구간을 사용합니다. 경계 근처에서는 자체 데이터 피드와 그 평균 사이의 차이가 중요합니다.
Polymarket Up/Down 마켓의 startDate가 틀린 이유는 무엇인가요?
틀린 것은 아니지만, 사람들이 생각하는 의미가 아닙니다. startDate 필드는 마켓 객체가 생성된 시각을 기록하며, 거래 시작보다 하루 이상 이를 수 있습니다. btc-updown-5m-1775181000의 startDate는 2026-04-02T01:58:12Z이지만 실제 구간은 2026-04-03T01:50:00Z에 시작합니다. 구간 시작에는 슬러그의 Unix 타임스탬프를, 종료에는 endDate를 사용하세요.
결과가 확정된 Polymarket Up/Down 마켓의 과거 데이터를 받을 수 있나요?
Polymarket API로는 일부만 가능합니다. Polymarket은 결과가 확정된 마켓의 오더북에 대해 404를 반환합니다. 마켓 레코드(closed=true로 결과와 거래량)와 약 1분에 한 포인트의 가격 시계열은 보관하며, 가격 시계열은 시작과 끝을 명시해 가져와야 합니다. 오래된 마켓에는 interval=max가 빈 목록을 반환합니다. 오더북 깊이가 없으므로 체결을 시뮬레이션할 수 없습니다. 실행을 백테스트하려면 마켓이 진행되는 동안 기록된 스냅샷이 필요합니다.
어떤 코인에 Polymarket Up/Down 마켓이 있나요?
BTC가 5m, 15m, 1h, 4h, 24h 구간에 걸쳐 가장 넓게 지원됩니다. ETH와 SOL은 5m, 15m, 1h로 운영됩니다. XRP, DOGE, BNB는 최근 추가되어 지원 범위가 더 좁습니다. 코인마다 유동성이 크게 다르므로, BTC 오더북에 맞춰 보정한 전략은 더 얇은 SOL 오더북에 그대로 옮겨지지 않는 경우가 많습니다.

Polymarket이 보관하지 않는 과거 데이터를 확보하세요

PolyTest는 Polymarket 암호화폐 Up/Down 마켓을 실시간으로 기록합니다. 8단계 오더북 깊이와 1초 미만 단위 타임스탬프를 갖춘 240M+개의 스냅샷을 제공하며, 결과가 확정된 마켓도 보존합니다. 3일 무료 체험으로 시작하세요.

더 읽어보기