Перейти к содержимому
Справочник SDK

Модели Python

Объекты, которые возвращает клиент на Python.

Level

class Level(NamedTuple)

Один уровень стакана, пара [price, size] из контракта.

ПолеТип
priceDecimal
sizeDecimal

Limits

Потолки стрима и торговли, как их печатает /v1/meta.

commands_per_second — темп торговых команд на листенер, workspace_commands_per_second — темп команд рабочего пространства, settings_commands_per_second — темп записей настроек; каждый равен 0 у терминала старше этапа, который добавил лимит: такой терминал его не печатает, потому что таких команд не принимает.

ПолеТип
ws_connections_per_tokenint
subscriptions_per_connectionint
api_only_instrumentsint
exchange_subscriptions_per_secondint
commands_per_secondint
workspace_commands_per_secondint
settings_commands_per_secondint

Meta

GET /v1/meta: версия API, сборка терминала, права токена, лимиты, топики стрима.

topics пуст, если терминал собран без отвода рыночных данных; стрим и рыночные операции тогда отвечают unsupported.

ПолеТип
api_versionstr
app_versionstr
build_hashstr
build_envstr
featuresstr
scopeslist[str]
limitsLimits
topicslist[str]

Health

GET /v1/health: состояние листенера и счётчики хаба рыночных данных.

ПолеТип
statusstr
uptime_msint
clientsint
streamsint
api_only_instrumentsint
dropped_eventsint
dropped_framesint
overflow_closesint
stream_availablebool

LastEvent

Последняя запись истории подключения: код стадии или ошибки и его время.

ПолеТип
codestr
tsint

ConnectionStatus

Состояние подключения: disabled, enabled, connecting, connected или failed.

last_event равен None, пока у подключения нет истории.

ПолеТип
statestr
last_eventLastEvent | None

Connection

Одно из подключений терминала к биржам. Секретов не несёт, даже в виде маски.

ПолеТип
idint
exchangestr
marketstr
labelstr
enabledbool
read_onlybool
has_credentialsbool
proxy_boundbool
statusConnectionStatus

Instrument

Запись справочника. Шаги и минимумы равны None, если биржа их не сообщила.

ПолеТип
instrumentstr
exchangestr
marketstr
symbolstr
basestr
quotestr
statusstr
tick_sizeDecimal | None
lot_sizeDecimal | None
min_sizeDecimal | None
contract_valueDecimal | None

Page

class Page(Generic[T])

Одна страница списка: data плюс next_cursor для следующей страницы.

exchange и market называют пару, для которой перечислена страница. next_cursor равен None на последней странице.

ПолеТип
datalist[T]
next_cursorstr | None
exchangestr
marketstr

Interval

Код интервала, который знает терминал, и его номинальная длительность.

ПолеТип
idstr
duration_msint

Intervals

GET /v1/market/intervals: интервалы свечей и кластеров.

ПолеТип
candleslist[Interval]
clusterslist[Interval]

Candle

Один бар. ts — открытие бара; volume — в базовой монете.

ПолеТип
tsint
openDecimal
highDecimal
lowDecimal
closeDecimal
volumeDecimal
quote_volumeDecimal
closedbool

Candles

GET /v1/market/candles: бары одного инструмента и подключение, через которое они пришли.

ПолеТип
instrumentstr
connection_idint
intervalstr
datalist[Candle]

Trade

Одна сделка. ts — когда она прошла через терминал, exchange_ts — время биржи.

id в v1 всегда None.

ПолеТип
idstr | None
priceDecimal
qtyDecimal
sidestr
tsint
exchange_tsint

Trades

GET /v1/market/trades: последние сделки одного инструмента, от старых к новым.

ПолеТип
instrumentstr
connection_idint
datalist[Trade]

Ticker

Суточный тикер. Поля, которые биржа не сообщает, равны None.

best_bid и best_ask здесь — цены из ленты тикера, а не уровни стакана; верхушка стакана — в Snapshot.

ПолеТип
priceDecimal
change_24h_pctDecimal | None
volume_24hDecimal | None
high_24hDecimal | None
low_24hDecimal | None
best_bidDecimal | None
best_askDecimal | None
tsint

MarkPrice

Кадр стрима mark_price: цена маркировки и её время.

ПолеТип
mark_priceDecimal
tsint

Snapshot

GET /v1/market/snapshot: последнее, что хаб знает об одном инструменте.

best_bid и best_ask — пары Level из стакана хаба, None, пока не пришёл снимок стакана. Остальные поля — None, пока не пришли их данные.

ПолеТип
instrumentstr
connection_idint
tsint
best_bidLevel | None
best_askLevel | None
last_tradeTrade | None
mark_priceDecimal | None
tickerTicker | None

BookTop

Верхушка стакана: биды от лучшей цены вниз, аски от лучшей цены вверх.

Это data кадра стрима book.top; OrderBook добавляет инструмент и подключение для HTTP-операции.

ПолеТип
tsint
depthint
bidslist[Level]
askslist[Level]

