Перейти к основному содержимому

gRPC-методы

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

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

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

REST-методы

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

TradesStream

Stream сделок пользователя.

OrderStateStream

Stream поручений пользователя.

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

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», измените настройки браузера.