All Downloads are FREE. Search and download functionalities are using the official Maven repository.

api.java-sdk-grpc-contract.1.6.source-code.orders.proto Maven / Gradle / Ivy

There is a newer version: 1.25
Show newest version
syntax = "proto3";

package tinkoff.public.invest.api.contract.v1;

option go_package = "./;investapi";
option java_package = "ru.tinkoff.piapi.contract.v1";
option java_multiple_files = true;
option csharp_namespace = "Tinkoff.InvestApi.V1";
option objc_class_prefix = "TIAPI";
option php_namespace = "Tinkoff\\Invest\\V1";

import "common.proto";
import "google/protobuf/timestamp.proto";

service OrdersStreamService {
  //Stream сделок пользователя
  rpc TradesStream(TradesStreamRequest) returns (stream TradesStreamResponse);
}

service OrdersService {/* Сервис предназначен для работы с торговыми поручениями:
**1**. выставление;
**2**. отмена;
**3**. получение статуса;
**4**. расчёт полной стоимости;
**5**. получение списка заявок.*/ //Метод выставления заявки. rpc PostOrder(PostOrderRequest) returns (PostOrderResponse); //Метод отмены биржевой заявки. rpc CancelOrder(CancelOrderRequest) returns (CancelOrderResponse); //Метод получения статуса торгового поручения. rpc GetOrderState(GetOrderStateRequest) returns (OrderState); //Метод получения списка активных заявок по счёту. rpc GetOrders(GetOrdersRequest) returns (GetOrdersResponse); //Метод изменения выставленной заявки. rpc ReplaceOrder(ReplaceOrderRequest) returns (PostOrderResponse); //расчет количества доступных для покупки/продажи лотов rpc GetMaxLots(GetMaxLotsRequest) returns (GetMaxLotsResponse); } //Запрос установки соединения. message TradesStreamRequest { repeated string accounts = 1; //Идентификаторы счетов. } //Информация о торговых поручениях. message TradesStreamResponse { oneof payload { OrderTrades order_trades = 1; //Информация об исполнении торгового поручения. Ping ping = 2; //Проверка активности стрима. } } //Информация об исполнении торгового поручения. message OrderTrades { string order_id = 1; //Идентификатор торгового поручения. google.protobuf.Timestamp created_at = 2; //Дата и время создания сообщения в часовом поясе UTC. OrderDirection direction = 3; //Направление сделки. string figi = 4; //Figi-идентификатор инструмента. repeated OrderTrade trades = 5; //Массив сделок. string account_id = 6; //Идентификатор счёта. string instrument_uid = 7; //UID идентификатор инструмента. } //Информация о сделке. message OrderTrade { google.protobuf.Timestamp date_time = 1; //Дата и время совершения сделки в часовом поясе UTC. Quotation price = 2; //Цена за 1 инструмент, по которой совершена сделка. int64 quantity = 3; //Количество штук в сделке. string trade_id = 4; //Идентификатор сделки. } //Запрос выставления торгового поручения. message PostOrderRequest { string figi = 1 [ deprecated = true ]; //Deprecated Figi-идентификатор инструмента. Необходимо использовать instrument_id. int64 quantity = 2; //Количество лотов. Quotation price = 3; //Цена за 1 инструмент. Для получения стоимости лота требуется умножить на лотность инструмента. Игнорируется для рыночных поручений. OrderDirection direction = 4; //Направление операции. string account_id = 5; //Номер счёта. OrderType order_type = 6; //Тип заявки. string order_id = 7; //Идентификатор запроса выставления поручения для целей идемпотентности в формате UID. Максимальная длина 36 символов. string instrument_id = 8; //Идентификатор инструмента, принимает значения Figi или Instrument_uid. TimeInForceType time_in_force = 9; //Алгоритм исполнения поручения } //Прочитайте про ключ идемпотентности [здесь](https://russianinvestments.github.io/investAPI/head-orders/) //Информация о выставлении поручения. message PostOrderResponse { string order_id = 1; //Биржевой идентификатор заявки. OrderExecutionReportStatus execution_report_status = 2; //Текущий статус заявки. int64 lots_requested = 3; //Запрошено лотов. int64 lots_executed = 4; //Исполнено лотов. MoneyValue initial_order_price = 5; //Начальная цена заявки. Произведение количества запрошенных лотов на цену. MoneyValue executed_order_price = 6; //Исполненная средняя цена одного инструмента в заявке. MoneyValue total_order_amount = 7; //Итоговая стоимость заявки, включающая все комиссии. MoneyValue initial_commission = 8; //Начальная комиссия. Комиссия рассчитанная при выставлении заявки. MoneyValue executed_commission = 9; //Фактическая комиссия по итогам исполнения заявки. MoneyValue aci_value = 10; //Значение НКД (накопленного купонного дохода) на дату. Подробнее: [НКД при выставлении торговых поручений](https://russianinvestments.github.io/investAPI/head-orders#coupon) string figi = 11; // Figi-идентификатор инструмента. OrderDirection direction = 12; //Направление сделки. MoneyValue initial_security_price = 13; //Начальная цена за 1 инструмент. Для получения стоимости лота требуется умножить на лотность инструмента. OrderType order_type = 14; //Тип заявки. string message = 15; //Дополнительные данные об исполнении заявки. Quotation initial_order_price_pt = 16; //Начальная цена заявки в пунктах (для фьючерсов). string instrument_uid = 17; //UID идентификатор инструмента. string order_request_id = 20; //Идентификатор ключа идемпотентности, переданный клиентом, в формате UID. Максимальная длина 36 символов. } //Запрос отмены торгового поручения. message CancelOrderRequest { string account_id = 1; //Номер счёта. string order_id = 2; //Идентификатор заявки. } //Результат отмены торгового поручения. message CancelOrderResponse { google.protobuf.Timestamp time = 1; //Дата и время отмены заявки в часовом поясе UTC. } //Запрос получения статуса торгового поручения. message GetOrderStateRequest { string account_id = 1; //Номер счёта. string order_id = 2; //Идентификатор заявки. } //Запрос получения списка активных торговых поручений. message GetOrdersRequest { string account_id = 1; //Номер счёта. } //Список активных торговых поручений. message GetOrdersResponse { repeated OrderState orders = 1; //Массив активных заявок. } //Информация о торговом поручении. message OrderState { string order_id = 1; //Биржевой идентификатор заявки. OrderExecutionReportStatus execution_report_status = 2; //Текущий статус заявки. int64 lots_requested = 3; //Запрошено лотов. int64 lots_executed = 4; //Исполнено лотов. MoneyValue initial_order_price = 5; //Начальная цена заявки. Произведение количества запрошенных лотов на цену. MoneyValue executed_order_price = 6; //Исполненная цена заявки. Произведение средней цены покупки на количество лотов. MoneyValue total_order_amount = 7; //Итоговая стоимость заявки, включающая все комиссии. MoneyValue average_position_price = 8; //Средняя цена позиции по сделке. MoneyValue initial_commission = 9; //Начальная комиссия. Комиссия, рассчитанная на момент подачи заявки. MoneyValue executed_commission = 10; //Фактическая комиссия по итогам исполнения заявки. string figi = 11; //Figi-идентификатор инструмента. OrderDirection direction = 12; //Направление заявки. MoneyValue initial_security_price = 13; //Начальная цена за 1 инструмент. Для получения стоимости лота требуется умножить на лотность инструмента. repeated OrderStage stages = 14; //Стадии выполнения заявки. MoneyValue service_commission = 15; //Сервисная комиссия. string currency = 16; //Валюта заявки. OrderType order_type = 17; //Тип заявки. google.protobuf.Timestamp order_date = 18; //Дата и время выставления заявки в часовом поясе UTC. string instrument_uid = 19; //UID идентификатор инструмента. string order_request_id = 20; //Идентификатор ключа идемпотентности, переданный клиентом, в формате UID. Максимальная длина 36 символов. } //Сделки в рамках торгового поручения. message OrderStage { MoneyValue price = 1; //Цена за 1 инструмент. Для получения стоимости лота требуется умножить на лотность инструмента. int64 quantity = 2; //Количество лотов. string trade_id = 3; //Идентификатор сделки. } //Запрос изменения выставленной заявки. message ReplaceOrderRequest { string account_id = 1; //Номер счета. string order_id = 6; //Идентификатор заявки на бирже. string idempotency_key = 7; //Новый идентификатор запроса выставления поручения для целей идемпотентности. Максимальная длина 36 символов. Перезатирает старый ключ. int64 quantity = 11; //Количество лотов. Quotation price = 12; //Цена за 1 инструмент. PriceType price_type = 13; //Тип цены. } //Запрос на расчет количества доступных для покупки/продажи лотов message GetMaxLotsRequest { string account_id = 1; //Номер счета string instrument_id = 2; //Идентификатор инструмента, принимает значения Figi или instrument_uid Quotation price = 3; //Цена инструмента } //Результат количество доступных для покупки/продажи лотов message GetMaxLotsResponse { string currency = 1; //Валюта инструмента BuyLimitsView buy_limits = 2; //Лимиты для покупок на собственные деньги BuyLimitsView buy_margin_limits = 3; //Лимиты для покупок с учетом маржинального кредитования SellLimitsView sell_limits = 4; //Лимиты для продаж по собственной позиции SellLimitsView sell_margin_limits = 5; //Лимиты для продаж с учетом маржинального кредитования message BuyLimitsView { Quotation buy_money_amount = 1; //Количество доступной валюты для покупки int64 buy_max_lots = 2; //Максимальное доступное количество лотов для покупки int64 buy_max_market_lots = 3; //Максимальное доступное количество лотов для покупки для заявки по рыночной цене на текущий момент } message SellLimitsView { int64 sell_max_lots = 1; //Максимальное доступное количество лотов для продажи } } //Направление операции. enum OrderDirection { ORDER_DIRECTION_UNSPECIFIED = 0; //Значение не указано ORDER_DIRECTION_BUY = 1; //Покупка ORDER_DIRECTION_SELL = 2; //Продажа } //Тип заявки. enum OrderType { ORDER_TYPE_UNSPECIFIED = 0; //Значение не указано ORDER_TYPE_LIMIT = 1; //Лимитная ORDER_TYPE_MARKET = 2; //Рыночная ORDER_TYPE_BESTPRICE = 3; //Лучшая цена } //Текущий статус заявки (поручения) enum OrderExecutionReportStatus { EXECUTION_REPORT_STATUS_UNSPECIFIED = 0; EXECUTION_REPORT_STATUS_FILL = 1; //Исполнена EXECUTION_REPORT_STATUS_REJECTED = 2; //Отклонена EXECUTION_REPORT_STATUS_CANCELLED = 3; //Отменена пользователем EXECUTION_REPORT_STATUS_NEW = 4; //Новая EXECUTION_REPORT_STATUS_PARTIALLYFILL = 5; //Частично исполнена } enum TimeInForceType { TIME_IN_FORCE_UNSPECIFIED = 0; //Значение не определено см. TIME_IN_FORCE_DAY TIME_IN_FORCE_DAY = 1; //заявка действует до конца торгового дня. значение по умолчанию TIME_IN_FORCE_FILL_AND_KILL = 2; //заявка исполнена(возможно частично) и уничтожена. TIME_IN_FORCE_FILL_OR_KILL = 3; //заявка исполнения полностью или уничтожена }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy