diff --git a/src/docs/contracts/instruments.proto b/src/docs/contracts/instruments.proto index f16ecc08..1931b69a 100644 --- a/src/docs/contracts/instruments.proto +++ b/src/docs/contracts/instruments.proto @@ -76,6 +76,18 @@ service InstrumentsService {/*Сервис предназначен для по //Метод редактирования избранных инструментов. rpc EditFavorites (EditFavoritesRequest) returns (EditFavoritesResponse); + + //Метод получения списка стран. + rpc GetCountries (GetCountriesRequest) returns (GetCountriesResponse); + + //Метод поиска инструмента. + rpc FindInstrument (FindInstrumentRequest) returns (FindInstrumentResponse); + + //Метод получения списка брендов. + rpc GetBrands(GetBrandsRequest) returns (GetBrandsResponse); + + //Метод получения бренда по его идентификатору. + rpc GetBrandBy(GetBrandRequest) returns (Brand); } //Запрос расписания торгов @@ -809,3 +821,53 @@ enum RealExchange { REAL_EXCHANGE_RTS = 2; //Санкт-Петербургская биржа. REAL_EXCHANGE_OTC = 3; //Внебиржевой инструмент. } + +//Запрос справочника стран. +message GetCountriesRequest { } + +//Справочник стран. +message GetCountriesResponse { + repeated CountryResponse countries = 1; //Массив стран. +} + +//Данные о стране. +message CountryResponse { + string alfa_two = 1; //Двухбуквенный код страны. + string alfa_three = 2; //Трёхбуквенный код страны. + string name = 3; //Наименование страны. + string name_brief = 4; //Краткое наименование страны. +} + +//Запрос на поиск инструментов. +message FindInstrumentRequest { + string query = 1; //Строка поиска. +} + +//Результат поиска инструментов. +message FindInstrumentResponse { + repeated InstrumentShort instruments = 1; //Массив инструментов, удовлетворяющих условиям поиска. +} + +//Краткая информация об инструменте. +message InstrumentShort { + string isin = 1; //Isin инструмента. + string figi = 2; //Figi инструмента. + string ticker = 3; //Ticker инструмента. + string class_code = 4; //ClassCode инструмента. + string instrument_type = 5; //Тип инструмента. + string name = 6; //Название инструмента. + string uid = 7; //Уникальный идентификатор инструмента. +} + +//Запрос списка брендов. +message GetBrandsRequest { } + +//Запрос бренда. +message GetBrandRequest { + string id = 1; //Uid-идентификатор бренда. +} + +//Список брендов. +message GetBrandsResponse { + repeated Brand brands = 1; //Массив брендов. +} diff --git a/src/docs/contracts/marketdata.proto b/src/docs/contracts/marketdata.proto index e298ac60..2fb0a694 100644 --- a/src/docs/contracts/marketdata.proto +++ b/src/docs/contracts/marketdata.proto @@ -33,6 +33,9 @@ service MarketDataService { //Сервис получения биржевой service MarketDataStreamService { //Bi-directional стрим предоставления биржевой информации. rpc MarketDataStream(stream MarketDataRequest) returns (stream MarketDataResponse); + + //Server-side стрим предоставления биржевой информации. + rpc MarketDataServerSideStream(MarketDataServerSideStreamRequest) returns (stream MarketDataResponse); } //Запрос подписки или отписки на определённые биржевые данные. @@ -46,6 +49,14 @@ message MarketDataRequest { } } +message MarketDataServerSideStreamRequest { + SubscribeCandlesRequest subscribe_candles_request = 1; //Запрос подписки на свечи. + SubscribeOrderBookRequest subscribe_order_book_request = 2; //Запрос подписки на стаканы. + SubscribeTradesRequest subscribe_trades_request = 3; //Запрос подписки на ленту обезличенных сделок. + SubscribeInfoRequest subscribe_info_request = 4; //Запрос подписки на торговые статусы инструментов. + SubscribeLastPriceRequest subscribe_last_price_request = 5; //Запрос подписки на последние цены. +} + //Пакет биржевой информации по подписке. message MarketDataResponse { oneof payload { @@ -67,6 +78,7 @@ message MarketDataResponse { message SubscribeCandlesRequest { SubscriptionAction subscription_action = 1; //Изменение статуса подписки. repeated CandleInstrument instruments = 2; //Массив инструментов для подписки на свечи. + bool waiting_close = 3; //Флаг ожидания закрытия временного интервала для отправки свечи. } //Тип операции со списком подписок. @@ -110,8 +122,9 @@ enum SubscriptionStatus { SUBSCRIPTION_STATUS_SUBSCRIPTION_ACTION_IS_INVALID = 3; //Некорректный статус подписки, список возможных значений: [SubscriptionAction](https://tinkoff.github.io/investAPI/marketdata#subscriptionaction). SUBSCRIPTION_STATUS_DEPTH_IS_INVALID = 4; //Некорректная глубина стакана, доступные значения: 1, 10, 20, 30, 40, 50. SUBSCRIPTION_STATUS_INTERVAL_IS_INVALID = 5; //Некорректный интервал свечей, список возможных значений: [SubscriptionInterval](https://tinkoff.github.io/investAPI/marketdata#subscriptioninterval). - SUBSCRIPTION_STATUS_LIMIT_IS_EXCEEDED = 6; //Превышен лимит подписок в рамках стрима, подробнее: [Лимитная политика](https://tinkoff.github.io/investAPI/limits/). + SUBSCRIPTION_STATUS_LIMIT_IS_EXCEEDED = 6; //Превышен лимит на общее количество подписок в рамках стрима, подробнее: [Лимитная политика](https://tinkoff.github.io/investAPI/limits/). SUBSCRIPTION_STATUS_INTERNAL_ERROR = 7; //Внутренняя ошибка сервиса. + SUBSCRIPTION_STATUS_TOO_MANY_REQUESTS = 8; //Превышен лимит на количество запросов на подписки в течение установленного отрезка времени } //Запрос на изменение статуса подписки на стаканы. diff --git a/src/docs/contracts/orders.proto b/src/docs/contracts/orders.proto index 4fede3cb..049a4b8a 100644 --- a/src/docs/contracts/orders.proto +++ b/src/docs/contracts/orders.proto @@ -67,7 +67,7 @@ message OrderTrade { message PostOrderRequest { string figi = 1; //Figi-идентификатор инструмента. int64 quantity = 2; //Количество лотов. - Quotation price = 3; //Цена одного инструмента. Для получения стоимости лота требуется умножить на лотность инструмента. + Quotation price = 3; //Цена одного инструмента. Для получения стоимости лота требуется умножить на лотность инструмента. Игнорируется для рыночных поручений. OrderDirection direction = 4; //Направление операции. string account_id = 5; //Номер счёта. OrderType order_type = 6; //Тип заявки. @@ -174,4 +174,4 @@ enum OrderExecutionReportStatus { EXECUTION_REPORT_STATUS_CANCELLED = 3; //Отменена пользователем EXECUTION_REPORT_STATUS_NEW = 4; //Новая EXECUTION_REPORT_STATUS_PARTIALLYFILL = 5; //Частично исполнена -} \ No newline at end of file +} diff --git a/src/docs/users.md b/src/docs/users.md index a32e353c..5aebb73f 100644 --- a/src/docs/users.md +++ b/src/docs/users.md @@ -168,7 +168,7 @@ | ----- | ---- | ----------- | | prem_status | [bool](#bool) | Признак премиум клиента. | | qual_status | [bool](#bool) | Признак квалифицированного инвестора. | -| qualified_for_work_with | Массив объектов [string](#string) | Набор требующих тестирования инструментов и возможностей, с которыми может работать пользователь. | +| qualified_for_work_with | Массив объектов [string](#string) | Набор требующих тестирования инструментов и возможностей, с которыми может работать пользователь. [Подробнее](https://tinkoff.github.io/investAPI/faq_users/).| | tariff | [string](#string) | Наименование тарифа пользователя. |