본문으로 건너뛰기
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

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

호가창 상단: 매수 호가는 최우선 가격부터 아래로, 매도 호가는 최우선 가격부터 위로.

이것은 book.top 스트림 프레임의 data입니다. 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에서는 랏 단위이며, 1랏은 기준 단위 lot_size개).

notional은 호가 통화 단위입니다. unrealized_pnl과 mark_price는 터미널이 직접 계산한 값(롱이면 최우선 매수 호가, 숏이면 최우선 매도 호가)이며, 호가창의 첫 틱이 올 때까지 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는 터미널의 거래 작업 로그에 기록되는 작업의 id입니다. key는 주문이 account.orders에 나타날 때의 주문 키(t-...)이며, 취소의 경우 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는 스택이 empty인 동안 None입니다. 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는 OS의 모니터 이름 또는 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로 열거나 확장한 탭의 열 하나입니다.

connection_id의 instrument 스택(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)을 가리킵니다. scope="order_book"에 종목 없이 connection_id만 있으면 연결의 기본값을, 둘 다 없으면 전역 기본값을 가리킵니다. 전역 설정은 연결을 받지 않습니다.

필드타입
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는 workspace와 settings에서 None입니다. 둘 다 연결이 없습니다.

필드타입
substr
connection_idint | None
request_idstr | None

Unsubscribed

unsubscribe에 대한 응답입니다.

필드타입
substr
request_idstr | None

Event

구독의 데이터 프레임입니다.

seq는 trades에서 1씩 증가합니다. 최신 상태만 전송하는 토픽에서는 번호가 건너뛰는 것이 정상입니다. data의 타입은 토픽에 따라 다르며, parse_event_data를 참고하십시오.

필드타입
substr
seqint
tsint
dataAny

Gap

trades 구독의 이벤트 from_seq..to_seq가 손실되었습니다.

손실 뒤 첫 프레임 앞에 도착합니다. 체결은 Terminal.trades(..., since_ts=...)로 다시 읽을 수 있습니다.

필드타입
substr
from_seqint
to_seqint
reasonstr

SubscriptionError

서버가 구독을 제거했습니다. 거래소가 거부했거나 페어를 구독할 수 없었습니다.

새로 subscribe하면 다시 시작됩니다.

필드타입
substr
codestr
messagestr

spectre-terminal 코드의 커밋 2d1c324에서 생성되었습니다.

이 페이지의 내용