Биржевой стакан
Приватный ресурс
Запрос нельзя выполнить анонимно. Обязательный параметр token должен содержать актуальный Access токен.
Альтернативная команда
Для этой операции есть альтернатива в виде HTTP-запроса.
Запрос создаёт подписку на получение информации о текущем количестве лотов и их цене в бидах и асках биржевого стакана для указанного финансового инструмента.
Запрос
Для создания подписки на информационный канал отправьте в установленное WebSocket-соединение сообщение с телом запроса, содержащим детали создаваемой подписки.
- Тело запроса
- Схема
{
"opcode": "OrderBookGetAndSubscribe",
"exchange": "MOEX",
"code": "SBER",
"instrumentGroup": "TQBR",
"depth": 10,
"format": "Simple",
"frequency": 250,
"guid": "c328fcf1-e495-408a-a0ed-e20f95d6b813",
"token": "eyJhbGciOiJ..."
}
Параметры тела запроса
OrderBookGetAndSubscribe— Подписка на биржевой стаканBarsGetAndSubscribe— Подписка на историю цен (свечи)QuotesSubscribe— Подписка на информацию о котировкахInstrumentsGetAndSubscribeV2— Подписка на изменение информации о финансовых инструментах на выбранной биржеAllTradesGetAndSubscribe— Подписка на все сделкиPositionsGetAndSubscribeV2— Подписка на информацию о текущих позициях по торговым инструментам и деньгамSummariesGetAndSubscribeV2— Подписка на сводную информацию по портфелюRisksGetAndSubscribe— Подписка на сводную информацию по портфельным рискамSpectraRisksGetAndSubscribe— Подписка на информацию по рискам срочного рынка (FORTS)TradesGetAndSubscribeV2— Подписка на информацию о сделкахOrdersGetAndSubscribeV2— Подписка на информацию о текущих заявках на рынке для выбранных биржи и финансового инструментаStopOrdersGetAndSubscribeV2— Подписка на информацию о текущих заявках на рынке для выбранных биржи и финансового инструментаunsubscribe— Отмена существующей подпискиMOEX— Московская БиржаSPBX— СПБ Биржа- Для Московской Биржи список кодов доступен в таблице
- Для Биржи СПБ всегда SPBX
Simple— оригинальный формат данных. Поддерживает устаревшие параметры для обеспечения обратной совместимостиSlim— облегчённый формат данных для быстрой передачи сообщений. Не поддерживает устаревшие параметрыHeavy— полный формат данных, развивающийся и дополняющийся новыми полями. Не поддерживает устаревшие параметрыSimple— 25 миллисекундSlim— 10 миллисекундHeavy— 500 миллисекунд
Код выполняемой операции:
Биржа:
Пример: MOEX
Тикер (Код финансового инструмента)
Пример: SBER
Код режима торгов (Борд):
Пример: TQBR
Глубина стакана. Стандартное значение — 20 (20x20), максимальное — 50 (50х50).
Пример: 20
Формат возвращаемого сервером JSON-объекта:
От формата объекта также зависит минимальное значение параметра frequency для WebSocket-подписок.
Пример: Simple
Частота (интервал) передачи данных сервером. Сервер вернёт последние данные по запросу за тот временной интервал, который указан в качестве значения параметра. Пример: биржа передаёт данные каждые 2 мс, но, при значении параметра 10 мс, сервер вернёт только последнее значение, отбросив предыдущие.
Минимальное значение параметра зависит от выбранного формата возвращаемого JSON-объекта:
Пример: 100
Уникальный идентификатор запроса. Все ответные сообщения будут иметь такое же значение поля guid
Пример: c328fcf1-e495-408a-a0ed-e20f95d6b813
Access Токен для авторизации запроса
Пример: eyJhbGciOiJ...
Ответы
Содержимое ответа, возвращаемого в WebSocket-соединение, зависит от результатов обработки запроса:
- Если запрос обработан успешно, сервер передаст в ответ одно сообщение с кодом
200, подтверждающее создание подписки, после чего начнёт передачу сообщений с кодом100, содержащих запрошенную в рамках подписки информацию. - Если обработка запроса завершилась неудачей, сервер передаст в ответ одно сообщение с кодом ошибки, соответствующим причине отказа, после чего закроет WebSocket-соединение.
Сообщения
- 100
- 200
- 401
Сообщения от канала, содержащие в себе информацию, запрошенную в рамках подписки
- Формат Simple
- Формат Slim (Общий)
- Формат Slim (Облигации)
- Формат Heavy
- Тело ответа
- Схема
{
"data": {
"snapshot": true,
"bids": [
{
"price": 257.70,
"volume": 157
}
],
"asks": [
{
"price": 257.71,
"volume": 288
}
],
"timestamp": 1702631123,
"ms_timestamp": 1702631123780,
"existing": true
},
"guid": "c328fcf1-e495-408a-a0ed-e20f95d6b813"
}
Параметры тела ответа
data
object
Блок данных от информационного канала
Deprecated. Устаревшее поле, будет удалено в будущих обновлениях. Вместо этого поля используйте поле existing
Пример: true
bids
object
Данные о бидах
Цена
Пример: 271.57
Объём
Пример: 1960
asks
object
Данные об асках
Цена
Пример: 271.57
Объём
Пример: 1960
Deprecated. Устаревшее поле, будет удалено в будущих обновлениях. Вместо этого поля используйте поле ms_timestamp
Пример: 1610982677
Время (UTC) в формате Unix Time Milliseconds
Пример: 1703862267800
True — для данных из снепшота, то есть из истории. False — для новых событий
Пример: false
Уникальный идентификатор запроса. Все ответные сообщения будут иметь такое же значение поля guid
Пример: c328fcf1-e495-408a-a0ed-e20f95d6b813
- Тело ответа
- Схема
{
"data": {
"b": [
{
"p": 257.70,
"v": 157
}
],
"a": [
{
"p": 257.71,
"v": 288
}
],
"t": 1702631123780,
"h": false
},
"guid": "c328fcf1-e495-408a-a0ed-e20f95d6b813"
}
Параметры тела ответа
data
object
Блок данных от информационного канала
b
object
Данные о бидах
Цена
Пример: 271.57
Объём
Пример: 1960
a
object
Данные об асках
Цена
Пример: 271.57
Объём
Пример: 1960
Время (UTC) в формате Unix Time Milliseconds
Пример: 1703862267800
True — для данных из снепшота, то есть из истории. False — для новых событий
Пример: false
Уникальный идентификатор запроса. Все ответные сообщения будут иметь такое же значение поля guid
Пример: c328fcf1-e495-408a-a0ed-e20f95d6b813
- Тело ответа
- Схема
{
"data": {
"b": [
{
"p": 70.589,
"v": 146,
"y": 16.21
}
],
"a": [
{
"p": 70.772,
"v": 10,
"y": 16.14
}
],
"t": 1702631123780,
"h": false
},
"guid": "c328fcf1-e495-408a-a0ed-e20f95d6b813"
}
Параметры тела ответа
data
object
Блок данных от информационного канала
b
object
Данные о бидах
Цена
Пример: 271.57
Объём
Пример: 1960
Доходность облигации
Пример: 16.21
a
object
Данные об асках
Цена
Пример: 271.57
Объём
Пример: 1960
Доходность облигации
Пример: 16.21
Время (UTC) в формате Unix Time Milliseconds
Пример: 1703862267800
True — для данных из снепшота, то есть из истории. False — для новых событий
Пример: false
Уникальный идентификатор запроса. Все ответные сообщения будут иметь такое же значение поля guid
Пример: c328fcf1-e495-408a-a0ed-e20f95d6b813
- Тело ответа
- Схема
{
"data": {
"bids": [
{
"price": 257.70,
"volume": 157
}
],
"asks": [
{
"price": 257.71,
"volume": 288
}
],
"msTimestamp": 1702631123780,
"existing": false
},
"guid": "c328fcf1-e495-408a-a0ed-e20f95d6b813"
}
Параметры тела ответа
data
object
Блок данных от информационного канала
bids
object
Данные о бидах
Цена
Пример: 271.57
Объём
Пример: 1960
asks
object
Данные об асках
Цена
Пример: 271.57
Объём
Пример: 1960
Время (UTC) в формате Unix Time Milliseconds
Пример: 1703862267800
True — для данных из снепшота, то есть из истории. False — для новых событий
Пример: false
Уникальный идентификатор запроса. Все ответные сообщения будут иметь такое же значение поля guid
Пример: c328fcf1-e495-408a-a0ed-e20f95d6b813
Сообщение об успешной обработке запроса на подписку
- Тело ответа
- Схема
{
"message": "Handled successfully",
"httpCode": 200,
"requestGuid": "c328fcf1-e495-408a-a0ed-e20f95d6b813"
}
Параметры тела ответа
Текстовое представление возвращаемого сообщения
Пример: Handled successfully
Код возвращаемого сообщения
Пример: 200
Уникальный идентификатор запроса. Значением выступает параметр guid, указанный в теле запроса
Пример: c328fcf1-e495-408a-a0ed-e20f95d6b813
Не удалось авторизовать запрос — Access Токен не указан в теле запроса, срок его действия истёк или он относится к другому контуру системы
- Тело ответа
- Схема
{
"requestGuid": "c328fcf1-e495-408a-a0ed-e20f95d6b813",
"httpCode": 401,
"message": "Invalid JWT token!"
}
Параметры тела ответа
Уникальный идентификатор запроса. Значением выступает параметр guid, указанный в теле запроса
Пример: c328fcf1-e495-408a-a0ed-e20f95d6b813
Код возвращаемого сообщения
Пример: 401
Текстовое представление возвращаемого сообщения
Пример: Invalid JWT token!