Skip to content

Commit

Permalink
Release 1.19
Browse files Browse the repository at this point in the history
  • Loading branch information
p977ac committed Mar 12, 2024
1 parent f36bf82 commit c135b11
Show file tree
Hide file tree
Showing 13 changed files with 144 additions and 46 deletions.
40 changes: 27 additions & 13 deletions src/docs/contracts/marketdata.proto
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import "google/protobuf/timestamp.proto";
import "common.proto";
import "google/api/field_behavior.proto";

service MarketDataService { //Сервис получения биржевой информации:</br> **1**. свечи;</br> **2**. стаканы;</br> **3**. торговые статусы;</br> **4**. лента сделок.
service MarketDataService {//Сервис получения биржевой информации:</br> **1**. свечи;</br> **2**. стаканы;</br> **3**. торговые статусы;</br> **4**. лента сделок.

//Метод запроса исторических свечей по инструменту.
rpc GetCandles(GetCandlesRequest) returns (GetCandlesResponse);
Expand All @@ -36,6 +36,7 @@ service MarketDataService { //Сервис получения биржевой
//Метод запроса цен закрытия торговой сессии по инструментам.
rpc GetClosePrices(GetClosePricesRequest) returns (GetClosePricesResponse);

//Метод получения технических индикаторов по инструменту
rpc GetTechAnalysis(GetTechAnalysisRequest) returns (GetTechAnalysisResponse);
}

Expand Down Expand Up @@ -118,7 +119,7 @@ enum SubscriptionInterval {

//Запрос изменения статус подписки на свечи.
message CandleInstrument {
string figi = 1 [ deprecated = true ]; // Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
string figi = 1 [deprecated = true]; // Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
SubscriptionInterval interval = 2; //Интервал свечей. (Двухчасовые и четырехчасовые свечи в стриме отсчитываются с 0:00 по UTC)
string instrument_id = 3; //Идентификатор инструмента, принимает значение figi или instrument_uid
}
Expand Down Expand Up @@ -162,7 +163,7 @@ message SubscribeOrderBookRequest {

//Запрос подписки на стаканы.
message OrderBookInstrument {
string figi = 1 [ deprecated = true ]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
string figi = 1 [deprecated = true]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
int32 depth = 2; //Глубина стакана.
string instrument_id = 3; //Идентификатор инструмента, принимает значение figi или instrument_uid
OrderBookType order_book_type = 4; //Тип стакана
Expand Down Expand Up @@ -193,7 +194,7 @@ message SubscribeTradesRequest {

//Запрос подписки на поток обезличенных сделок.
message TradeInstrument {
string figi = 1 [ deprecated = true ]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
string figi = 1 [deprecated = true]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
string instrument_id = 2; //Идентификатор инструмента, принимает значение figi или instrument_uid
}

Expand All @@ -220,7 +221,7 @@ message SubscribeInfoRequest {

//Запрос подписки на торговый статус.
message InfoInstrument {
string figi = 1 [ deprecated = true ]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
string figi = 1 [deprecated = true]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
string instrument_id = 2; //Идентификатор инструмента, принимает значение figi или instrument_uid
}

Expand All @@ -247,7 +248,7 @@ message SubscribeLastPriceRequest {

//Запрос подписки на последнюю цену.
message LastPriceInstrument {
string figi = 1 [ deprecated = true ]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
string figi = 1 [deprecated = true]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
string instrument_id = 2; //Идентификатор инструмента, принимает значение figi или instrument_uid
}

Expand Down Expand Up @@ -329,11 +330,17 @@ message TradingStatus {

//Запрос исторических свечей.
message GetCandlesRequest {
optional string figi = 1 [ deprecated = true ]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
optional string figi = 1 [deprecated = true]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
google.protobuf.Timestamp from = 2 [(google.api.field_behavior) = REQUIRED]; //Начало запрашиваемого периода в часовом поясе UTC.
google.protobuf.Timestamp to = 3 [(google.api.field_behavior) = REQUIRED]; //Окончание запрашиваемого периода в часовом поясе UTC.
CandleInterval interval = 4 [(google.api.field_behavior) = REQUIRED]; //Интервал запрошенных свечей.
optional string instrument_id = 5; //Идентификатор инструмента, принимает значение figi или instrument_uid.
optional CandleSource candle_source_type = 7; //Тип источника свечи

enum CandleSource {
CANDLE_SOURCE_UNSPECIFIED = 0; //Все свечи.
CANDLE_SOURCE_EXCHANGE = 1; //Биржевые свечи.
}
}

//Интервал свечей.
Expand All @@ -354,6 +361,12 @@ enum CandleInterval {
CANDLE_INTERVAL_MONTH = 13; //от 1 месяца до 10 лет.
}

enum CandleSource {
CANDLE_SOURCE_UNSPECIFIED = 0; //Источник свечей не определён.
CANDLE_SOURCE_EXCHANGE = 1; //Биржевые свечи.
CANDLE_SOURCE_DEALER_WEEKEND = 2; //Свечи дилера в результате торговли по выходным.
}

//Список свечей.
message GetCandlesResponse {
repeated HistoricCandle candles = 1; //Массив свечей.
Expand All @@ -368,11 +381,12 @@ message HistoricCandle {
int64 volume = 5; //Объём торгов в лотах.
google.protobuf.Timestamp time = 6; //Время свечи в часовом поясе UTC.
bool is_complete = 7; //Признак завершённости свечи. **false** значит, свеча за текущие интервал ещё сформирована не полностью.
CandleSource candle_source = 9; //Тип источника свечи
}

//Запрос получения цен последних сделок.
message GetLastPricesRequest {
repeated string figi = 1 [ deprecated = true ]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
repeated string figi = 1 [deprecated = true]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
repeated string instrument_id = 2; //Массив идентификаторов инструмента, принимает значения figi или instrument_uid.
}

Expand All @@ -391,7 +405,7 @@ message LastPrice {

//Запрос стакана.
message GetOrderBookRequest {
optional string figi = 1 [ deprecated = true ]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
optional string figi = 1 [deprecated = true]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
int32 depth = 2 [(google.api.field_behavior) = REQUIRED]; //Глубина стакана.
optional string instrument_id = 3; //Идентификатор инструмента, принимает значение figi или instrument_uid.
}
Expand All @@ -414,7 +428,7 @@ message GetOrderBookResponse {

//Запрос получения торгового статуса.
message GetTradingStatusRequest {
optional string figi = 1 [ deprecated = true ]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
optional string figi = 1 [deprecated = true]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
optional string instrument_id = 2; //Идентификатор инструмента, принимает значение figi или instrument_uid.
}

Expand Down Expand Up @@ -443,7 +457,7 @@ message GetTradingStatusResponse {

//Запрос обезличенных сделок за последний час.
message GetLastTradesRequest {
optional string figi = 1 [ deprecated = true ]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
optional string figi = 1 [deprecated = true]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id.
google.protobuf.Timestamp from = 2 [(google.api.field_behavior) = REQUIRED]; //Начало запрашиваемого периода в часовом поясе UTC.
google.protobuf.Timestamp to = 3 [(google.api.field_behavior) = REQUIRED]; //Окончание запрашиваемого периода в часовом поясе UTC.
optional string instrument_id = 4; //Идентификатор инструмента, принимает значение figi или instrument_uid.
Expand All @@ -455,7 +469,7 @@ message GetLastTradesResponse {
}

//Запрос активных подписок.
message GetMySubscriptions { }
message GetMySubscriptions {}

//Запрос цен закрытия торговой сессии по инструментам.
message GetClosePricesRequest {
Expand Down Expand Up @@ -556,4 +570,4 @@ enum OrderBookType {
ORDERBOOK_TYPE_UNSPECIFIED = 0; //не определен
ORDERBOOK_TYPE_EXCHANGE = 1; //Биржевой стакан
ORDERBOOK_TYPE_DEALER = 2; //Стакан дилера
}
}
2 changes: 1 addition & 1 deletion src/docs/contracts/sandbox.proto
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ service SandboxService { //Сервис для работы с песочниц

//Запрос открытия счёта в песочнице.
message OpenSandboxAccountRequest {
//пустой запрос
optional string name = 1; // Название счёта
}

//Номер открытого счёта в песочнице.
Expand Down
2 changes: 2 additions & 0 deletions src/docs/errors.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,8 @@
30216|INVALID_ARGUMENT|deviation_data is invalid|Проверьте параметры запроса. Некорректный параметр deviation_data.|
30217|INVALID_ARGUMENT|smoothing_data is invalid|Проверьте параметры запроса. Некорректный параметр smoothing_data.|
30218|INVALID_ARGUMENT|quantity of instruments can't be more than 3000|Количество инструментов в списке не может быть больше 3000.|
30219|INVALID_ARGUMENT|input candle_source_type is invalid|Проверьте параметры запроса. Некорректный параметр candle_source_type.|
35001|INVALID_ARGUMENT|sandbox accounts limit reached|Достигнут лимит на открытие торговых счетов в песочнице. Чтобы открыть новый счет необходимо закрыть один из существующих|
40002|PERMISSION_DENIED|insufficient privileges|Недостаточно прав для совершения операции.</br>Токен доступа имеет уровень прав read-only, либо у токена нет доступа к указанному счету.</br>Подробнее: [Виды токенов](https://russianinvestments.github.io/investAPI/index#_2)|
40003|UNAUTHENTICATED|authentication token is missing or invalid|Токен доступа не найден или не активен.</br>Вы можете выпустить новый токен по ссылке [Настройки](https://www.tinkoff.ru/invest/settings/)|
40004|PERMISSION_DENIED|Working with orders is not available with this account|Выставление заявок недоступно с текущего аккаунта.</br>Брокерский счет не найден, не принадлежит пользователю или закрыт, либо на пользователе ограничения (от Tinkoff Invest API или от биржи). В этом случае нужно обратиться в техподдержку. |
Expand Down
10 changes: 10 additions & 0 deletions src/docs/errors/api_errors.json
Original file line number Diff line number Diff line change
Expand Up @@ -554,6 +554,16 @@
"type": "INVALID_ARGUMENT",
"description": "Количество инструментов в списке не может быть больше 3000."
},
"30219": {
"message": "input candle_source_type is invalid",
"type": "INVALID_ARGUMENT",
"description": "Проверьте параметры запроса. Некорректный параметр candle_source_type."
},
"35001": {
"message": "sandbox accounts limit reached",
"type": "INVALID_ARGUMENT",
"description": "Достигнут лимит на открытие торговых счетов в песочнице. Чтобы открыть новый счет необходимо закрыть один из существующих"
},
"40002": {
"message": "insufficient privileges",
"type": "PERMISSION_DENIED",
Expand Down
4 changes: 3 additions & 1 deletion src/docs/faq_marketdata.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,9 @@ Bi-directional stream Сервиса котировок поддерживает
###Торговля бумагами Тинькофф через TINKOFF INVEST API<a id="2.10"></a>

Из-за огромного количества скальперских сделок мы закрыли торговлю БПИФ от УК "Тинькофф Капитал" в TINKOFF INVEST API.
Список бумаг смотрите [здесь](https://russianinvestments.github.io/invest-openapi/).
Однако есть несколько фондов, доступных для торговли. Определить их можно по двум признакам:
[доступность инстумента в API](/investAPI/head-instruments/#api) и [торговый статус](/investAPI/faq_trading_status/) `NORMAL_TRADING`.


###Валюты в TINKOFF INVEST API<a id="2.11"></a>

Expand Down
7 changes: 4 additions & 3 deletions src/docs/head-instruments.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,16 +46,17 @@ TINKOFF INVEST API торговых площадок. Обратите вним
выплат используется метод [getAccruedInterests](/investAPI/instruments#getaccruedinterests). Метод позволяет получить график выплаты купонов
для запрошенного периода времени.

##Получения размера гарантийного обеспечения по фьючерсу
##Получения размера гарантийного обеспечения (ГО) по фьючерсу

Фьючерс — это договор между покупателем и продавцом о поставке базового актива в будущем или о выплате
одной из сторон другой стороне разницы между стоимостью контракта и стоимостью базового актива в
будущем ([Срочный рынок](https://help.tinkoff.ru/forts/)).

Для операций с фьючерсами брокером "замораживается" определённый размер гарантийного обеспечения на счёте
пользователя. Для получения информации о размере этого обеспечения используется метод [getFuturesMargin](/investAPI/instruments#getfuturesmargin).
Обратите внимание, что размер гарантийного обеспечения может отличаться для операций покупки и продажи
фьючерса.

**Важно!!!** Метод возвращает ориентировочное значение средств к блокировке, рассчитанное биржей.
Это значение не является конечным резервируемым объемом ГО, после заключения сделки заблокированная сумма может отличаться.

##Получение и изменение списка избранных инструментов

Expand Down

0 comments on commit c135b11

Please sign in to comment.