Skip to main content

gRPC-методы

Сервис для работы с торговыми поручениями:

  • выставление;
  • отмена;
  • получение статуса;
  • расчет полной стоимости;
  • получение списка заявок.

Протестировать и отправить запросы можно через REST-методы.

REST-методы

Стрим сервиса заявок

TradesStream

Стрим сделок пользователя.

OrderStateStream

Стрим поручений пользователя. Перед работой прочитайте статью.

Методы сервиса

PostOrder

Выставить заявку.

PostOrderAsync

Выставить заявку асинхронным методом. Особенности работы приведены в статье.

CancelOrder

Отменить заявку.

GetOrderState

Получить статус торгового поручения.

GetOrders

Получить список активных заявок по счету.

ReplaceOrder

Изменить выставленную заявку.

GetMaxLots

Расчет количества доступных для покупки/продажи лотов.

GetOrderPrice

Получить предварительную стоимость для лимитной заявки.

Сообщения методов

TradesStreamRequest

Запрос установки соединения.

FieldTypeDescription
accountsМассив объектов stringИдентификаторы счетов.
ping_delay_msint32Задержка пинг сообщений milliseconds 5000-180000, default 120000

TradesStreamResponse

Информация о торговых поручениях.

FieldTypeDescription
order_tradesOrderTradesИнформация об исполнении торгового поручения.
pingPingПроверка активности стрима.
subscriptionSubscriptionResponseОтвет на запрос на подписку.

OrderTrades

Информация об исполнении торгового поручения.

FieldTypeDescription
order_idstringИдентификатор торгового поручения.
created_atgoogle.protobuf.TimestampДата и время создания сообщения в часовом поясе UTC.
directionOrderDirectionНаправление сделки.
figistringFigi-идентификатор инструмента.
tradesМассив объектов OrderTradeМассив сделок.
account_idstringИдентификатор счета.
instrument_uidstringUID идентификатор инструмента.

OrderTrade

Информация о сделке.

FieldTypeDescription
date_timegoogle.protobuf.TimestampДата и время совершения сделки в часовом поясе UTC.
priceQuotationЦена за 1 инструмент, по которой совершена сделка.
quantityint64Количество штук в сделке.
trade_idstringИдентификатор сделки.

PostOrderRequest

Запрос выставления торгового поручения.

FieldTypeDescription
figistringDeprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
quantityint64Количество лотов.
priceQuotationЦена за 1 инструмент. Для получения стоимости лота требуется умножить на лотность инструмента. Игнорируется для рыночных поручений.
directionOrderDirectionНаправление операции.
account_idstringНомер счета.
order_typeOrderTypeТип заявки.
order_idstringИдентификатор запроса выставления поручения для целей идемпотентности в формате UID. Максимальная длина 36 символов.
instrument_idstringИдентификатор инструмента, принимает значения Figi или Instrument_uid.
time_in_forceTimeInForceTypeАлгоритм исполнения поручения, применяется только к лимитной заявке.
price_typePriceTypeТип цены.

PostOrderResponse

Информация о выставлении поручения.

FieldTypeDescription
order_idstringБиржевой идентификатор заявки.
execution_report_statusOrderExecutionReportStatusТекущий статус заявки.
lots_requestedint64Запрошено лотов.
lots_executedint64Исполнено лотов.
initial_order_priceMoneyValueНачальная цена заявки. Произведение количества запрошенных лотов на цену.
executed_order_priceMoneyValueИсполненная средняя цена одного инструмента в заявке.
total_order_amountMoneyValueИтоговая стоимость заявки, включающая все комиссии.
initial_commissionMoneyValueНачальная комиссия. Комиссия рассчитанная при выставлении заявки.
executed_commissionMoneyValueФактическая комиссия по итогам исполнения заявки.
aci_valueMoneyValueЗначение НКД (накопленного купонного дохода) на дату. НКД при выставлении торговых поручений
figistringFigi-идентификатор инструмента.
directionOrderDirectionНаправление сделки.
initial_security_priceMoneyValueНачальная цена за 1 инструмент. Для получения стоимости лота требуется умножить на лотность инструмента.
order_typeOrderTypeТип заявки.
messagestringДополнительные данные об исполнении заявки.
initial_order_price_ptQuotationНачальная цена заявки в пунктах (для фьючерсов).
instrument_uidstringUID идентификатор инструмента.
order_request_idstringИдентификатор ключа идемпотентности, переданный клиентом, в формате UID. Максимальная длина 36 символов.
response_metadataResponseMetadataМетаданные.

