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

Початок роботи

Увімкніть Local API, отримайте токен і зробіть перший запит із Python або TypeScript.

Ця сторінка проведе вас від запущеного термінала до живих даних у вашій програмі. Ваша програма звертається лише до 127.0.0.1, а з біржами працює термінал.

Увімкнути API

Відкрийте в терміналі Settings App → Загальні й увімкніть Local API. Перезапуск не потрібен.

У рядку показано порт. Це 48180, якщо термінал не запущено зі змінною середовища SPECTRE_LOCAL_API_PORT. Якщо згодом вимкнути API, відкриті стріми закриються з кодом 1001.

Отримати токен

Натисніть Копіювати токен у тому самому рядку й покладіть токен у середовище своєї програми. Значення нижче — зразок.

export SPECTRE_LOCAL_API_TOKEN=spt_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef

У Windows setx діє у вікнах командного рядка, відкритих після неї.

Токен дозволяє все, що може вікно термінала, зокрема ставити заявки. Не додавайте його в репозиторій і не вставляйте у звіт про помилку. Перевипустити токен у тому самому рядку одразу замінює його.

Встановити клієнт

pip install spectre-terminal

Зробити перший запит

from spectre_terminal import Terminal

terminal = Terminal.discover()
meta = terminal.meta()
print(meta.app_version, meta.scopes, meta.topics)

discover() знаходить порт, читає токен із середовища й робить один пробний запит. Неправильний токен або незапущений термінал дають помилку тут, а не на першому виклику даних. Див. Коли пошук не вдається.

Прочитати дані

for connection in terminal.connections():
    print(connection.id, connection.exchange, connection.market, connection.status.state)

book = terminal.orderbook("binance:futures:BTCUSDT", depth=5)
for price, size in book.bids:
    print(price, size)

Інструмент має адресу: exchange:market:symbol. Символ пишеться так, як його пише біржа. Див. Ринкові дані.

Стежити за живими даними

import asyncio

async def main():
    async with terminal.stream() as stream:
        await stream.subscribe("trades", "binance:futures:BTCUSDT")
        async for frame in stream:
            print(frame)

asyncio.run(main())

Цикл друкує угоди в міру їх надходження. Див. Стрімінг.

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

Відповідь торгового виклику не каже, що зробила біржа. accepted означає, що термінал прийняв команду. Результат читайте з рахунку, див. Торгівля.

Московська біржа (MOEX) не обслуговується: немає ні ринкових даних, ні торгівлі.

Запити зі сторінок браузера відхиляються.

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