Ринкові дані
Інструменти, свічки, остання ціна, стакан, угоди та кластери обсягу.
Усім викликам на цій сторінці потрібне право 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)| Аргумент | Значення |
|---|---|
interval | 1m, 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.