@tinkoff/invest-js
Version:
T-Invest OpenAPI Client
318 lines (317 loc) • 17.9 kB
TypeScript
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { type CallContext, type CallOptions } from "nice-grpc-common";
import { MoneyValue, PriceType, Quotation, ResponseMetadata } from "./common";
/** Направление сделки стоп-заявки. */
export declare enum StopOrderDirection {
/** STOP_ORDER_DIRECTION_UNSPECIFIED - Значение не указано. */
STOP_ORDER_DIRECTION_UNSPECIFIED = 0,
/** STOP_ORDER_DIRECTION_BUY - Покупка. */
STOP_ORDER_DIRECTION_BUY = 1,
/** STOP_ORDER_DIRECTION_SELL - Продажа. */
STOP_ORDER_DIRECTION_SELL = 2,
UNRECOGNIZED = -1
}
export declare function stopOrderDirectionFromJSON(object: any): StopOrderDirection;
export declare function stopOrderDirectionToJSON(object: StopOrderDirection): string;
/** Тип экспирации стоп-заявке. */
export declare enum StopOrderExpirationType {
/** STOP_ORDER_EXPIRATION_TYPE_UNSPECIFIED - Значение не указано. */
STOP_ORDER_EXPIRATION_TYPE_UNSPECIFIED = 0,
/** STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_CANCEL - Действительно до отмены. */
STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_CANCEL = 1,
/** STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_DATE - Действительно до даты снятия. */
STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_DATE = 2,
UNRECOGNIZED = -1
}
export declare function stopOrderExpirationTypeFromJSON(object: any): StopOrderExpirationType;
export declare function stopOrderExpirationTypeToJSON(object: StopOrderExpirationType): string;
/** Тип стоп-заявки. */
export declare enum StopOrderType {
/** STOP_ORDER_TYPE_UNSPECIFIED - Значение не указано. */
STOP_ORDER_TYPE_UNSPECIFIED = 0,
/** STOP_ORDER_TYPE_TAKE_PROFIT - `Take-profit`-заявка. */
STOP_ORDER_TYPE_TAKE_PROFIT = 1,
/** STOP_ORDER_TYPE_STOP_LOSS - `Stop-loss`-заявка. */
STOP_ORDER_TYPE_STOP_LOSS = 2,
/** STOP_ORDER_TYPE_STOP_LIMIT - `Stop-limit`-заявка. */
STOP_ORDER_TYPE_STOP_LIMIT = 3,
UNRECOGNIZED = -1
}
export declare function stopOrderTypeFromJSON(object: any): StopOrderType;
export declare function stopOrderTypeToJSON(object: StopOrderType): string;
/** Статус стоп-заяки. */
export declare enum StopOrderStatusOption {
/** STOP_ORDER_STATUS_UNSPECIFIED - Значение не указано. */
STOP_ORDER_STATUS_UNSPECIFIED = 0,
/** STOP_ORDER_STATUS_ALL - Все заявки. */
STOP_ORDER_STATUS_ALL = 1,
/** STOP_ORDER_STATUS_ACTIVE - Активные заявки. */
STOP_ORDER_STATUS_ACTIVE = 2,
/** STOP_ORDER_STATUS_EXECUTED - Исполненные заявки. */
STOP_ORDER_STATUS_EXECUTED = 3,
/** STOP_ORDER_STATUS_CANCELED - Отменённые заявки. */
STOP_ORDER_STATUS_CANCELED = 4,
/** STOP_ORDER_STATUS_EXPIRED - Истёкшие заявки. */
STOP_ORDER_STATUS_EXPIRED = 5,
UNRECOGNIZED = -1
}
export declare function stopOrderStatusOptionFromJSON(object: any): StopOrderStatusOption;
export declare function stopOrderStatusOptionToJSON(object: StopOrderStatusOption): string;
/** Тип выставляемой заявки. */
export declare enum ExchangeOrderType {
/** EXCHANGE_ORDER_TYPE_UNSPECIFIED - Значение не указано. */
EXCHANGE_ORDER_TYPE_UNSPECIFIED = 0,
/** EXCHANGE_ORDER_TYPE_MARKET - Заявка по рыночной цене. */
EXCHANGE_ORDER_TYPE_MARKET = 1,
/** EXCHANGE_ORDER_TYPE_LIMIT - Лимитная заявка. */
EXCHANGE_ORDER_TYPE_LIMIT = 2,
UNRECOGNIZED = -1
}
export declare function exchangeOrderTypeFromJSON(object: any): ExchangeOrderType;
export declare function exchangeOrderTypeToJSON(object: ExchangeOrderType): string;
/** Тип TakeProfit-заявки. */
export declare enum TakeProfitType {
/** TAKE_PROFIT_TYPE_UNSPECIFIED - Значение не указано. */
TAKE_PROFIT_TYPE_UNSPECIFIED = 0,
/** TAKE_PROFIT_TYPE_REGULAR - Обычная заявка, значение по умолчанию. */
TAKE_PROFIT_TYPE_REGULAR = 1,
/** TAKE_PROFIT_TYPE_TRAILING - Трейлинг-стоп. */
TAKE_PROFIT_TYPE_TRAILING = 2,
UNRECOGNIZED = -1
}
export declare function takeProfitTypeFromJSON(object: any): TakeProfitType;
export declare function takeProfitTypeToJSON(object: TakeProfitType): string;
/** Тип параметров значений трейлинг-стопа. */
export declare enum TrailingValueType {
/** TRAILING_VALUE_UNSPECIFIED - Значение не указано. */
TRAILING_VALUE_UNSPECIFIED = 0,
/** TRAILING_VALUE_ABSOLUTE - Абсолютное значение в единицах цены. */
TRAILING_VALUE_ABSOLUTE = 1,
/** TRAILING_VALUE_RELATIVE - Относительное значение в процентах. */
TRAILING_VALUE_RELATIVE = 2,
UNRECOGNIZED = -1
}
export declare function trailingValueTypeFromJSON(object: any): TrailingValueType;
export declare function trailingValueTypeToJSON(object: TrailingValueType): string;
/** Статус трейлинг-стопа. */
export declare enum TrailingStopStatus {
/** TRAILING_STOP_UNSPECIFIED - Значение не указано. */
TRAILING_STOP_UNSPECIFIED = 0,
/** TRAILING_STOP_ACTIVE - Активный. */
TRAILING_STOP_ACTIVE = 1,
/** TRAILING_STOP_ACTIVATED - Активированный. */
TRAILING_STOP_ACTIVATED = 2,
UNRECOGNIZED = -1
}
export declare function trailingStopStatusFromJSON(object: any): TrailingStopStatus;
export declare function trailingStopStatusToJSON(object: TrailingStopStatus): string;
/** Запрос выставления стоп-заявки. */
export interface PostStopOrderRequest {
/**
* Deprecated FIGI-идентификатор инструмента. Используйте `instrument_id`.
*
* @deprecated
*/
figi?: string | undefined;
/** Количество лотов. */
quantity: number;
/** Цена за 1 инструмент биржевой заявки, которая будет выставлена при срабатывании по достижению `stop_price`. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. */
price?: Quotation | undefined;
/** Стоп-цена заявки за 1 инструмент. При достижении стоп-цены происходит активация стоп-заявки, в результате чего выставляется биржевая заявка. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. */
stopPrice?: Quotation | undefined;
/** Направление операции. */
direction: StopOrderDirection;
/** Номер счёта. */
accountId: string;
/** Тип экспирации заявки. */
expirationType: StopOrderExpirationType;
/** Тип заявки. */
stopOrderType: StopOrderType;
/** Дата и время окончания действия стоп-заявки по UTC. Для `ExpirationType = GoodTillDate` заполнение обязательно, для `GoodTillCancel` игнорируется. */
expireDate?: Date | undefined;
/** Идентификатор инструмента. Принимает значение `figi` или `instrument_uid`. */
instrumentId: string;
/** Тип дочерней биржевой заявки для тейкпрофита. */
exchangeOrderType: ExchangeOrderType;
/** Подтип стоп-заявки — `TakeProfit`. */
takeProfitType: TakeProfitType;
/** Массив с параметрами трейлинг-стопа. */
trailingData: PostStopOrderRequest_TrailingData | undefined;
/** Тип цены. */
priceType: PriceType;
/** Идентификатор запроса выставления поручения для целей идемпотентности в формате `UID`. Максимальная длина — 36 символов. */
orderId: string;
}
export interface PostStopOrderRequest_TrailingData {
/** Отступ. */
indent: Quotation | undefined;
/** Тип величины отступа. */
indentType: TrailingValueType;
/** Размер защитного спреда. */
spread: Quotation | undefined;
/** Тип величины защитного спреда. */
spreadType: TrailingValueType;
}
/** Результат выставления стоп-заявки. */
export interface PostStopOrderResponse {
/** Уникальный идентификатор стоп-заявки. */
stopOrderId: string;
/** Идентификатор ключа идемпотентности, переданный клиентом, в формате `UID`. Максимальная длина 36 — символов. */
orderRequestId: string;
/** Метадата. */
responseMetadata: ResponseMetadata | undefined;
}
/** Запрос получения списка активных стоп-заявок. */
export interface GetStopOrdersRequest {
/** Идентификатор счёта клиента. */
accountId: string;
/** Статус заявок. */
status: StopOrderStatusOption;
/** Левая граница. */
from: Date | undefined;
/** Правая граница. */
to: Date | undefined;
}
/** Список активных стоп-заявок. */
export interface GetStopOrdersResponse {
/** Массив стоп-заявок по счёту. */
stopOrders: StopOrder[];
}
/** Запрос отмены выставленной стоп-заявки. */
export interface CancelStopOrderRequest {
/** Идентификатор счёта клиента. */
accountId: string;
/** Уникальный идентификатор стоп-заявки. */
stopOrderId: string;
}
/** Результат отмены выставленной стоп-заявки. */
export interface CancelStopOrderResponse {
/** Время отмены заявки по UTC. */
time: Date | undefined;
}
/** Информация о стоп-заявке. */
export interface StopOrder {
/** Уникальный идентификатор стоп-заявки. */
stopOrderId: string;
/** Запрошено лотов. */
lotsRequested: number;
/** FIGI-идентификатор инструмента. */
figi: string;
/** Направление операции. */
direction: StopOrderDirection;
/** Валюта стоп-заявки. */
currency: string;
/** Тип стоп-заявки. */
orderType: StopOrderType;
/** Дата и время выставления заявки по UTC. */
createDate: Date | undefined;
/** Дата и время конвертации стоп-заявки в биржевую по UTC. */
activationDateTime: Date | undefined;
/** Дата и время снятия заявки по UTC. */
expirationTime: Date | undefined;
/** Цена заявки за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. */
price: MoneyValue | undefined;
/** Цена активации стоп-заявки за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. */
stopPrice: MoneyValue | undefined;
/** `instrument_uid`-идентификатор инструмента. */
instrumentUid: string;
/** Подтип стоп-заявки — `TakeProfit`. */
takeProfitType: TakeProfitType;
/** Параметры трейлинг-стопа. */
trailingData: StopOrder_TrailingData | undefined;
/** Статус заявки. */
status: StopOrderStatusOption;
/** Тип дочерней биржевой заявки для тейкпрофита. */
exchangeOrderType: ExchangeOrderType;
/** Идентификатор биржевой заявки. */
exchangeOrderId?: string | undefined;
}
export interface StopOrder_TrailingData {
/** Отступ. */
indent: Quotation | undefined;
/** Тип величины отступа. */
indentType: TrailingValueType;
/** Размер защитного спреда. */
spread: Quotation | undefined;
/** Тип величины защитного спреда. */
spreadType: TrailingValueType;
/** Статус трейлинг-стопа. */
status: TrailingStopStatus;
/** Цена исполнения. */
price: Quotation | undefined;
/** Локальный экстремум. */
extr: Quotation | undefined;
}
export declare const PostStopOrderRequest: MessageFns<PostStopOrderRequest>;
export declare const PostStopOrderRequest_TrailingData: MessageFns<PostStopOrderRequest_TrailingData>;
export declare const PostStopOrderResponse: MessageFns<PostStopOrderResponse>;
export declare const GetStopOrdersRequest: MessageFns<GetStopOrdersRequest>;
export declare const GetStopOrdersResponse: MessageFns<GetStopOrdersResponse>;
export declare const CancelStopOrderRequest: MessageFns<CancelStopOrderRequest>;
export declare const CancelStopOrderResponse: MessageFns<CancelStopOrderResponse>;
export declare const StopOrder: MessageFns<StopOrder>;
export declare const StopOrder_TrailingData: MessageFns<StopOrder_TrailingData>;
/** Сервис для работы со стоп-заявками: выставление, отмена, получение списка стоп-заявок. */
export type StopOrdersServiceDefinition = typeof StopOrdersServiceDefinition;
export declare const StopOrdersServiceDefinition: {
readonly name: "StopOrdersService";
readonly fullName: "tinkoff.public.invest.api.contract.v1.StopOrdersService";
readonly methods: {
/** Выставить стоп-заявку. */
readonly postStopOrder: {
readonly name: "PostStopOrder";
readonly requestType: MessageFns<PostStopOrderRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<PostStopOrderResponse>;
readonly responseStream: false;
readonly options: {};
};
/** Получить список активных стоп-заявок по счёту. */
readonly getStopOrders: {
readonly name: "GetStopOrders";
readonly requestType: MessageFns<GetStopOrdersRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<GetStopOrdersResponse>;
readonly responseStream: false;
readonly options: {};
};
/** Отменить стоп-заявку. */
readonly cancelStopOrder: {
readonly name: "CancelStopOrder";
readonly requestType: MessageFns<CancelStopOrderRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<CancelStopOrderResponse>;
readonly responseStream: false;
readonly options: {};
};
};
};
export interface StopOrdersServiceImplementation<CallContextExt = {}> {
/** Выставить стоп-заявку. */
postStopOrder(request: PostStopOrderRequest, context: CallContext & CallContextExt): Promise<DeepPartial<PostStopOrderResponse>>;
/** Получить список активных стоп-заявок по счёту. */
getStopOrders(request: GetStopOrdersRequest, context: CallContext & CallContextExt): Promise<DeepPartial<GetStopOrdersResponse>>;
/** Отменить стоп-заявку. */
cancelStopOrder(request: CancelStopOrderRequest, context: CallContext & CallContextExt): Promise<DeepPartial<CancelStopOrderResponse>>;
}
export interface StopOrdersServiceClient<CallOptionsExt = {}> {
/** Выставить стоп-заявку. */
postStopOrder(request: DeepPartial<PostStopOrderRequest>, options?: CallOptions & CallOptionsExt): Promise<PostStopOrderResponse>;
/** Получить список активных стоп-заявок по счёту. */
getStopOrders(request: DeepPartial<GetStopOrdersRequest>, options?: CallOptions & CallOptionsExt): Promise<GetStopOrdersResponse>;
/** Отменить стоп-заявку. */
cancelStopOrder(request: DeepPartial<CancelStopOrderRequest>, options?: CallOptions & CallOptionsExt): Promise<CancelStopOrderResponse>;
}
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
[K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
interface MessageFns<T> {
encode(message: T, writer?: BinaryWriter): BinaryWriter;
decode(input: BinaryReader | Uint8Array, length?: number): T;
fromJSON(object: any): T;
toJSON(message: T): unknown;
create(base?: DeepPartial<T>): T;
fromPartial(object: DeepPartial<T>): T;
}
export {};