Начало работы
Включите 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) не обслуживается: нет ни рыночных данных, ни торговли.
Запросы со страниц браузера отклоняются.