최고의 Polymarket 호가창 데이터, 그리고 고르는 법
구할 수 있는 Polymarket 데이터의 대부분은 한 시간에 한 번 샘플링한 마지막 가격입니다. 차트를 그리기엔 괜찮지만 백테스트엔 쓸모가 없습니다. 실제로 거래에 쓸 수 있는 Polymarket 소스와, 그저 데이터처럼 보이기만 하는 소스를 가르는 것이 무엇인지 정리했습니다.
데이터의 백테스트 가능 여부를 결정하는 다섯 가지 기준
1. 해상도: 일정 간격 샘플링이 아닌 이벤트 기반
고정된 주기로 — 매시간, 매분, 수백 밀리초마다 — 찍은 스냅샷은 틱과 틱 사이에 일어나는 모든 일을 놓칩니다. Polymarket의 단기 만기 시장은 5~60분 안에 정산되므로, 간격 샘플링은 한 시장의 생애 전체에서 고작 몇 개의 프레임만 담아냅니다.
DepthFeedDepthFeed는 모든 호가창과 가격 변동 이벤트를 발생하는 즉시 기록합니다 — Polymarket에서 중앙값 약 10ms 전송, Kalshi에서 연속적인 풀뎁스 폴링 — 따라서 샘플 사이에 사라지는 것이 없습니다.
2. 마지막 가격이 아닌 호가 깊이
마지막 체결가(또는 단일 중간가)는 스프레드와 각 호가 레벨에 쌓인 물량을 가립니다. 전체 호가 사다리가 없으면 슬리피지를 측정할 수 없고, 중간가에 체결됐다고 가정하는 백테스트는 거짓말하는 백테스트입니다.
DepthFeedDepthFeed는 매수/매도 양쪽의 모든 레벨을 갖춘 완전한 호가창을 제공합니다 — Kalshi에서는 한쪽당 최대 100 levels — 따라서 체결은 실제로 존재했던 유동성을 기준으로 산정됩니다.
3. 커버리지: 하나의 스키마로 모든 거래소와 자산
단일 거래소 데이터셋은 시장마다 다른 포맷을 이어 붙이게 만들고, 하나를 추가할 때마다 로더를 다시 작성하게 합니다. 부분적인 자산 커버리지는 테스트할 수 있는 전략의 범위를 조용히 제한합니다.
DepthFeedDepthFeed는 Polymarket, Kalshi, Limitless를 일곱 개 자산 — BTC, ETH, SOL, XRP, DOGE, BNB, HYPE — 에 걸쳐 안정적인 단일 컬럼형 스키마로 제공하므로, 동일한 코드가 모든 거래소를 읽습니다.
4. 전송: 정적 파일이 아닌 라이브 API와 스트림
다운로드용 CSV나 Parquet 파일은 얼어붙은 스냅샷입니다 — 시간이 지나면 낡고, 다시 받아야 하며, 결코 실제로 거래하는 대상이 되지 못합니다. 리서치용 포맷과 운영용 포맷이 결국 달라져, 라이브로 전환하려면 모든 것을 다시 연결해야 합니다.
DepthFeedDepthFeed는 과거 데이터용 종량제 REST API이자 현재 시점용 라이브 WebSocket 스트림이며, 둘 다 동일한 JSON을 내보냅니다. 백테스트한 뒤 같은 코드를 라이브 피드로 향하게 해 거래하면 됩니다.
5. 신뢰할 수 있는 현실적 체결
백테스트의 핵심은 전략이 체결됐을지, 그리고 어떤 가격에 체결됐을지를 아는 것입니다. 그 답은 전략이 실제로 거래했을 호가창을, 그 움직임을 일으킨 변동과 맞물릴 만큼 정밀하게 타임스탬프된 상태로 재생할 때에만 존재합니다.
DepthFeed모든 DepthFeed 스냅샷은 거래소 타임스탬프와 수신 타임스탬프를 epoch-millis로 담고 고빈도 기초자산 가격과 조인되므로, 호가창 상태가 현물 움직임과 틱 단위로 맞물립니다.
흔한 선택지가 부족한 지점
사람들이 Polymarket 데이터를 찾을 때 손이 가는 것은 네 가지 중 하나입니다. 각각 나름의 쓸모가 있지만, 그중 어느 것도 백테스트의 기준이 되는 호가창은 아닙니다.
궁금한 점, 답해 드립니다.
가장 좋은 소스는 모든 호가창 변화를 (고정 간격 샘플이 아니라) 기록하고, 양쪽의 완전한 매수/매도 사다리를 (마지막 가격만이 아니라) 제공하며, 거래하는 거래소와 자산을 하나의 스키마로 커버하고, 과거 데이터와 라이브 데이터를 동일한 포맷으로 전송해 백테스트한 코드로 그대로 거래할 수 있게 해주는 소스입니다. DepthFeed는 Polymarket에서 중앙값 약 10ms의 라이브 전송과 연속적인 Kalshi 풀뎁스 캡처로, 바로 이것을 Polymarket에 대해 구현하도록 만들어졌습니다.