PostOrderAsyncRequest

Запрос выставления асинхронного торгового поручения.

FieldTypeDescription
instrument_idstringИдентификатор инструмента, принимает значения Figi или Instrument_uid.
quantityint64Количество лотов.
priceQuotationЦена за 1 инструмент. Для получения стоимости лота требуется умножить на лотность инструмента. Игнорируется для рыночных поручений.
directionOrderDirectionНаправление операции.
account_idstringНомер счета.
order_typeOrderTypeТип заявки.
order_idstringИдентификатор запроса выставления поручения для целей идемпотентности в формате UID. Максимальная длина 36 символов.
time_in_forceTimeInForceTypeАлгоритм исполнения поручения, применяется только к лимитной заявке.
price_typePriceTypeТип цены.

PostOrderAsyncResponse

Результат выставления асинхронного торгового поручения.

FieldTypeDescription
order_request_idstringИдентификатор ключа идемпотентности, переданный клиентом, в формате UID. Максимальная длина 36 символов.
execution_report_statusOrderExecutionReportStatusТекущий статус заявки.
trade_intent_idstringИдентификатор торгового поручения.

CancelOrderRequest

Запрос отмены торгового поручения.

FieldTypeDescription
account_idstringНомер счета.
order_idstringИдентификатор заявки.
order_id_typeOrderIdTypeТип идентификатора заявки.

CancelOrderResponse

Результат отмены торгового поручения.

FieldTypeDescription
timegoogle.protobuf.TimestampДата и время отмены заявки в часовом поясе UTC.
response_metadataResponseMetadataМетаданные.

GetOrderStateRequest

Запрос получения статуса торгового поручения.

FieldTypeDescription
account_idstringНомер счета.
order_idstringИдентификатор заявки.
price_typePriceTypeТип цены.
order_id_typeOrderIdTypeТип идентификатора заявки.

GetOrdersRequest

Запрос получения списка активных торговых поручений.

FieldTypeDescription
account_idstringНомер счета.

GetOrdersResponse

Список активных торговых поручений.

FieldTypeDescription
ordersМассив объектов OrderStateМассив активных заявок.

OrderState

Информация о торговом поручении.

FieldTypeDescription
order_idstringБиржевой идентификатор заявки.
execution_report_statusOrderExecutionReportStatusТекущий статус заявки.
lots_requestedint64Запрошено лотов.
lots_executedint64Исполнено лотов.
initial_order_priceMoneyValueНачальная цена заявки. Произведение количества запрошенных лотов на цену.
executed_order_priceMoneyValueИсполненная цена заявки. Произведение средней цены покупки на количество лотов.
total_order_amountMoneyValueИтоговая стоимость заявки, включающая все комиссии.
average_position_priceMoneyValueСредняя цена позиции по сделке.
initial_commissionMoneyValueНачальная комиссия. Комиссия, рассчитанная на момент подачи заявки.
executed_commissionMoneyValueФактическая комиссия по итогам исполнения заявки.
figistringFigi-идентификатор инструмента.
directionOrderDirectionНаправление заявки.
initial_security_priceMoneyValueНачальная цена за 1 инструмент. Для получения стоимости лота требуется умножить на лотность инструмента.
stagesМассив объектов OrderStageСтадии выполнения заявки.
service_commissionMoneyValueСервисная комиссия.
currencystringВалюта заявки.
order_typeOrderTypeТип заявки.
order_dategoogle.protobuf.TimestampДата и время выставления заявки в часовом поясе UTC.
instrument_uidstringUID идентификатор инструмента.
order_request_idstringИдентификатор ключа идемпотентности, переданный клиентом, в формате UID. Максимальная длина 36 символов.

OrderStage

Сделки в рамках торгового поручения.

