Skip to content

Commit

Permalink
doc_update
Browse files Browse the repository at this point in the history
  • Loading branch information
b1ng0o committed Aug 26, 2022
1 parent b45f5c7 commit 6bafd00
Show file tree
Hide file tree
Showing 4 changed files with 205 additions and 10 deletions.
106 changes: 100 additions & 6 deletions src/docs/contracts/instruments.proto
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ service InstrumentsService {/*Сервис предназначен для по
//Метод получения списка фьючерсов.
rpc Futures (InstrumentsRequest) returns (FuturesResponse);

//Метод получения опциона по его идентификатору.
rpc OptionBy (InstrumentRequest) returns (OptionResponse);

//Метод получения списка опционов.
rpc Options (InstrumentsRequest) returns (OptionsResponse);

//Метод получения акции по её идентификатору.
rpc ShareBy (InstrumentRequest) returns (ShareResponse);

Expand Down Expand Up @@ -215,6 +221,93 @@ message FuturesResponse {
repeated Future instruments = 1; //Массив фьючерсов.
}

//Данные по опциону.
message OptionResponse {
Option instrument = 1; // Информация по опциону.
}

//Данные по опционам.
message OptionsResponse {
repeated Option instruments = 1; //Массив данных по опциону.
}

//Опцион.
message Option {
string uid = 1; //Уникальный идентификатор инструмента.
string position_uid = 2; //Уникальный идентификатор позиции.
string ticker = 3; //Тикер инструмента.
string class_code = 4; //Класс-код.
string basic_asset_position_uid = 5; //Уникальный идентификатор позиции основного инструмента.

SecurityTradingStatus trading_status = 21; //Текущий режим торгов инструмента.
RealExchange real_exchange = 31; //Реальная площадка исполнения расчётов. Допустимые значения: [REAL_EXCHANGE_MOEX, REAL_EXCHANGE_RTS]
OptionDirection direction = 41; //Направление опциона.
OptionPaymentType payment_type = 42; //Тип расчетов по опциону.
OptionStyle style = 43; //Стиль опциона.
OptionSettlementType settlement_type = 44; //Способ исполнения опциона.

string name = 101; //Название инструмента.
string currency = 111; //Валюта.
string settlement_currency = 112; //Валюта, в которой оценивается контракт.
string asset_type = 131; //Тип актива.
string basic_asset = 132; //Основной актив.
string exchange = 141; //Биржа.
string country_of_risk = 151; //Код страны рисков.
string country_of_risk_name = 152; //Наименование страны рисков.
string sector = 161; //Сектор экономики.

int32 lot = 201; //Количество бумаг в лоте.
Quotation basic_asset_size = 211; //Размер основного актива.
Quotation klong = 221; //Коэффициент ставки риска длинной позиции по клиенту.
Quotation kshort = 222; //Коэффициент ставки риска короткой позиции по клиенту.
Quotation dlong = 223; //Ставка риска минимальной маржи лонг.
Quotation dshort = 224; //Ставка риска минимальной маржи шорт.
Quotation dlong_min = 225; //Ставка риска начальной маржи лонг.
Quotation dshort_min = 226; //Ставка риска начальной маржи шорт.
Quotation min_price_increment = 231; //Минимальный шаг цены.
MoneyValue strike_price = 241; //Цена страйка.

google.protobuf.Timestamp expiration_date = 301; //Дата истечения срока в формате UTC.
google.protobuf.Timestamp first_trade_date = 311; //Дата начала обращения контракта в формате UTC.
google.protobuf.Timestamp last_trade_date = 312; //Дата исполнения в формате UTC.
google.protobuf.Timestamp first_1min_candle_date = 321; //Дата первой минутной свечи в формате UTC.
google.protobuf.Timestamp first_1day_candle_date = 322; //Дата первой дневной свечи в формате UTC.

bool short_enabled_flag = 401; //Признак доступности для операций шорт.
bool for_iis_flag = 402; //Возможность покупки/продажи на ИИС.
bool otc_flag = 403; //Признак внебиржевой ценной бумаги.
bool buy_available_flag = 404; //Признак доступности для покупки.
bool sell_available_flag = 405; //Признак доступности для продажи.
}

//Тип опциона по направлению сделки.
enum OptionDirection {
OPTION_DIRECTION_UNSPECIFIED = 0;
OPTION_DIRECTION_PUT = 1;
OPTION_DIRECTION_CALL = 2;
}

//Тип расчетов по опциону.
enum OptionPaymentType {
OPTION_PAYMENT_TYPE_UNSPECIFIED = 0;
OPTION_PAYMENT_TYPE_PREMIUM = 1;
OPTION_PAYMENT_TYPE_MARGINAL = 2;
}

//Тип опциона по стилю.
enum OptionStyle {
OPTION_STYLE_UNSPECIFIED = 0;
OPTION_STYLE_AMERICAN = 1;
OPTION_STYLE_EUROPEAN = 2;
}

//Тип опциона по способу исполнения.
enum OptionSettlementType {
OPTION_EXECUTION_TYPE_UNSPECIFIED = 0;
OPTION_EXECUTION_TYPE_PHYSICAL_DELIVERY = 1;
OPTION_EXECUTION_TYPE_CASH_SETTLEMENT = 2;
}

//Данные по акции.
message ShareResponse {
Share instrument = 1; // Информация об акции.
Expand Down Expand Up @@ -501,6 +594,7 @@ enum InstrumentIdType {
INSTRUMENT_ID_TYPE_FIGI = 1; //Figi.
INSTRUMENT_ID_TYPE_TICKER = 2; //Ticker.
INSTRUMENT_ID_TYPE_UID = 3; //Уникальный идентификатор.
INSTRUMENT_ID_TYPE_POSITION_UID = 4; //Идентификатор позиции.
}

//Статус запрашиваемых инструментов.
Expand Down Expand Up @@ -860,7 +954,7 @@ enum RealExchange {
}

//Запрос справочника стран.
message GetCountriesRequest { }
message GetCountriesRequest {}

//Справочник стран.
message GetCountriesResponse {
Expand Down Expand Up @@ -888,11 +982,11 @@ message FindInstrumentResponse {
//Краткая информация об инструменте.
message InstrumentShort {
string isin = 1; //Isin инструмента.
string figi = 2; //Figi инструмента.
string ticker = 3; //Ticker инструмента.
string class_code = 4; //ClassCode инструмента.
string figi = 2; //Figi инструмента.
string ticker = 3; //Ticker инструмента.
string class_code = 4; //ClassCode инструмента.
string instrument_type = 5; //Тип инструмента.
string name = 6; //Название инструмента.
string name = 6; //Название инструмента.
string uid = 7; //Уникальный идентификатор инструмента.
string position_uid = 8; //Уникальный идентификатор позиции инструмента.
bool api_trade_available_flag = 11; //Признак доступности торгов через API.
Expand All @@ -902,7 +996,7 @@ message InstrumentShort {
}

//Запрос списка брендов.
message GetBrandsRequest { }
message GetBrandsRequest {}

//Запрос бренда.
message GetBrandRequest {
Expand Down
32 changes: 31 additions & 1 deletion src/docs/contracts/marketdata.proto
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ service MarketDataService { //Сервис получения биржевой

//Метод запроса обезличенных сделок за последний час.
rpc GetLastTrades(GetLastTradesRequest) returns (GetLastTradesResponse);

//Метод запроса цен закрытия торговой сессии по инструментам.
rpc GetClosePrices(GetClosePricesRequest) returns (GetClosePricesResponse);
}

service MarketDataStreamService {
Expand Down Expand Up @@ -324,9 +327,10 @@ message GetLastPricesResponse {

//Информация о цене.
message LastPrice {
string figi = 1; //Идентификатор инструмента.
string figi = 1; //Figi инструмента.
Quotation price = 2; //Последняя цена за 1 инструмент. Для получения стоимости лота требуется умножить на лотность инструмента.
google.protobuf.Timestamp time = 3; //Время получения последней цены в часовом поясе UTC по времени биржи.
string instrument_uid = 11; //Uid инструмента
}

//Запрос стакана.
Expand All @@ -345,6 +349,9 @@ message GetOrderBookResponse {
Quotation close_price = 6; //Цена закрытия за 1 инструмент. Для получения стоимости лота требуется умножить на лотность инструмента.
Quotation limit_up = 7; //Верхний лимит цены за 1 инструмент. Для получения стоимости лота требуется умножить на лотность инструмента.
Quotation limit_down = 8; //Нижний лимит цены за 1 инструмент. Для получения стоимости лота требуется умножить на лотность инструмента.
google.protobuf.Timestamp last_price_ts = 21; //Время получения цены последней сделки.
google.protobuf.Timestamp close_price_ts = 22; //Время получения цены закрытия.
google.protobuf.Timestamp orderbook_ts = 23; //Время формирования стакана на бирже.
}

//Запрос получения торгового статуса.
Expand Down Expand Up @@ -375,3 +382,26 @@ message GetLastTradesResponse {

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

//Запрос цен закрытия торговой сессии по инструментам.
message GetClosePricesRequest {
repeated InstrumentClosePriceRequest instruments = 1; //Массив по инструментам.
}

//Запрос цен закрытия торговой сессии по инструменту.
message InstrumentClosePriceRequest {
string instrument_id = 1; //Идентификатор инструмента, принимает значение figi или instrument_uid
}

//Цены закрытия торговой сессии по инструментам.
message GetClosePricesResponse {
repeated InstrumentClosePriceResponse close_prices = 1; //Массив по инструментам.
}

//Цена закрытия торговой сессии по инструменту.
message InstrumentClosePriceResponse {
string figi = 1; //Figi инструмента.
string instrument_uid = 2; //Uid инструмента.
Quotation price = 11; //Цена закрытия торговой сессии.
google.protobuf.Timestamp time = 21; //Дата совершения торгов.
}
71 changes: 68 additions & 3 deletions src/docs/contracts/operations.proto
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ service OperationsService {/*Сервис предназначен для пол
service OperationsStreamService {
//Server-side stream обновлений портфеля
rpc PortfolioStream(PortfolioStreamRequest) returns (stream PortfolioStreamResponse);

//Server-side stream обновлений информации по изменению позиций портфеля
rpc PositionsStream(PositionsStreamRequest) returns (stream PositionsStreamResponse);
}

//Запрос получения списка операций по счёту.
Expand Down Expand Up @@ -110,6 +113,7 @@ message PositionsResponse {
repeated PositionsSecurities securities = 3; //Список ценно-бумажных позиций портфеля.
bool limits_loading_in_progress = 4; //Признак идущей в данный момент выгрузки лимитов.
repeated PositionsFutures futures = 5; //Список фьючерсов портфеля.
repeated PositionsOptions options = 6; //Список опционов портфеля.
}

//Запрос доступного для вывода остатка.
Expand Down Expand Up @@ -144,6 +148,8 @@ message PositionsSecurities {
string figi = 1; //Figi-идентификатор бумаги.
int64 blocked = 2; //Заблокировано.
int64 balance = 3; //Текущий незаблокированный баланс.
string position_uid = 4; //Уникальный идентификатор позиции.
string instrument_uid = 5; //Уникальный идентификатор инструмента.
bool exchange_blocked = 11; //Заблокировано на бирже.
string instrument_type = 16; //Тип инструмента.
}
Expand All @@ -153,6 +159,16 @@ message PositionsFutures {
string figi = 1; //Figi-идентификатор фьючерса.
int64 blocked = 2; //Заблокировано.
int64 balance = 3; //Текущий незаблокированный баланс.
string position_uid = 4; //Уникальный идентификатор позиции.
string instrument_uid = 5; //Уникальный идентификатор инструмента.
}

//Баланс опциона.
message PositionsOptions {
string position_uid = 1; //Уникальный идентификатор позиции опциона.
string instrument_uid = 2; //Уникальный идентификатор инструмента.
int64 blocked = 11; //Заблокировано.
int64 balance = 21; //Текущий незаблокированный баланс.
}

message BrokerReportRequest {
Expand Down Expand Up @@ -368,16 +384,16 @@ enum PortfolioSubscriptionStatus {

//Запрос списка операций по счёту с пагинацией.
message GetOperationsByCursorRequest {
string account_id = 1; //Идентификатор счёта клиента.
string account_id = 1; //Идентификатор счёта клиента. Обязательный параметр для данного метода, остальные параметры опциональны.
string instrument_id = 2; //Идентификатор инструмента (Figi инструмента или uid инструмента)
google.protobuf.Timestamp from = 6; //Начало периода (по UTC).
google.protobuf.Timestamp to = 7; //Окончание периода (по UTC).
string cursor = 11; //Идентификатор элемента, с которого начать формировать ответ.
int32 limit = 12; //Лимит количества операций.
int32 limit = 12; //Лимит количества операций. По умолчанию устанавливается значение **100**, максимальное значение 1000.
repeated OperationType operation_types = 13; //Тип операции. Принимает значение из списка OperationType.
OperationState state = 14; //Статус запрашиваемых операций, возможные значения указаны в OperationState.
bool without_commissions = 15; //Флаг возвращать ли комиссии, по умолчанию false
bool without_trades = 16; //Флаг ответ без сделок.
bool without_trades = 16; //Флаг получения ответа без массива сделок.
bool without_overnights = 17; //Флаг не показывать overnight операций.
}

Expand Down Expand Up @@ -444,3 +460,52 @@ enum InstrumentType {
INSTRUMENT_TYPE_SP = 6; //Структурная нота.
INSTRUMENT_TYPE_OPTION = 7; //Опцион.
}

//Запрос установки stream-соединения позиций.
message PositionsStreamRequest {
repeated string accounts = 1; //Массив идентификаторов счётов пользователя
}

//Информация по изменению позиций портфеля.
message PositionsStreamResponse {
oneof payload {
PositionsSubscriptionResult subscriptions = 1; //Объект результата подписки.
PositionData position = 2; //Объект стриминга позиций.
Ping ping = 3; //Проверка активности стрима.
}
}

//Объект результата подписки.
message PositionsSubscriptionResult {
repeated PositionsSubscriptionStatus accounts = 1; //Массив счетов клиента.
}

//Счет клиента.
message PositionsSubscriptionStatus {
string account_id = 1; //Идентификатор счёта
PositionsAccountSubscriptionStatus subscription_status = 6; //Результат подписки.
}

//Результат подписки.
enum PositionsAccountSubscriptionStatus {
POSITIONS_SUBSCRIPTION_STATUS_UNSPECIFIED = 0; //Тип не определён.
POSITIONS_SUBSCRIPTION_STATUS_SUCCESS = 1; //Успешно.
POSITIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND = 2; //Счёт не найден или недостаточно прав.
POSITIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR = 3; //Произошла ошибка.
}

//Данные о позиции портфеля.
message PositionData {
string account_id = 1; //Идентификатор счёта.
repeated PositionsMoney money = 2; //Массив валютных позиций портфеля.
repeated PositionsSecurities securities = 3; //Список ценно-бумажных позиций портфеля.
repeated PositionsFutures futures = 4; //Список фьючерсов портфеля.
repeated PositionsOptions options = 5; //Список опционов портфеля.
google.protobuf.Timestamp date = 6; //Дата и время операции в формате UTC.
}

//Валютная позиция портфеля.
message PositionsMoney {
MoneyValue available_value = 1; //Доступное количество валютный позиций.
MoneyValue blocked_value = 2; //Заблокированное количество валютный позиций.
}
6 changes: 6 additions & 0 deletions src/docs/contracts/sandbox.proto
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ service SandboxService { //Сервис для работы с песочниц
//Метод выставления торгового поручения в песочнице.
rpc PostSandboxOrder(PostOrderRequest) returns (PostOrderResponse);

//Метод изменения выставленной заявки.
rpc ReplaceSandboxOrder(ReplaceOrderRequest) returns (PostOrderResponse);

//Метод получения списка активных заявок по счёту в песочнице.
rpc GetSandboxOrders(GetOrdersRequest) returns (GetOrdersResponse);

Expand All @@ -48,6 +51,9 @@ service SandboxService { //Сервис для работы с песочниц

//Метод пополнения счёта в песочнице.
rpc SandboxPayIn(SandboxPayInRequest) returns (SandboxPayInResponse);

//Метод получения доступного остатка для вывода средств в песочнице.
rpc GetSandboxWithdrawLimits(WithdrawLimitsRequest) returns (WithdrawLimitsResponse);
}

//Запрос открытия счёта в песочнице.
Expand Down

0 comments on commit 6bafd00

Please sign in to comment.