OrderBook

class OrderBook(BookTop)

GET /v1/market/orderbook: верхушка стакана одного инструмента.

ПолеТип
instrumentstr
connection_idint

ClusterLevel

Объём, наторгованный по одной цене внутри бакета кластера.

ПолеТип
priceDecimal
volumeDecimal
buy_volumeDecimal
sell_volumeDecimal
buy_tradesint
sell_tradesint

Cluster

Один бакет кластера: итоги, диапазон цен и все уровни от низшей цены вверх.

last_trade_ts равен 0 у бакета, засеянного из истории без времени сделки. vwap, min_price и max_price равны None у бакета без сделок.

ПолеТип
intervalstr
tsint
end_tsint
volumeDecimal
buy_volumeDecimal
sell_volumeDecimal
tradesint
vwapDecimal | None
min_priceDecimal | None
max_priceDecimal | None
completedbool
last_trade_tsint
levelslist[ClusterLevel]

Clusters

GET /v1/market/clusters: последние бакеты одного инструмента, от старых к новым.

interval — тот, что выбран для инструмента в терминале.

ПолеТип
instrumentstr
connection_idint
intervalstr
tsint
datalist[Cluster]

Order

Открытая заявка подключения: pending, open или partially_filled.

key — ключ заявки в терминале (t-...), exchange_id — id биржи; каждый равен None, пока неизвестен. size, filled и remaining — в базовой монете; notional — сумма в котировке, которую ввёл трейдер, None у заявки, пришедшей из снимка биржи. JSON-ключ type здесь — order_type.

ПолеТип
keystr | None
exchange_idstr | None
instrumentstr
sidestr
order_typestr
priceDecimal | None
sizeDecimal
filledDecimal
remainingDecimal
notionalDecimal | None
statusstr
created_tsint

TriggerOrder

Триггерная заявка: stop_loss, take_profit или stop (trigger_type).

rule — price_above_or_equal или price_below_or_equal; status — open, finished, inactive или invalid. size, notional, order_type, client_id и created_ts равны None, если биржа их не сообщила.

ПолеТип
idstr
instrumentstr
trigger_typestr
trigger_priceDecimal
rulestr
sizeDecimal | None
notionalDecimal | None
statusstr
order_typestr | None
client_idstr | None
created_tsint | None

AccountOrders

GET /v1/account/orders: открытые заявки и триггерные заявки одного подключения.

ПолеТип
connection_idint
datalist[Order]
triggerslist[TriggerOrder]

Position

Открытая позиция. size — в базовой монете (на MOEX — в лотах, по lot_size базовых единиц в каждом).

notional — в котировке; unrealized_pnl и mark_price — собственные значения терминала (лучший bid для лонга, лучший ask для шорта), None до первого тика стакана.

ПолеТип
instrumentstr
sidestr
sizeDecimal
lot_sizeDecimal | None
entry_priceDecimal | None
notionalDecimal | None
unrealized_pnlDecimal | None
mark_priceDecimal | None

AccountPositions

GET /v1/account/positions: открытые позиции одного подключения.

ПолеТип
connection_idint
datalist[Position]

Balance

Последний баланс одной валюты.

available и locked равны None, если биржа их не сообщает; ts — время биржи там, где оно есть, иначе время получения.

ПолеТип
currencystr
totalDecimal
availableDecimal | None
lockedDecimal | None
tsint

AccountBalances

GET /v1/account/balances: по каждой валюте последнее значение с момента включения API.

ПолеТип
connection_idint
datalist[Balance]

Fill

Одно исполнение. position_side — long/short на биржах с режимом хеджирования, иначе None.

ПолеТип
trade_idstr | None
order_idstr | None
instrumentstr
sidestr
priceDecimal
qtyDecimal
feeDecimal | None
fee_currencystr | None
position_sidestr | None
tsint

AccountFills

GET /v1/account/fills: последние исполнения подключения, от старых к новым.

ПолеТип
connection_idint
datalist[Fill]

Accepted

Торговая команда принята терминалом, но ещё не биржей.

operation_id называет операцию в файле торговых операций терминала; key — ключ заявки (t-...), под которым заявка появится в account.orders, None у снятия. Подтверждение, исполнение или отказ биржи приходят через стрим.

ПолеТип
acceptedbool
operation_idstr
keystr | None
connection_idint
instrumentstr

Leverage

GET /v1/account/leverage: плечо и режим маржи одного фьючерсного инструмента.

Читается из кэша терминала, который наполняют выбор инструмента в окне и set_leverage; инструмент, которого терминал ещё не касался, — ApiError not_active. mode — режим плеча терминала (manual, max, smart), а не биржи; margin_mode — cross или isolated.

ПолеТип
connection_idint
instrumentstr
leverageint
max_leverageint
modestr
margin_modestr

CellPosition

Ячейка сетки вкладки: колонка слева направо, строка сверху вниз, ячейка внутри строки.

ПолеТип
columnint
rowint
cellint

Stack