FieldTypeDescription
priceMoneyValueЦена за 1 инструмент. Для получения стоимости лота требуется умножить на лотность инструмента.
quantityint64Количество лотов.
trade_idstringИдентификатор сделки.
execution_timegoogle.protobuf.TimestampВремя исполнения сделки

ReplaceOrderRequest

Запрос изменения выставленной заявки.

FieldTypeDescription
account_idstringНомер счета.
order_idstringИдентификатор заявки на бирже.
idempotency_keystringНовый идентификатор запроса выставления поручения для целей идемпотентности. Максимальная длина 36 символов. Перезатирает старый ключ.
quantityint64Количество лотов.
priceQuotationЦена за 1 инструмент.
price_typePriceTypeТип цены.

GetMaxLotsRequest

Запрос на расчет количества доступных для покупки/продажи лотов. Если не указывать цену инструмента, то расчет произведется по текущум ценам в стакане: по лучшему предложению для покупки и по лучшему спросу для продажи.

FieldTypeDescription
account_idstringНомер счета
instrument_idstringИдентификатор инструмента, принимает значения Figi или instrument_uid
priceQuotationЦена инструмента

GetMaxLotsResponse

Результат количество доступных для покупки/продажи лотов

FieldTypeDescription
currencystringВалюта инструмента
buy_limitsGetMaxLotsResponse.BuyLimitsViewЛимиты для покупок на собственные деньги
buy_margin_limitsGetMaxLotsResponse.BuyLimitsViewЛимиты для покупок с учетом маржинального кредитования
sell_limitsGetMaxLotsResponse.SellLimitsViewЛимиты для продаж по собственной позиции
sell_margin_limitsGetMaxLotsResponse.SellLimitsViewЛимиты для продаж с учетом маржинального кредитования

GetMaxLotsResponse.BuyLimitsView

FieldTypeDescription
buy_money_amountQuotationКоличество доступной валюты для покупки
buy_max_lotsint64Максимальное доступное количество лотов для покупки
buy_max_market_lotsint64Максимальное доступное количество лотов для покупки для заявки по рыночной цене на текущий момент

GetMaxLotsResponse.SellLimitsView

FieldTypeDescription
sell_max_lotsint64Максимальное доступное количество лотов для продажи

GetOrderPriceRequest

Запрос получения предварительной стоимости заявки

FieldTypeDescription
account_idstringНомер счета
instrument_idstringИдентификатор инструмента, принимает значения Figi или instrument_uid
priceQuotationЦена инструмента
directionOrderDirectionНаправление заявки
quantityint64Количество лотов

GetOrderPriceResponse

Предварительная стоимость заявки

FieldTypeDescription
total_order_amountMoneyValueИтоговая стоимость заявки
initial_order_amountMoneyValueСтоимость заявки без комиссий, НКД, ГО (для фьючерсов — стоимость контрактов)
lots_requestedint64Запрошено лотов
executed_commissionMoneyValueОбщая комиссия
executed_commission_rubMoneyValueОбщая комиссия в рублях
service_commissionMoneyValueСервисная комиссия
deal_commissionMoneyValueКомиссия за проведение сделки
extra_bondGetOrderPriceResponse.ExtraBondДополнительная информация по облигациям
extra_futureGetOrderPriceResponse.ExtraFutureДополнительная информация по фьючерсам

GetOrderPriceResponse.ExtraBond

FieldTypeDescription
aci_valueMoneyValueЗначение НКД (накопленного купонного дохода) на дату
nominal_conversion_rateQuotationКурс конвертации для замещающих облигаций

GetOrderPriceResponse.ExtraFuture

FieldTypeDescription
initial_marginMoneyValueГарантийное обеспечение для фьючерса

OrderStateStreamRequest

Запрос установки стрим-соединения торговых поручений

FieldTypeDescription
accountsМассив объектов stringИдентификаторы счетов.
ping_delay_millisint32Задержка пинг сообщений milliseconds 1000-120000, default 120000

SubscriptionResponse

Информация по подпискам

FieldTypeDescription
tracking_idstringУникальный идентификатор запроса, подробнее: tracking_id.
statusResultSubscriptionStatusСтатус подписки.
stream_idstringИдентификатор открытого соединения
accountsМассив объектов stringИдентификаторы счетов.
errorErrorDetail

