Files

178 lines
12 KiB
Protocol Buffer
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 "google/protobuf/timestamp.proto";
import "t_tech/invest/grpc/google/api/field_behavior.proto";
import "t_tech/invest/grpc/common.proto";
service StopOrdersService { /* Сервис для работы со стоп-заявками: выставление, отмена, получение списка стоп-заявок.*/
//PostStopOrder — выставить стоп-заявку
rpc PostStopOrder(PostStopOrderRequest) returns (PostStopOrderResponse);
//GetStopOrders — получить список активных стоп-заявок по счету
rpc GetStopOrders(GetStopOrdersRequest) returns (GetStopOrdersResponse);
//CancelStopOrder — отменить стоп-заявку
rpc CancelStopOrder(CancelStopOrderRequest) returns (CancelStopOrderResponse);
}
//Запрос выставления стоп-заявки.
message PostStopOrderRequest {
optional string figi = 1 [ deprecated = true ]; //Deprecated FIGI-идентификатор инструмента. Используйте `instrument_id`.
int64 quantity = 2 [(google.api.field_behavior) = REQUIRED]; //Количество лотов.
optional Quotation price = 3; //Цена за 1 инструмент биржевой заявки, которая будет выставлена при срабатывании по достижению `stop_price`. Чтобы получить стоимость лота, нужно умножить на лотность инструмента.
optional Quotation stop_price = 4; //Стоп-цена заявки за 1 инструмент. При достижении стоп-цены происходит активация стоп-заявки, в результате чего выставляется биржевая заявка. Чтобы получить стоимость лота, нужно умножить на лотность инструмента.
StopOrderDirection direction = 5 [(google.api.field_behavior) = REQUIRED]; //Направление операции.
string account_id = 6 [(google.api.field_behavior) = REQUIRED]; //Номер счета.
StopOrderExpirationType expiration_type = 7 [(google.api.field_behavior) = REQUIRED]; //Тип экспирации заявки.
StopOrderType stop_order_type = 8 [(google.api.field_behavior) = REQUIRED]; //Тип заявки.
optional google.protobuf.Timestamp expire_date = 9; //Дата и время окончания действия стоп-заявки по UTC. Для `ExpirationType = GoodTillDate` заполнение обязательно, для `GoodTillCancel` игнорируется.
string instrument_id = 10 [(google.api.field_behavior) = REQUIRED]; //Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`.
ExchangeOrderType exchange_order_type = 11; //Тип дочерней биржевой заявки.
TakeProfitType take_profit_type = 12; //Подтип стоп-заявки — `TakeProfit`.
TrailingData trailing_data = 13; //Массив с параметрами трейлинг-стопа.
PriceType price_type = 14; //Тип цены.
string order_id = 15 [(google.api.field_behavior) = REQUIRED]; //Идентификатор запроса выставления поручения для целей идемпотентности в формате `UID`. Максимальная длина — 36 символов.
bool confirm_margin_trade = 16; //Согласие на выставление заявки, которая может привести к непокрытой позиции, по умолчанию false.
optional bool instant_execution = 17; //Признак необходимости моментальной активации, используется только для трейлинг-стопа.
message TrailingData {
Quotation indent = 1; //Отступ.
TrailingValueType indent_type = 2; //Тип величины отступа.
Quotation spread = 3; //Размер защитного спреда.
TrailingValueType spread_type = 4; //Тип величины защитного спреда.
}
}
//Результат выставления стоп-заявки.
message PostStopOrderResponse {
string stop_order_id = 1; //Уникальный идентификатор стоп-заявки.
string order_request_id = 2; //Идентификатор ключа идемпотентности, переданный клиентом, в формате `UID`. Максимальная длина 36 — символов.
ResponseMetadata response_metadata = 254; //Метадата.
}
//Запрос получения списка активных стоп-заявок.
message GetStopOrdersRequest {
string account_id = 1 [(google.api.field_behavior) = REQUIRED]; //Идентификатор счета клиента.
StopOrderStatusOption status = 2; //Статус заявок.
google.protobuf.Timestamp from = 3; //Левая граница.
google.protobuf.Timestamp to = 4; //Правая граница.
}
//Список активных стоп-заявок.
message GetStopOrdersResponse {
repeated StopOrder stop_orders = 1; //Массив стоп-заявок по счету.
}
//Запрос отмены выставленной стоп-заявки.
message CancelStopOrderRequest {
string account_id = 1 [(google.api.field_behavior) = REQUIRED]; //Идентификатор счета клиента.
string stop_order_id = 2 [(google.api.field_behavior) = REQUIRED]; //Уникальный идентификатор стоп-заявки.
}
//Результат отмены выставленной стоп-заявки.
message CancelStopOrderResponse {
google.protobuf.Timestamp time = 1; //Время отмены заявки по UTC.
}
//Информация о стоп-заявке.
message StopOrder {
string stop_order_id = 1; //Уникальный идентификатор стоп-заявки.
int64 lots_requested = 2; //Запрошено лотов.
string figi = 3; //FIGI-идентификатор инструмента.
StopOrderDirection direction = 4; //Направление операции.
string currency = 5; //Валюта стоп-заявки.
StopOrderType order_type = 6; //Тип стоп-заявки.
google.protobuf.Timestamp create_date = 7; //Дата и время выставления заявки по UTC.
google.protobuf.Timestamp activation_date_time = 8; //Дата и время конвертации стоп-заявки в биржевую по UTC.
google.protobuf.Timestamp expiration_time = 9; //Дата и время снятия заявки по UTC.
MoneyValue price = 10; //Цена заявки за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента.
MoneyValue stop_price = 11; //Цена активации стоп-заявки за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента.
string instrument_uid = 12; //`instrument_uid`-идентификатор инструмента.
TakeProfitType take_profit_type = 13; //Подтип стоп-заявки — `TakeProfit`.
TrailingData trailing_data = 14; //Параметры трейлинг-стопа.
StopOrderStatusOption status = 15; //Статус заявки.
ExchangeOrderType exchange_order_type = 16; //Тип дочерней биржевой заявки для тейкпрофита.
optional string exchange_order_id = 17; //Идентификатор биржевой заявки.
string ticker = 18; //Тикер инструмента.
string class_code = 19; //Класс-код (секция торгов).
bool instant_execution = 20; //Признак необходимости моментальной активации, используется только для трейлинг-стопа.
message TrailingData {
Quotation indent = 1; //Отступ.
TrailingValueType indent_type = 2; //Тип величины отступа.
Quotation spread = 3; //Размер защитного спреда.
TrailingValueType spread_type = 4; //Тип величины защитного спреда.
TrailingStopStatus status = 5; //Статус трейлинг-стопа.
Quotation price = 7; //Цена исполнения.
Quotation extr = 8; //Локальный экстремум.
}
}
//Направление сделки стоп-заявки.
enum StopOrderDirection {
STOP_ORDER_DIRECTION_UNSPECIFIED = 0; //Значение не указано.
STOP_ORDER_DIRECTION_BUY = 1; //Покупка.
STOP_ORDER_DIRECTION_SELL = 2; //Продажа.
}
//Тип экспирации стоп-заявке.
enum StopOrderExpirationType {
STOP_ORDER_EXPIRATION_TYPE_UNSPECIFIED = 0; //Значение не указано.
STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_CANCEL = 1; //Действительно до отмены.
STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_DATE = 2; //Действительно до даты снятия.
}
//Тип стоп-заявки.
enum StopOrderType {
STOP_ORDER_TYPE_UNSPECIFIED = 0; //Значение не указано.
STOP_ORDER_TYPE_TAKE_PROFIT = 1; //`Take-profit`-заявка.
STOP_ORDER_TYPE_STOP_LOSS = 2; //`Stop-loss`-заявка.
STOP_ORDER_TYPE_STOP_LIMIT = 3; //`Stop-limit`-заявка.
}
//Статус стоп-заяки.
enum StopOrderStatusOption {
STOP_ORDER_STATUS_UNSPECIFIED = 0; //Значение не указано.
STOP_ORDER_STATUS_ALL = 1; //Все заявки.
STOP_ORDER_STATUS_ACTIVE = 2; //Активные заявки.
STOP_ORDER_STATUS_EXECUTED = 3; //Исполненные заявки.
STOP_ORDER_STATUS_CANCELED = 4; //Отмененные заявки.
STOP_ORDER_STATUS_EXPIRED = 5; //Истекшие заявки.
}
//Тип выставляемой заявки.
enum ExchangeOrderType {
EXCHANGE_ORDER_TYPE_UNSPECIFIED = 0; //Значение не указано.
EXCHANGE_ORDER_TYPE_MARKET = 1; //Заявка по рыночной цене.
EXCHANGE_ORDER_TYPE_LIMIT = 2; //Лимитная заявка.
}
//Тип TakeProfit-заявки.
enum TakeProfitType {
TAKE_PROFIT_TYPE_UNSPECIFIED = 0; //Значение не указано.
TAKE_PROFIT_TYPE_REGULAR = 1; //Обычная заявка, значение по умолчанию.
TAKE_PROFIT_TYPE_TRAILING = 2; //Трейлинг-стоп.
}
//Тип параметров значений трейлинг-стопа.
enum TrailingValueType {
TRAILING_VALUE_UNSPECIFIED = 0; //Значение не указано.
TRAILING_VALUE_ABSOLUTE = 1; //Абсолютное значение в единицах цены.
TRAILING_VALUE_RELATIVE = 2; //Относительное значение в процентах.
}
//Статус трейлинг-стопа.
enum TrailingStopStatus {
TRAILING_STOP_UNSPECIFIED = 0; //Значение не указано.
TRAILING_STOP_ACTIVE = 1; //Активный.
TRAILING_STOP_ACTIVATED = 2; //Активированный.
}