Стек — стакан с его лентой сделок и кластерами — внутри вкладки.

widget_id глобален для этого запуска терминала. instrument и connection_id равны None, пока стек empty; position равен None у стека, скрытого внутри группы стеков.

ПолеТип
widget_idint
instrumentstr | None
connection_idint | None
emptybool
frozenbool
positionCellPosition | None

Chart

График внутри вкладки.

owner_widget_id — стек, за которым следует график, None у самостоятельного.

ПолеТип
widget_idint
instrumentstr | None
connection_idint | None
intervalstr
owner_widget_idint | None
positionCellPosition | None

Tab

Вкладка окна: id нумеруется в каждом окне с 1, ровно одна вкладка active.

ПолеТип
idint
namestr
activebool
stackslist[Stack]
chartslist[Chart]

Window

Окно терминала; main нельзя закрыть через API.

chart_window — вынесенное окно графиков. Геометрия — в логических пикселях экрана; monitor — имя монитора по данным ОС или None.

ПолеТип
idint
mainbool
chart_windowbool
focusedbool
xint
yint
widthint
heightint
maximizedbool
monitorstr | None
tabslist[Tab]

Workspace

GET /v1/workspace и топик стрима workspace: все окна по возрастанию id.

Идентификаторы — внутренние номера этого запуска терминала: не храните их между перезапусками, читайте заново.

ПолеТип
windowslist[Window]

TabItem

Одна колонка вкладки, открытой или расширенной через API.

Стек instrument на connection_id (при None его выбирает общее правило) и, с chart, график над ним.

ПолеТип
instrumentstr
connection_idint | None
chartbool

WorkspaceOutcome

Что сделало окно по команде рабочего пространства.

При открытии: окно, новая вкладка и её stacks и charts в порядке колонок; у колонок, добавленных во вкладку, — только добавленные виджеты. При закрытии и активации: затронутые идентификаторы, остальное — None или пусто.

ПолеТип
window_idint | None
tab_idint | None
stackslist[int]
chartslist[int]

SettingRow

Одна строка таблицы настроек терминала, как она хранится.

scope — global или order_book; scope_id — default, адрес инструмента или None у горячих клавиш; connection_id — подключение-владелец или None. value — декодированный JSON (числа как записаны). writable говорит, принимает ли update_settings этот ключ; в кадре стрима settings он равен None: кадр такого флага не несёт.

ПолеТип
scopestr
scope_idstr | None
connection_idint | None
categorystr
keystr
valueAny
writablebool | None

Settings

GET /v1/settings: строки, как они хранятся, без лестницы умолчаний.

ПолеТип
datalist[SettingRow]

OrderbookSetting

Одна настройка стека с уровнем, с которого она взята.

resolved_from — instrument (строка пары на подключении), connection (умолчание подключения), app_instrument (строка пары без подключения) или global.

ПолеТип
valueAny
resolved_fromstr
writablebool

OrderbookSettings

GET /v1/settings/orderbook: настройки стека одного инструмента, как их видит его стек.

ПолеТип
connection_idint
instrumentstr
datadict[str, dict[str, OrderbookSetting]]

SettingChange

Одно изменение для update_settings.

instrument адресует строку пары (область order_book); connection_id с scope="order_book" и без инструмента адресует умолчание подключения; без того и другого — глобальное умолчание. Глобальные настройки подключения не принимают.

ПолеТип
categorystr
keystr
valueAny
scopestr | None
instrumentstr | None
connection_idint | None

SettingsApplied

PATCH /v1/settings: сколько изменений применено (все, иначе вызов выбросил исключение).

ПолеТип
appliedint

OrdersUpdate

Кадр account.orders: заявки и триггеры одного инструмента после изменения.

ПолеТип
instrumentstr
orderslist[Order]
triggerslist[TriggerOrder]

PositionUpdate

Кадр account.positions: позиция одного инструмента; закрытие — position=None.

ПолеТип
instrumentstr
positionPosition | None

Subscribed

Ответ на subscribe: id подписки и выбранное для неё подключение.

connection_id равен None у workspace и settings: у них нет подключения.

ПолеТип
substr
connection_idint | None
request_idstr | None

Unsubscribed

Ответ на unsubscribe.

ПолеТип
substr
request_idstr | None

Event

Кадр данных подписки.

seq растёт на единицу у trades; у конфлируемых топиков пропуски в нумерации — норма. data типизирован по топику, см. parse_event_data.

ПолеТип
substr
seqint
tsint
dataAny

Gap

События from_seq..to_seq подписки trades потеряны.

Приходит перед первым кадром после потери; сделки можно перечитать через Terminal.trades(..., since_ts=...).

ПолеТип
substr
from_seqint
to_seqint
reasonstr

SubscriptionError

Сервер снял подписку: биржа отклонила пару, или на неё не удалось подписаться.

Новый subscribe заводит её заново.

ПолеТип
substr
codestr
messagestr

Собрано из кода spectre-terminal, коммит 2d1c324.

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