Files

110 lines
6.1 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 SignalService {//Сервис для получения технических сигналов и мнений аналитиков по инструментам.
//GetStrategies — стратегии
rpc GetStrategies(GetStrategiesRequest) returns (GetStrategiesResponse);
//GetSignals — сигналы
rpc GetSignals(GetSignalsRequest) returns (GetSignalsResponse);
}
//Запрос стратегий.
message GetStrategiesRequest {
optional string strategy_id = 1; //Идентификатор стратегии.
}
//Стратегии
message GetStrategiesResponse {
repeated Strategy strategies = 1;
}
//Стратегия
message Strategy {
string strategy_id = 1 [(google.api.field_behavior) = REQUIRED]; //Идентификатор стратегии.
string strategy_name = 2 [(google.api.field_behavior) = REQUIRED]; //Название стратегии.
optional string strategy_description = 3; //Описание стратегии.
optional string strategy_url = 4; //Ссылка на страницу с описанием стратегии.
StrategyType strategy_type = 5 [(google.api.field_behavior) = REQUIRED]; //Тип стратегии.
int32 active_signals = 6 [(google.api.field_behavior) = REQUIRED]; //Количество активных сигналов.
int32 total_signals = 7 [(google.api.field_behavior) = REQUIRED]; //Общее количество сигналов.
int64 time_in_position = 8 [(google.api.field_behavior) = REQUIRED]; //Среднее время нахождения сигнала в позиции.
Quotation average_signal_yield = 9 [(google.api.field_behavior) = REQUIRED]; //Средняя доходность сигнала в стратегии.
Quotation average_signal_yield_year = 10 [(google.api.field_behavior) = REQUIRED]; //Средняя доходность сигналов в стратегии за последний год.
Quotation yield = 11 [(google.api.field_behavior) = REQUIRED]; //Доходность стратегии.
Quotation yield_year = 12 [(google.api.field_behavior) = REQUIRED]; //Доходность стратегии за последний год.
}
//Запрос сигналов.
message GetSignalsRequest {
optional string signal_id = 1; //Идентификатор сигнала.
optional string strategy_id = 2; //Идентификатор стратегии.
optional StrategyType strategy_type = 3; //Тип стратегии.
optional string instrument_uid = 4; // Идентификатор бумаги.
optional google.protobuf.Timestamp from = 5; // Дата начала запрашиваемого интервала по UTC.
optional google.protobuf.Timestamp to = 6; // Дата конца запрашиваемого интервала по UTC.
optional SignalDirection direction = 7; // Направление сигнала.
optional SignalState active = 8; //Состояние сигнала.
optional Page paging = 9; //Настройки пагинации.
}
//Сигналы.
message GetSignalsResponse {
repeated Signal signals = 1; //Массив сигналов.
PageResponse paging = 2; //Данные по пагинации.
}
//Сигнал.
message Signal {
string signal_id = 1 [(google.api.field_behavior) = REQUIRED]; //Идентификатор сигнала.
string strategy_id = 2 [(google.api.field_behavior) = REQUIRED]; //Идентификатор стратегии.
string strategy_name = 3 [(google.api.field_behavior) = REQUIRED]; //Название стратегии.
string instrument_uid = 4 [(google.api.field_behavior) = REQUIRED]; //Идентификатор бумаги.
google.protobuf.Timestamp create_dt = 5 [(google.api.field_behavior) = REQUIRED]; //Дата и время создания сигнала по UTC.
SignalDirection direction = 6 [(google.api.field_behavior) = REQUIRED]; //Направление сигнала.
Quotation initial_price = 7 [(google.api.field_behavior) = REQUIRED]; //Цена бумаги на момент формирования сигнала.
optional string info = 8; //Дополнительная информация о сигнале.
string name = 9 [(google.api.field_behavior) = REQUIRED]; //Название сигнала.
Quotation target_price = 10 [(google.api.field_behavior) = REQUIRED]; //Целевая цена.
google.protobuf.Timestamp end_dt = 11 [(google.api.field_behavior) = REQUIRED]; //Дата и время дедлайна сигнала по UTC.
optional int32 probability = 12; //Вероятность сигнала.
optional Quotation stoploss = 13; //Порог закрытия сигнала по стоплосс.
optional Quotation close_price = 14; //Цена закрытия сигнала.
optional google.protobuf.Timestamp close_dt = 15; //Дата и время закрытия сигнала по UTC.
}
//Тип стратегии.
enum StrategyType {
STRATEGY_TYPE_UNSPECIFIED = 0; //Не определен.
STRATEGY_TYPE_TECHNICAL = 1; //Техническая стратегия.
STRATEGY_TYPE_FUNDAMENTAL = 2; //Фундаментальная стратегия.
}
//Направление сигнала.
enum SignalDirection {
SIGNAL_DIRECTION_UNSPECIFIED = 0; //Не определен.
SIGNAL_DIRECTION_BUY = 1; //Покупка.
SIGNAL_DIRECTION_SELL = 2; //Продажа.
}
//Статус сигнала.
enum SignalState {
SIGNAL_STATE_UNSPECIFIED = 0; //Не определен.
SIGNAL_STATE_ACTIVE = 1; //Активный сигнал.
SIGNAL_STATE_CLOSED = 2; //Закрытый сигнал.
SIGNAL_STATE_ALL = 3; //Все состояния.
}