시장 데이터
종목, 캔들, 최신 가격, 호가창, 체결, 거래량 클러스터를 읽습니다.
이 페이지의 모든 호출에는 market:read 권한이 필요합니다. 가격과 수량은
십진수 문자열이고, 시간은 UTC 밀리초입니다.
종목 찾기
종목에는 주소가 있습니다: exchange:market:symbol. 예:
binance:futures:BTCUSDT. 심볼은 거래소가 쓰는 표기 그대로 쓰므로
카탈로그에서 가져옵니다.
page = terminal.instruments(exchange="binance", market="futures", q="BTC", limit=50)
for item in page.data:
print(item.instrument, item.tick_size, item.lot_size)카탈로그 전체를 페이지 단위로 읽으려면 Python에서는 iter_instruments()를,
TypeScript에서는 iterInstruments()를 사용합니다.
캔들
candles = terminal.candles("binance:futures:BTCUSDT", "1m", limit=500)
for candle in candles.data:
print(candle.ts, candle.open, candle.high, candle.low, candle.close, candle.volume)| 인자 | 의미 |
|---|---|
interval | 1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w, 1M. 전체 목록은 intervals()에 있습니다. |
limit | 캔들 개수, 최대 2000. 기본값은 500입니다. |
end | UTC 밀리초로 나타낸 오른쪽 경계. 기본값은 현재 시각입니다. |
캔들은 오래된 것부터 옵니다. ts는 캔들의 시작 시각입니다. 더 오래된
기록을 불러오려면 가지고 있는 가장 오래된 캔들의 ts를 end로 전달합니다.
최신 가격
스냅샷에는 종목의 최우선 매수·매도 호가, 마지막 체결, 마크 가격, 24시간 티커가 들어 있습니다.
snapshot = terminal.snapshot("binance:futures:BTCUSDT")
print(snapshot.best_bid, snapshot.best_ask, snapshot.mark_price)필드는 데이터가 도착할 때까지 비어 있습니다. 첫 호출을 참고하십시오.
호가창
book = terminal.orderbook("binance:futures:BTCUSDT", depth=20)
print(book.bids[0], book.asks[0])depth는 각 방향의 레벨 수입니다. 1부터 200까지이며 기본값은 50입니다.
매수 호가는 최우선 가격에서 아래로, 매도 호가는 최우선 가격에서 위로
나열됩니다. 레벨은 가격과 수량입니다.
최근 체결
trades = terminal.trades("binance:futures:BTCUSDT", limit=200)
newer = terminal.trades("binance:futures:BTCUSDT", since_ts=trades.data[-1].ts)체결은 오래된 것부터 옵니다. 터미널은 종목마다 마지막 체결 1000건을
보관합니다. ts는 터미널이 체결을 받은 시각이고, exchange_ts는 거래소의
시각입니다.
거래량 클러스터
클러스터 버킷은 한 인터벌 동안 각 가격에서 거래된 거래량입니다.
clusters = terminal.clusters("binance:futures:BTCUSDT")
for bucket in clusters.data:
print(bucket.ts, bucket.volume, bucket.buy_volume, bucket.sell_volume)
for level in bucket.levels:
print(level.price, level.buy_volume, level.sell_volume)응답에는 최신 버킷이 최대 10개, 오래된 것부터 들어 있습니다. 인터벌은
터미널에서 해당 종목에 선택한 값이며 기본값은 5m입니다. API로는 바꿀 수
없습니다. 사용 중인 인터벌은 clusters.interval로 알 수 있습니다.
첫 호출
최신 가격, 호가창, 체결, 클러스터는 터미널의 메모리에서 읽습니다. 종목이 터미널에 열려 있지 않으면 첫 호출이 거래소에서 그 종목을 구독하고 데이터를 최대 3초 기다립니다. 그 뒤 터미널이 구독을 30초 동안 유지하므로 다음 호출은 바로 응답합니다.
| 상황 | 받는 응답 | 대처 방법 |
|---|---|---|
| 데이터가 아직 다 도착하지 않음 | 일부 필드가 비어 있는 스냅샷 | 몇 초 후 다시 호출합니다 |
| 호가창이 3초 안에 준비되지 않음 | 503 unavailable | 다시 호출합니다 |
| 클러스터가 아직 계산되지 않음 | 409 not_active | 몇 초 후 다시 호출합니다 |
| 종목이 너무 많거나, 초당 새 종목이 너무 많음 | 429 rate_limited | 속도를 줄입니다. 제한을 참고하십시오 |
가격을 계속 따라가려면 호출을 반복하지 말고 스트림을 사용합니다.
사용되는 연결
터미널에는 같은 거래소와 마켓에 대한 연결이 여러 개 있을 수 있습니다. 모든
호출은 선택 인자 connection_id를 받습니다. 없으면 터미널은 켜져 있는
거래용 연결을 사용하고, 그런 연결이 없으면 읽기 전용 연결을 사용합니다.
응답에는 사용된 연결이 항상 표시됩니다.
제공되지 않는 것
모스크바 거래소(MOEX)의 데이터는 제공하지 않습니다. moex: 종목에 대한
모든 호출은 501 unsupported로 응답합니다.