OrderStateStreamResponse

Информация по заявкам

FieldTypeDescription
order_stateOrderStateStreamResponse.OrderStateИнформация об исполнении торгового поручения.
pingPingПроверка активности стрима.
subscriptionSubscriptionResponseОтвет на запрос на подписку.

OrderStateStreamResponse.OrderState

Заявка

FieldTypeDescription
order_idstringБиржевой идентификатор заявки
order_request_idstringИдентификатор ключа идемпотентности, переданный клиентом, в формате UID. Максимальная длина 36 символов.
client_codestringКод клиента на бирже
created_atgoogle.protobuf.TimestampДата создания заявки
execution_report_statusOrderExecutionReportStatusСтатус заявки
status_infoOrderStateStreamResponse.StatusCauseInfoДополнительная информация по статусу
tickerstringТикер инструмента
class_codestringКласс-код (секция торгов)
lot_sizeint32Лотность инструмента заявки
directionOrderDirectionНаправление заявки
time_in_forceTimeInForceTypeАлгоритм исполнения поручения
order_typeOrderTypeТип заявки
account_idstringНомер счета
initial_order_priceMoneyValueНачальная цена заявки
order_priceMoneyValueЦена выставления заявки
amountMoneyValueПредрассчитанная стоимость полной заявки
executed_order_priceMoneyValueИсполненная средняя цена одного инструмента в заявке
currencystringВалюта исполнения
lots_requestedint64Запрошено лотов
lots_executedint64Исполнено лотов
lots_leftint64Число неисполненных лотов по заявке
lots_cancelledint64Отмененные лоты
markerOrderStateStreamResponse.MarkerTypeСпецсимвол
tradesМассив объектов OrderTradeСписок сделок
completion_timegoogle.protobuf.TimestampВремя исполнения заявки
exchangestringКод биржи
instrument_uidstringUID идентификатор инструмента

Enums

OrderDirection

Направление операции.

NameNumberDescription
ORDER_DIRECTION_UNSPECIFIED0Значение не указано
ORDER_DIRECTION_BUY1Покупка
ORDER_DIRECTION_SELL2Продажа

OrderType

Тип заявки.

NameNumberDescription
ORDER_TYPE_UNSPECIFIED0Значение не указано
ORDER_TYPE_LIMIT1Лимитная
ORDER_TYPE_MARKET2Рыночная
ORDER_TYPE_BESTPRICE3Лучшая цена

OrderExecutionReportStatus

Текущий статус заявки (поручения)

NameNumberDescription
EXECUTION_REPORT_STATUS_UNSPECIFIED0none
EXECUTION_REPORT_STATUS_FILL1Исполнена
EXECUTION_REPORT_STATUS_REJECTED2Отклонена
EXECUTION_REPORT_STATUS_CANCELLED3Отменена пользователем
EXECUTION_REPORT_STATUS_NEW4Новая
EXECUTION_REPORT_STATUS_PARTIALLYFILL5Частично исполнена

TimeInForceType

Алгоритм исполнения заявки

NameNumberDescription
TIME_IN_FORCE_UNSPECIFIED0Значение не определено см. TIME_IN_FORCE_DAY
TIME_IN_FORCE_DAY1Заявка действует до конца торгового дня. Значение по умолчанию
TIME_IN_FORCE_FILL_AND_KILL2Если в момент выставления возможно исполнение заявки(в т.ч. частичное), заявка будет исполнена или отменена сразу после выставления
TIME_IN_FORCE_FILL_OR_KILL3Если в момент выставления возможно полное исполнение заявки, заявка будет исполнена или отменена сразу после выставления, недоступно для срочного рынка и торговли по выходным

OrderIdType

Тип идентификатора заявки

NameNumberDescription
ORDER_ID_TYPE_UNSPECIFIED0Тип идентификатора не указан.
ORDER_ID_TYPE_EXCHANGE1Биржевой идентификатор
ORDER_ID_TYPE_REQUEST2Ключ идемпотентности, переданный клиентом

OrderStateStreamResponse.MarkerType

Маркер

