최고의 Kalshi 호가창 데이터, 그리고 고르는 법
흔히 찾을 수 있는 Kalshi 데이터 대부분은 한 시간에 한 번 샘플링한 마지막 체결가입니다. 차트를 그리기엔 괜찮지만 백테스트에는 쓸모가 없습니다. 실제로 거래에 쓸 수 있는 Kalshi 소스와, 데이터처럼 보이기만 하는 소스를 무엇이 갈라놓는지 정리했습니다.
데이터의 백테스트 가능 여부를 결정하는 다섯 가지 기준
1. 해상도: 고정 간격 샘플링이 아닌 이벤트 기반
고정된 시계에 맞춰 — 한 시간마다, 1분마다, 수백 밀리초마다 — 찍은 스냅샷은 틱과 틱 사이에 일어나는 모든 것을 놓칩니다. Kalshi의 단기 만기 마켓은 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로 담고, 고빈도 기초 가격에 조인되므로 호가창 상태가 현물 움직임과 틱 단위로 정렬됩니다.
일반적인 선택지가 부족한 지점
사람들이 Kalshi 데이터를 찾을 때 손이 가는 선택지는 보통 네 가지입니다. 각각 어떤 용도에는 쓸모가 있지만, 그중 무엇도 백테스트의 기준이 되는 호가창은 아닙니다.
궁금한 점, 답해 드립니다.
가장 좋은 소스는 모든 호가창 변동을 기록하고(고정 간격 샘플이 아님), 양쪽의 완전한 매수/매도 사다리를 서빙하며(마지막 가격만이 아님), 거래하는 거래소와 자산을 하나의 스키마로 커버하고, 히스토리와 실시간 데이터를 동일한 포맷으로 전달해 백테스트한 코드 그대로 거래할 수 있게 하는 소스입니다. DepthFeed는 Kalshi에 대해 바로 이를 하도록 만들어졌으며, Polymarket에서 중앙값 약 10ms 실시간 전달과 Kalshi의 연속적인 풀뎁스 캡처를 제공합니다.