Перейти к содержимому

Рыночные данные

Инструменты, свечи, последняя цена, стакан, сделки и кластеры объёма.

Всем вызовам на этой странице нужно право 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)

Чтобы прочитать справочник целиком, страница за страницей, используйте iter_instruments() в Python и iterInstruments() в TypeScript.

Свечи

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)
АргументЗначение
interval1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w, 1M. Полный список отдаёт intervals().
limitЧисло баров, до 2000. По умолчанию 500.
endПравая граница в миллисекундах UTC. По умолчанию — сейчас.

Бары идут от старых к новым, ts — время открытия бара. Чтобы загрузить более старую историю, передайте в end значение ts самого старого бара, который у вас есть.

Последняя цена

Снимок содержит лучшие bid и ask, последнюю сделку, цену маркировки и суточный тикер инструмента.

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)

Сделки идут от старых к новым. Терминал хранит последнюю тысячу сделок инструмента. 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)

В ответе до десяти последних бакетов, от старых к новым. Интервал тот, что выбран для инструмента в терминале, по умолчанию 5m. Через API его не сменить; какой используется, показывает clusters.interval.

Первый вызов

Последняя цена, стакан, сделки и кластеры читаются из памяти терминала. Если инструмент не открыт в терминале, первый вызов подписывается на него на бирже и ждёт данных до 3 секунд. После этого терминал держит подписку ещё 30 секунд, и следующие вызовы отвечают сразу.

Что происходитЧто вы получитеЧто делать
Данные пришли не полностьюСнимок с пустыми полямиПовторить через несколько секунд
Стакан не готов за 3 секунды503 unavailableПовторить
Кластеры ещё не посчитаны409 not_activeПовторить через несколько секунд
Слишком много инструментов или слишком много новых в секунду429 rate_limitedСнизить темп, см. Лимиты

Чтобы следить за ценами непрерывно, используйте стрим, а не повторные вызовы.

Какое подключение используется

В терминале может быть несколько подключений к одной бирже и рынку. Каждый вызов принимает необязательный connection_id. Без него терминал берёт включённое торговое подключение, а если его нет — подключение только для чтения. Ответ всегда называет подключение, которое было использовано.

Что недоступно

Данные Московской биржи (MOEX) не отдаются: любой вызов по инструменту moex: отвечает 501 unsupported.

На этой странице