NameNumberDescription
MARKER_UNKNOWN0не определено
MARKER_BROKER1сделки брокера
MARKER_CHAT2исполнение поручение, полученного от клиента через каналы связи
MARKER_PAPER3исполнение поручение, полученного от клиента в бумажной форме
MARKER_MARGIN4принудительное закрытие позиций
MARKER_TKBNM5сделки по управлению ликвидностью
MARKER_SHORT6сделки РЕПО по привлечению у клиентов бумаг
MARKER_SPECMM7перенос временно непокрытых позиций
MARKER_PO8none

OrderStateStreamResponse.StatusCauseInfo

Дополнительная информация по статусу заявки

NameNumberDescription
CAUSE_UNSPECIFIED0Не определено
CAUSE_CANCELLED_BY_CLIENT15Отменено клиентом
CAUSE_CANCELLED_BY_EXCHANGE1Отменено биржей
CAUSE_CANCELLED_NOT_ENOUGH_POSITION2Заявка не выставлена из-за нехватки средств
CAUSE_CANCELLED_BY_CLIENT_BLOCK3Отменено из-за блокировки клиента
CAUSE_REJECTED_BY_BROKER4Отклонено брокером
CAUSE_REJECTED_BY_EXCHANGE5Отклонено биржей
CAUSE_CANCELLED_BY_BROKER6Отменено брокером

PriceType

NameNumberDescription
PRICE_TYPE_UNSPECIFIED0Значение не определено
PRICE_TYPE_POINT1Цена в пунктах (только для фьючерсов и облигаций)
PRICE_TYPE_CURRENCY2Цена в валюте расчетов по инструменту

ResponseMetadata

Метаданные.

FieldTypeDescription
tracking_idstringИдентификатор трекинга
server_timegoogle.protobuf.TimestampСерверное время

ResultSubscriptionStatus

Результат подписки

NameNumberDescription
SUBSCRIPTION_STATUS_UNSPECIFIED0Статус подписки не определен.
SUBSCRIPTION_STATUS_OK1Подписка успешно установлена.
SUBSCRIPTION_STATUS_ERROR13Ошибка подписки

ErrorDetail

Описание ошибки

FieldTypeDescription
codestringКод ошибки.
messagestringОписание ошибки.

Про тип цены

В T-Invest API ответ в методах для фьючерсов и облигаций может возвращаться как в валюте расчетов, так и в пунктах цены. Стоимость пункта может меняться в зависимости от курсовой разницы.

Подробнее про конвертацию пунктов в валюту

Нестандартные типы данных

MoneyValue

Денежная сумма в определенной валюте

FieldTypeDescription
currencystringСтроковый ISO-код валюты
unitsint64Целая часть суммы, может быть отрицательным числом
nanoint32Дробная часть суммы, может быть отрицательным числом

Quotation

Котировка - денежная сумма без указания валюты

FieldTypeDescription
unitsint64Целая часть суммы, может быть отрицательным числом
nanoint32Дробная часть суммы, может быть отрицательным числом

Числа с плавающей точкой (запятой)

В программировании часто используют типы данных с плавающей точкой, например float или double. Такие типы данных - компромисc между скоростью, диапазоном значений и точностью. Число с плавающей точкой имеет фиксированную относительную точность и изменяющуюся абсолютную. Поэтому мы используем тыпы данных MoneyValue и Quotation.

Для всех заявок и котировок на бирже устанавливается шаг цены. В случае использовании чисел с плавающей точкой необходимо проверять, что переданное в запросе значение соответствует шагу цены инструмента.

Пример

Шаг цены для инструмента = 0.1. Хотим выставить заявку по цене 256.8, что соответствует шагу цены. Если представить число 256.8 в формате типа данных float, то значение будет 256.79998779296875.

При выставлении заявки по этой цене на стороне брокера будет выполнено округление таким образом, чтобы не ухудшить поручение клиента:

  • 256.7 в случае покупки;

  • 256.8 в случае продажи.

openapi@tbank.ru

АО «ТБанк» использует файлы «cookie» с целью персонализации сервисов и повышения удобства пользования веб-сайтом. «Cookie» представляют собой небольшие файлы, содержащие информацию о предыдущих посещениях веб-сайта. Если вы не хотите использовать файлы «cookie», измените настройки браузера.