Перейти до вмісту
Довідник 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: стан Local API і лічильники хабу ринкових даних.

ПолеТип
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

24-годинний тікер. Поля, яких біржа не повідомляє, дорівнюють 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 у порядку колонок; для колонок, доданих до вкладки, — лише додані віджети. Для закриття й активації: зачеплені id, решта — 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.

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