Перейти до вмісту

Ринкові дані

Інструменти, свічки, остання ціна, стакан, угоди та кластери обсягу.

Усім викликам на цій сторінці потрібне право 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)

Угоди йдуть від старих до нових. Термінал зберігає останні 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)

У відповіді до десяти останніх бакетів, від старих до нових. Інтервал — той, що вибрано для інструмента в терміналі, типово 5m. Через API його не змінити; який саме використовується, показує clusters.interval.

Перший виклик

Остання ціна, стакан, угоди й кластери читаються з пам’яті термінала. Якщо інструмент не відкрито в терміналі, перший виклик підписується на нього на біржі й чекає даних до 3 секунд. Потім термінал тримає підписку ще 30 секунд, тож наступні виклики відповідають одразу.

Що відбуваєтьсяЩо ви отримаєтеЩо робити
Дані надійшли не повністюЗнімок із кількома порожніми полямиПовторити виклик за кілька секунд
Стакан не готовий за 3 секунди503 unavailableПовторити виклик
Кластери ще не обчислено409 not_activeПовторити виклик за кілька секунд
Забагато інструментів або забагато нових за секунду429 rate_limitedСповільнитися, див. Ліміти

Щоб стежити за цінами безперервно, використовуйте стрім, а не повторні виклики.

Яке підключення використовується

Термінал може мати кілька підключень до тієї самої біржі й ринку. Кожен виклик приймає необов’язковий connection_id. Без нього термінал бере ввімкнене торгове підключення, а якщо його немає — підключення лише для читання. Відповідь завжди називає використане підключення.

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

Дані Московської біржі (MOEX) не надаються: кожен виклик для інструмента moex: відповідає 501 unsupported.

На цій сторінці