UNPKG

tinkoff-invest-api

Version:
1,432 lines (1,353 loc) 242 kB
/* eslint-disable */ import Long from "long"; import type { CallContext, CallOptions } from "nice-grpc-common"; import _m0 from "protobufjs/minimal.js"; import { InstrumentStatus, instrumentStatusFromJSON, instrumentStatusToJSON, Ping, PingDelaySettings, PingRequest, Quotation, SecurityTradingStatus, securityTradingStatusFromJSON, securityTradingStatusToJSON, } from "./common.js"; import { Timestamp } from "./google/protobuf/timestamp.js"; export const protobufPackage = "tinkoff.public.invest.api.contract.v1"; /** Тип операции со списком подписок. */ export enum SubscriptionAction { /** SUBSCRIPTION_ACTION_UNSPECIFIED - Статус подписки не определён. */ SUBSCRIPTION_ACTION_UNSPECIFIED = 0, /** SUBSCRIPTION_ACTION_SUBSCRIBE - Подписаться. */ SUBSCRIPTION_ACTION_SUBSCRIBE = 1, /** SUBSCRIPTION_ACTION_UNSUBSCRIBE - Отписаться. */ SUBSCRIPTION_ACTION_UNSUBSCRIBE = 2, UNRECOGNIZED = -1, } export function subscriptionActionFromJSON(object: any): SubscriptionAction { switch (object) { case 0: case "SUBSCRIPTION_ACTION_UNSPECIFIED": return SubscriptionAction.SUBSCRIPTION_ACTION_UNSPECIFIED; case 1: case "SUBSCRIPTION_ACTION_SUBSCRIBE": return SubscriptionAction.SUBSCRIPTION_ACTION_SUBSCRIBE; case 2: case "SUBSCRIPTION_ACTION_UNSUBSCRIBE": return SubscriptionAction.SUBSCRIPTION_ACTION_UNSUBSCRIBE; case -1: case "UNRECOGNIZED": default: return SubscriptionAction.UNRECOGNIZED; } } export function subscriptionActionToJSON(object: SubscriptionAction): string { switch (object) { case SubscriptionAction.SUBSCRIPTION_ACTION_UNSPECIFIED: return "SUBSCRIPTION_ACTION_UNSPECIFIED"; case SubscriptionAction.SUBSCRIPTION_ACTION_SUBSCRIBE: return "SUBSCRIPTION_ACTION_SUBSCRIBE"; case SubscriptionAction.SUBSCRIPTION_ACTION_UNSUBSCRIBE: return "SUBSCRIPTION_ACTION_UNSUBSCRIBE"; case SubscriptionAction.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** Интервал свечи. */ export enum SubscriptionInterval { /** SUBSCRIPTION_INTERVAL_UNSPECIFIED - Интервал свечи не определён. */ SUBSCRIPTION_INTERVAL_UNSPECIFIED = 0, /** SUBSCRIPTION_INTERVAL_ONE_MINUTE - Минутные свечи. */ SUBSCRIPTION_INTERVAL_ONE_MINUTE = 1, /** SUBSCRIPTION_INTERVAL_FIVE_MINUTES - Пятиминутные свечи. */ SUBSCRIPTION_INTERVAL_FIVE_MINUTES = 2, /** SUBSCRIPTION_INTERVAL_FIFTEEN_MINUTES - Пятнадцатиминутные свечи. */ SUBSCRIPTION_INTERVAL_FIFTEEN_MINUTES = 3, /** SUBSCRIPTION_INTERVAL_ONE_HOUR - Часовые свечи. */ SUBSCRIPTION_INTERVAL_ONE_HOUR = 4, /** SUBSCRIPTION_INTERVAL_ONE_DAY - Дневные свечи. */ SUBSCRIPTION_INTERVAL_ONE_DAY = 5, /** SUBSCRIPTION_INTERVAL_2_MIN - Двухминутные свечи. */ SUBSCRIPTION_INTERVAL_2_MIN = 6, /** SUBSCRIPTION_INTERVAL_3_MIN - Трёхминутные свечи. */ SUBSCRIPTION_INTERVAL_3_MIN = 7, /** SUBSCRIPTION_INTERVAL_10_MIN - Десятиминутные свечи. */ SUBSCRIPTION_INTERVAL_10_MIN = 8, /** SUBSCRIPTION_INTERVAL_30_MIN - Тридцатиминутные свечи. */ SUBSCRIPTION_INTERVAL_30_MIN = 9, /** SUBSCRIPTION_INTERVAL_2_HOUR - Двухчасовые свечи. */ SUBSCRIPTION_INTERVAL_2_HOUR = 10, /** SUBSCRIPTION_INTERVAL_4_HOUR - Четырёхчасовые свечи. */ SUBSCRIPTION_INTERVAL_4_HOUR = 11, /** SUBSCRIPTION_INTERVAL_WEEK - Недельные свечи. */ SUBSCRIPTION_INTERVAL_WEEK = 12, /** SUBSCRIPTION_INTERVAL_MONTH - Месячные свечи. */ SUBSCRIPTION_INTERVAL_MONTH = 13, UNRECOGNIZED = -1, } export function subscriptionIntervalFromJSON(object: any): SubscriptionInterval { switch (object) { case 0: case "SUBSCRIPTION_INTERVAL_UNSPECIFIED": return SubscriptionInterval.SUBSCRIPTION_INTERVAL_UNSPECIFIED; case 1: case "SUBSCRIPTION_INTERVAL_ONE_MINUTE": return SubscriptionInterval.SUBSCRIPTION_INTERVAL_ONE_MINUTE; case 2: case "SUBSCRIPTION_INTERVAL_FIVE_MINUTES": return SubscriptionInterval.SUBSCRIPTION_INTERVAL_FIVE_MINUTES; case 3: case "SUBSCRIPTION_INTERVAL_FIFTEEN_MINUTES": return SubscriptionInterval.SUBSCRIPTION_INTERVAL_FIFTEEN_MINUTES; case 4: case "SUBSCRIPTION_INTERVAL_ONE_HOUR": return SubscriptionInterval.SUBSCRIPTION_INTERVAL_ONE_HOUR; case 5: case "SUBSCRIPTION_INTERVAL_ONE_DAY": return SubscriptionInterval.SUBSCRIPTION_INTERVAL_ONE_DAY; case 6: case "SUBSCRIPTION_INTERVAL_2_MIN": return SubscriptionInterval.SUBSCRIPTION_INTERVAL_2_MIN; case 7: case "SUBSCRIPTION_INTERVAL_3_MIN": return SubscriptionInterval.SUBSCRIPTION_INTERVAL_3_MIN; case 8: case "SUBSCRIPTION_INTERVAL_10_MIN": return SubscriptionInterval.SUBSCRIPTION_INTERVAL_10_MIN; case 9: case "SUBSCRIPTION_INTERVAL_30_MIN": return SubscriptionInterval.SUBSCRIPTION_INTERVAL_30_MIN; case 10: case "SUBSCRIPTION_INTERVAL_2_HOUR": return SubscriptionInterval.SUBSCRIPTION_INTERVAL_2_HOUR; case 11: case "SUBSCRIPTION_INTERVAL_4_HOUR": return SubscriptionInterval.SUBSCRIPTION_INTERVAL_4_HOUR; case 12: case "SUBSCRIPTION_INTERVAL_WEEK": return SubscriptionInterval.SUBSCRIPTION_INTERVAL_WEEK; case 13: case "SUBSCRIPTION_INTERVAL_MONTH": return SubscriptionInterval.SUBSCRIPTION_INTERVAL_MONTH; case -1: case "UNRECOGNIZED": default: return SubscriptionInterval.UNRECOGNIZED; } } export function subscriptionIntervalToJSON(object: SubscriptionInterval): string { switch (object) { case SubscriptionInterval.SUBSCRIPTION_INTERVAL_UNSPECIFIED: return "SUBSCRIPTION_INTERVAL_UNSPECIFIED"; case SubscriptionInterval.SUBSCRIPTION_INTERVAL_ONE_MINUTE: return "SUBSCRIPTION_INTERVAL_ONE_MINUTE"; case SubscriptionInterval.SUBSCRIPTION_INTERVAL_FIVE_MINUTES: return "SUBSCRIPTION_INTERVAL_FIVE_MINUTES"; case SubscriptionInterval.SUBSCRIPTION_INTERVAL_FIFTEEN_MINUTES: return "SUBSCRIPTION_INTERVAL_FIFTEEN_MINUTES"; case SubscriptionInterval.SUBSCRIPTION_INTERVAL_ONE_HOUR: return "SUBSCRIPTION_INTERVAL_ONE_HOUR"; case SubscriptionInterval.SUBSCRIPTION_INTERVAL_ONE_DAY: return "SUBSCRIPTION_INTERVAL_ONE_DAY"; case SubscriptionInterval.SUBSCRIPTION_INTERVAL_2_MIN: return "SUBSCRIPTION_INTERVAL_2_MIN"; case SubscriptionInterval.SUBSCRIPTION_INTERVAL_3_MIN: return "SUBSCRIPTION_INTERVAL_3_MIN"; case SubscriptionInterval.SUBSCRIPTION_INTERVAL_10_MIN: return "SUBSCRIPTION_INTERVAL_10_MIN"; case SubscriptionInterval.SUBSCRIPTION_INTERVAL_30_MIN: return "SUBSCRIPTION_INTERVAL_30_MIN"; case SubscriptionInterval.SUBSCRIPTION_INTERVAL_2_HOUR: return "SUBSCRIPTION_INTERVAL_2_HOUR"; case SubscriptionInterval.SUBSCRIPTION_INTERVAL_4_HOUR: return "SUBSCRIPTION_INTERVAL_4_HOUR"; case SubscriptionInterval.SUBSCRIPTION_INTERVAL_WEEK: return "SUBSCRIPTION_INTERVAL_WEEK"; case SubscriptionInterval.SUBSCRIPTION_INTERVAL_MONTH: return "SUBSCRIPTION_INTERVAL_MONTH"; case SubscriptionInterval.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** Результат подписки. */ export enum SubscriptionStatus { /** SUBSCRIPTION_STATUS_UNSPECIFIED - Статус подписки не определён. */ SUBSCRIPTION_STATUS_UNSPECIFIED = 0, /** SUBSCRIPTION_STATUS_SUCCESS - Успешно. */ SUBSCRIPTION_STATUS_SUCCESS = 1, /** SUBSCRIPTION_STATUS_INSTRUMENT_NOT_FOUND - Инструмент не найден. */ SUBSCRIPTION_STATUS_INSTRUMENT_NOT_FOUND = 2, /** SUBSCRIPTION_STATUS_SUBSCRIPTION_ACTION_IS_INVALID - Некорректный статус подписки. [Список возможных значений](https://russianinvestments.github.io/investAPI/marketdata#subscriptionaction). */ SUBSCRIPTION_STATUS_SUBSCRIPTION_ACTION_IS_INVALID = 3, /** SUBSCRIPTION_STATUS_DEPTH_IS_INVALID - Некорректная глубина стакана. Доступные значения — 1, 10, 20, 30, 40, 50. */ SUBSCRIPTION_STATUS_DEPTH_IS_INVALID = 4, /** SUBSCRIPTION_STATUS_INTERVAL_IS_INVALID - Некорректный интервал свечей. [Список возможных значений](https://russianinvestments.github.io/investAPI/marketdata#subscriptioninterval). */ SUBSCRIPTION_STATUS_INTERVAL_IS_INVALID = 5, /** SUBSCRIPTION_STATUS_LIMIT_IS_EXCEEDED - Превышен лимит на общее количество подписок в рамках стрима. [Лимитная политика](https://russianinvestments.github.io/investAPI/limits/). */ SUBSCRIPTION_STATUS_LIMIT_IS_EXCEEDED = 6, /** SUBSCRIPTION_STATUS_INTERNAL_ERROR - Внутренняя ошибка сервиса. */ SUBSCRIPTION_STATUS_INTERNAL_ERROR = 7, /** SUBSCRIPTION_STATUS_TOO_MANY_REQUESTS - Превышен лимит на количество запросов на подписки в течение установленного отрезка времени. */ SUBSCRIPTION_STATUS_TOO_MANY_REQUESTS = 8, /** SUBSCRIPTION_STATUS_SUBSCRIPTION_NOT_FOUND - Активная подписка не найдена. Ошибка может возникнуть только при отписке от несуществующей подписки. */ SUBSCRIPTION_STATUS_SUBSCRIPTION_NOT_FOUND = 9, /** SUBSCRIPTION_STATUS_SOURCE_IS_INVALID - Указан некорректный источник */ SUBSCRIPTION_STATUS_SOURCE_IS_INVALID = 10, UNRECOGNIZED = -1, } export function subscriptionStatusFromJSON(object: any): SubscriptionStatus { switch (object) { case 0: case "SUBSCRIPTION_STATUS_UNSPECIFIED": return SubscriptionStatus.SUBSCRIPTION_STATUS_UNSPECIFIED; case 1: case "SUBSCRIPTION_STATUS_SUCCESS": return SubscriptionStatus.SUBSCRIPTION_STATUS_SUCCESS; case 2: case "SUBSCRIPTION_STATUS_INSTRUMENT_NOT_FOUND": return SubscriptionStatus.SUBSCRIPTION_STATUS_INSTRUMENT_NOT_FOUND; case 3: case "SUBSCRIPTION_STATUS_SUBSCRIPTION_ACTION_IS_INVALID": return SubscriptionStatus.SUBSCRIPTION_STATUS_SUBSCRIPTION_ACTION_IS_INVALID; case 4: case "SUBSCRIPTION_STATUS_DEPTH_IS_INVALID": return SubscriptionStatus.SUBSCRIPTION_STATUS_DEPTH_IS_INVALID; case 5: case "SUBSCRIPTION_STATUS_INTERVAL_IS_INVALID": return SubscriptionStatus.SUBSCRIPTION_STATUS_INTERVAL_IS_INVALID; case 6: case "SUBSCRIPTION_STATUS_LIMIT_IS_EXCEEDED": return SubscriptionStatus.SUBSCRIPTION_STATUS_LIMIT_IS_EXCEEDED; case 7: case "SUBSCRIPTION_STATUS_INTERNAL_ERROR": return SubscriptionStatus.SUBSCRIPTION_STATUS_INTERNAL_ERROR; case 8: case "SUBSCRIPTION_STATUS_TOO_MANY_REQUESTS": return SubscriptionStatus.SUBSCRIPTION_STATUS_TOO_MANY_REQUESTS; case 9: case "SUBSCRIPTION_STATUS_SUBSCRIPTION_NOT_FOUND": return SubscriptionStatus.SUBSCRIPTION_STATUS_SUBSCRIPTION_NOT_FOUND; case 10: case "SUBSCRIPTION_STATUS_SOURCE_IS_INVALID": return SubscriptionStatus.SUBSCRIPTION_STATUS_SOURCE_IS_INVALID; case -1: case "UNRECOGNIZED": default: return SubscriptionStatus.UNRECOGNIZED; } } export function subscriptionStatusToJSON(object: SubscriptionStatus): string { switch (object) { case SubscriptionStatus.SUBSCRIPTION_STATUS_UNSPECIFIED: return "SUBSCRIPTION_STATUS_UNSPECIFIED"; case SubscriptionStatus.SUBSCRIPTION_STATUS_SUCCESS: return "SUBSCRIPTION_STATUS_SUCCESS"; case SubscriptionStatus.SUBSCRIPTION_STATUS_INSTRUMENT_NOT_FOUND: return "SUBSCRIPTION_STATUS_INSTRUMENT_NOT_FOUND"; case SubscriptionStatus.SUBSCRIPTION_STATUS_SUBSCRIPTION_ACTION_IS_INVALID: return "SUBSCRIPTION_STATUS_SUBSCRIPTION_ACTION_IS_INVALID"; case SubscriptionStatus.SUBSCRIPTION_STATUS_DEPTH_IS_INVALID: return "SUBSCRIPTION_STATUS_DEPTH_IS_INVALID"; case SubscriptionStatus.SUBSCRIPTION_STATUS_INTERVAL_IS_INVALID: return "SUBSCRIPTION_STATUS_INTERVAL_IS_INVALID"; case SubscriptionStatus.SUBSCRIPTION_STATUS_LIMIT_IS_EXCEEDED: return "SUBSCRIPTION_STATUS_LIMIT_IS_EXCEEDED"; case SubscriptionStatus.SUBSCRIPTION_STATUS_INTERNAL_ERROR: return "SUBSCRIPTION_STATUS_INTERNAL_ERROR"; case SubscriptionStatus.SUBSCRIPTION_STATUS_TOO_MANY_REQUESTS: return "SUBSCRIPTION_STATUS_TOO_MANY_REQUESTS"; case SubscriptionStatus.SUBSCRIPTION_STATUS_SUBSCRIPTION_NOT_FOUND: return "SUBSCRIPTION_STATUS_SUBSCRIPTION_NOT_FOUND"; case SubscriptionStatus.SUBSCRIPTION_STATUS_SOURCE_IS_INVALID: return "SUBSCRIPTION_STATUS_SOURCE_IS_INVALID"; case SubscriptionStatus.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** Типы источников сделок. */ export enum TradeSourceType { /** TRADE_SOURCE_UNSPECIFIED - Тип источника сделки не определён. */ TRADE_SOURCE_UNSPECIFIED = 0, /** TRADE_SOURCE_EXCHANGE - Биржевые сделки. */ TRADE_SOURCE_EXCHANGE = 1, /** TRADE_SOURCE_DEALER - Сделки дилера. */ TRADE_SOURCE_DEALER = 2, /** TRADE_SOURCE_ALL - Все сделки. */ TRADE_SOURCE_ALL = 3, UNRECOGNIZED = -1, } export function tradeSourceTypeFromJSON(object: any): TradeSourceType { switch (object) { case 0: case "TRADE_SOURCE_UNSPECIFIED": return TradeSourceType.TRADE_SOURCE_UNSPECIFIED; case 1: case "TRADE_SOURCE_EXCHANGE": return TradeSourceType.TRADE_SOURCE_EXCHANGE; case 2: case "TRADE_SOURCE_DEALER": return TradeSourceType.TRADE_SOURCE_DEALER; case 3: case "TRADE_SOURCE_ALL": return TradeSourceType.TRADE_SOURCE_ALL; case -1: case "UNRECOGNIZED": default: return TradeSourceType.UNRECOGNIZED; } } export function tradeSourceTypeToJSON(object: TradeSourceType): string { switch (object) { case TradeSourceType.TRADE_SOURCE_UNSPECIFIED: return "TRADE_SOURCE_UNSPECIFIED"; case TradeSourceType.TRADE_SOURCE_EXCHANGE: return "TRADE_SOURCE_EXCHANGE"; case TradeSourceType.TRADE_SOURCE_DEALER: return "TRADE_SOURCE_DEALER"; case TradeSourceType.TRADE_SOURCE_ALL: return "TRADE_SOURCE_ALL"; case TradeSourceType.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** Направление сделки. */ export enum TradeDirection { /** TRADE_DIRECTION_UNSPECIFIED - Направление сделки не определено. */ TRADE_DIRECTION_UNSPECIFIED = 0, /** TRADE_DIRECTION_BUY - Покупка. */ TRADE_DIRECTION_BUY = 1, /** TRADE_DIRECTION_SELL - Продажа. */ TRADE_DIRECTION_SELL = 2, UNRECOGNIZED = -1, } export function tradeDirectionFromJSON(object: any): TradeDirection { switch (object) { case 0: case "TRADE_DIRECTION_UNSPECIFIED": return TradeDirection.TRADE_DIRECTION_UNSPECIFIED; case 1: case "TRADE_DIRECTION_BUY": return TradeDirection.TRADE_DIRECTION_BUY; case 2: case "TRADE_DIRECTION_SELL": return TradeDirection.TRADE_DIRECTION_SELL; case -1: case "UNRECOGNIZED": default: return TradeDirection.UNRECOGNIZED; } } export function tradeDirectionToJSON(object: TradeDirection): string { switch (object) { case TradeDirection.TRADE_DIRECTION_UNSPECIFIED: return "TRADE_DIRECTION_UNSPECIFIED"; case TradeDirection.TRADE_DIRECTION_BUY: return "TRADE_DIRECTION_BUY"; case TradeDirection.TRADE_DIRECTION_SELL: return "TRADE_DIRECTION_SELL"; case TradeDirection.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** Интервал свечей. Максимальное значение интервала приведено ориентировочно, может отличаться в большую сторону в зависимости от параметров запроса. */ export enum CandleInterval { /** CANDLE_INTERVAL_UNSPECIFIED - Интервал не определён. */ CANDLE_INTERVAL_UNSPECIFIED = 0, /** CANDLE_INTERVAL_1_MIN - От 1 минуты до 1 дня (лимит 2400). */ CANDLE_INTERVAL_1_MIN = 1, /** CANDLE_INTERVAL_5_MIN - От 5 минут до недели (лимит 2400). */ CANDLE_INTERVAL_5_MIN = 2, /** CANDLE_INTERVAL_15_MIN - От 15 минут до 3 недель (лимит 2400). */ CANDLE_INTERVAL_15_MIN = 3, /** CANDLE_INTERVAL_HOUR - От 1 часа до 3 месяцев (лимит 2400). */ CANDLE_INTERVAL_HOUR = 4, /** CANDLE_INTERVAL_DAY - От 1 дня до 6 лет (лимит 2400). */ CANDLE_INTERVAL_DAY = 5, /** CANDLE_INTERVAL_2_MIN - От 2 минут до 1 дня (лимит 1200). */ CANDLE_INTERVAL_2_MIN = 6, /** CANDLE_INTERVAL_3_MIN - От 3 минут до 1 дня (лимит 750). */ CANDLE_INTERVAL_3_MIN = 7, /** CANDLE_INTERVAL_10_MIN - От 10 минут до недели (лимит 1200). */ CANDLE_INTERVAL_10_MIN = 8, /** CANDLE_INTERVAL_30_MIN - От 30 минут до 3 недель (лимит 1200). */ CANDLE_INTERVAL_30_MIN = 9, /** CANDLE_INTERVAL_2_HOUR - От 2 часов до 3 месяцев (лимит 2400). */ CANDLE_INTERVAL_2_HOUR = 10, /** CANDLE_INTERVAL_4_HOUR - От 4 часов до 3 месяцев (лимит 700). */ CANDLE_INTERVAL_4_HOUR = 11, /** CANDLE_INTERVAL_WEEK - От 1 недели до 5 лет (лимит 300). */ CANDLE_INTERVAL_WEEK = 12, /** CANDLE_INTERVAL_MONTH - От 1 месяца до 10 лет (лимит 120). */ CANDLE_INTERVAL_MONTH = 13, UNRECOGNIZED = -1, } export function candleIntervalFromJSON(object: any): CandleInterval { switch (object) { case 0: case "CANDLE_INTERVAL_UNSPECIFIED": return CandleInterval.CANDLE_INTERVAL_UNSPECIFIED; case 1: case "CANDLE_INTERVAL_1_MIN": return CandleInterval.CANDLE_INTERVAL_1_MIN; case 2: case "CANDLE_INTERVAL_5_MIN": return CandleInterval.CANDLE_INTERVAL_5_MIN; case 3: case "CANDLE_INTERVAL_15_MIN": return CandleInterval.CANDLE_INTERVAL_15_MIN; case 4: case "CANDLE_INTERVAL_HOUR": return CandleInterval.CANDLE_INTERVAL_HOUR; case 5: case "CANDLE_INTERVAL_DAY": return CandleInterval.CANDLE_INTERVAL_DAY; case 6: case "CANDLE_INTERVAL_2_MIN": return CandleInterval.CANDLE_INTERVAL_2_MIN; case 7: case "CANDLE_INTERVAL_3_MIN": return CandleInterval.CANDLE_INTERVAL_3_MIN; case 8: case "CANDLE_INTERVAL_10_MIN": return CandleInterval.CANDLE_INTERVAL_10_MIN; case 9: case "CANDLE_INTERVAL_30_MIN": return CandleInterval.CANDLE_INTERVAL_30_MIN; case 10: case "CANDLE_INTERVAL_2_HOUR": return CandleInterval.CANDLE_INTERVAL_2_HOUR; case 11: case "CANDLE_INTERVAL_4_HOUR": return CandleInterval.CANDLE_INTERVAL_4_HOUR; case 12: case "CANDLE_INTERVAL_WEEK": return CandleInterval.CANDLE_INTERVAL_WEEK; case 13: case "CANDLE_INTERVAL_MONTH": return CandleInterval.CANDLE_INTERVAL_MONTH; case -1: case "UNRECOGNIZED": default: return CandleInterval.UNRECOGNIZED; } } export function candleIntervalToJSON(object: CandleInterval): string { switch (object) { case CandleInterval.CANDLE_INTERVAL_UNSPECIFIED: return "CANDLE_INTERVAL_UNSPECIFIED"; case CandleInterval.CANDLE_INTERVAL_1_MIN: return "CANDLE_INTERVAL_1_MIN"; case CandleInterval.CANDLE_INTERVAL_5_MIN: return "CANDLE_INTERVAL_5_MIN"; case CandleInterval.CANDLE_INTERVAL_15_MIN: return "CANDLE_INTERVAL_15_MIN"; case CandleInterval.CANDLE_INTERVAL_HOUR: return "CANDLE_INTERVAL_HOUR"; case CandleInterval.CANDLE_INTERVAL_DAY: return "CANDLE_INTERVAL_DAY"; case CandleInterval.CANDLE_INTERVAL_2_MIN: return "CANDLE_INTERVAL_2_MIN"; case CandleInterval.CANDLE_INTERVAL_3_MIN: return "CANDLE_INTERVAL_3_MIN"; case CandleInterval.CANDLE_INTERVAL_10_MIN: return "CANDLE_INTERVAL_10_MIN"; case CandleInterval.CANDLE_INTERVAL_30_MIN: return "CANDLE_INTERVAL_30_MIN"; case CandleInterval.CANDLE_INTERVAL_2_HOUR: return "CANDLE_INTERVAL_2_HOUR"; case CandleInterval.CANDLE_INTERVAL_4_HOUR: return "CANDLE_INTERVAL_4_HOUR"; case CandleInterval.CANDLE_INTERVAL_WEEK: return "CANDLE_INTERVAL_WEEK"; case CandleInterval.CANDLE_INTERVAL_MONTH: return "CANDLE_INTERVAL_MONTH"; case CandleInterval.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } export enum CandleSource { /** CANDLE_SOURCE_UNSPECIFIED - Источник свечей не определён. */ CANDLE_SOURCE_UNSPECIFIED = 0, /** CANDLE_SOURCE_EXCHANGE - Биржевые свечи. */ CANDLE_SOURCE_EXCHANGE = 1, /** CANDLE_SOURCE_DEALER_WEEKEND - Свечи дилера в результате торговли по выходным. */ CANDLE_SOURCE_DEALER_WEEKEND = 2, UNRECOGNIZED = -1, } export function candleSourceFromJSON(object: any): CandleSource { switch (object) { case 0: case "CANDLE_SOURCE_UNSPECIFIED": return CandleSource.CANDLE_SOURCE_UNSPECIFIED; case 1: case "CANDLE_SOURCE_EXCHANGE": return CandleSource.CANDLE_SOURCE_EXCHANGE; case 2: case "CANDLE_SOURCE_DEALER_WEEKEND": return CandleSource.CANDLE_SOURCE_DEALER_WEEKEND; case -1: case "UNRECOGNIZED": default: return CandleSource.UNRECOGNIZED; } } export function candleSourceToJSON(object: CandleSource): string { switch (object) { case CandleSource.CANDLE_SOURCE_UNSPECIFIED: return "CANDLE_SOURCE_UNSPECIFIED"; case CandleSource.CANDLE_SOURCE_EXCHANGE: return "CANDLE_SOURCE_EXCHANGE"; case CandleSource.CANDLE_SOURCE_DEALER_WEEKEND: return "CANDLE_SOURCE_DEALER_WEEKEND"; case CandleSource.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } export enum OrderBookType { /** ORDERBOOK_TYPE_UNSPECIFIED - Не определён. */ ORDERBOOK_TYPE_UNSPECIFIED = 0, /** ORDERBOOK_TYPE_EXCHANGE - Биржевой стакан. */ ORDERBOOK_TYPE_EXCHANGE = 1, /** ORDERBOOK_TYPE_DEALER - Стакан дилера. */ ORDERBOOK_TYPE_DEALER = 2, /** ORDERBOOK_TYPE_ALL - Стакан биржевой и дилера. */ ORDERBOOK_TYPE_ALL = 3, UNRECOGNIZED = -1, } export function orderBookTypeFromJSON(object: any): OrderBookType { switch (object) { case 0: case "ORDERBOOK_TYPE_UNSPECIFIED": return OrderBookType.ORDERBOOK_TYPE_UNSPECIFIED; case 1: case "ORDERBOOK_TYPE_EXCHANGE": return OrderBookType.ORDERBOOK_TYPE_EXCHANGE; case 2: case "ORDERBOOK_TYPE_DEALER": return OrderBookType.ORDERBOOK_TYPE_DEALER; case 3: case "ORDERBOOK_TYPE_ALL": return OrderBookType.ORDERBOOK_TYPE_ALL; case -1: case "UNRECOGNIZED": default: return OrderBookType.UNRECOGNIZED; } } export function orderBookTypeToJSON(object: OrderBookType): string { switch (object) { case OrderBookType.ORDERBOOK_TYPE_UNSPECIFIED: return "ORDERBOOK_TYPE_UNSPECIFIED"; case OrderBookType.ORDERBOOK_TYPE_EXCHANGE: return "ORDERBOOK_TYPE_EXCHANGE"; case OrderBookType.ORDERBOOK_TYPE_DEALER: return "ORDERBOOK_TYPE_DEALER"; case OrderBookType.ORDERBOOK_TYPE_ALL: return "ORDERBOOK_TYPE_ALL"; case OrderBookType.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** Тип последней цены */ export enum LastPriceType { /** LAST_PRICE_UNSPECIFIED - Не определен. */ LAST_PRICE_UNSPECIFIED = 0, /** LAST_PRICE_EXCHANGE - Цена биржи. */ LAST_PRICE_EXCHANGE = 1, /** LAST_PRICE_DEALER - Цена дилера */ LAST_PRICE_DEALER = 2, UNRECOGNIZED = -1, } export function lastPriceTypeFromJSON(object: any): LastPriceType { switch (object) { case 0: case "LAST_PRICE_UNSPECIFIED": return LastPriceType.LAST_PRICE_UNSPECIFIED; case 1: case "LAST_PRICE_EXCHANGE": return LastPriceType.LAST_PRICE_EXCHANGE; case 2: case "LAST_PRICE_DEALER": return LastPriceType.LAST_PRICE_DEALER; case -1: case "UNRECOGNIZED": default: return LastPriceType.UNRECOGNIZED; } } export function lastPriceTypeToJSON(object: LastPriceType): string { switch (object) { case LastPriceType.LAST_PRICE_UNSPECIFIED: return "LAST_PRICE_UNSPECIFIED"; case LastPriceType.LAST_PRICE_EXCHANGE: return "LAST_PRICE_EXCHANGE"; case LastPriceType.LAST_PRICE_DEALER: return "LAST_PRICE_DEALER"; case LastPriceType.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** Запрос подписки или отписки на определённые биржевые данные. */ export interface MarketDataRequest { /** Запрос подписки на свечи. */ subscribeCandlesRequest?: | SubscribeCandlesRequest | undefined; /** Запрос подписки на стаканы. */ subscribeOrderBookRequest?: | SubscribeOrderBookRequest | undefined; /** Запрос подписки на ленту обезличенных сделок. */ subscribeTradesRequest?: | SubscribeTradesRequest | undefined; /** Запрос подписки на торговые статусы инструментов. */ subscribeInfoRequest?: | SubscribeInfoRequest | undefined; /** Запрос подписки на цены последних сделок. */ subscribeLastPriceRequest?: | SubscribeLastPriceRequest | undefined; /** Запрос своих подписок. */ getMySubscriptions?: | GetMySubscriptions | undefined; /** Запрос проверки активности соединения. */ ping?: | PingRequest | undefined; /** Запрос настройки пинга. */ pingSettings?: PingDelaySettings | undefined; } export interface MarketDataServerSideStreamRequest { /** Запрос подписки на свечи. */ subscribeCandlesRequest?: | SubscribeCandlesRequest | undefined; /** Запрос подписки на стаканы. */ subscribeOrderBookRequest?: | SubscribeOrderBookRequest | undefined; /** Запрос подписки на ленту обезличенных сделок. */ subscribeTradesRequest?: | SubscribeTradesRequest | undefined; /** Запрос подписки на торговые статусы инструментов. */ subscribeInfoRequest?: | SubscribeInfoRequest | undefined; /** Запрос подписки на цены последних сделок. */ subscribeLastPriceRequest?: | SubscribeLastPriceRequest | undefined; /** Запрос настройки пинга. */ pingSettings?: PingDelaySettings | undefined; } /** Пакет биржевой информации по подписке. */ export interface MarketDataResponse { /** Результат подписки на свечи. */ subscribeCandlesResponse?: | SubscribeCandlesResponse | undefined; /** Результат подписки на стаканы. */ subscribeOrderBookResponse?: | SubscribeOrderBookResponse | undefined; /** Результат подписки на поток обезличенных сделок. */ subscribeTradesResponse?: | SubscribeTradesResponse | undefined; /** Результат подписки на торговые статусы инструментов. */ subscribeInfoResponse?: | SubscribeInfoResponse | undefined; /** Свеча. */ candle?: | Candle | undefined; /** Сделки. */ trade?: | Trade | undefined; /** Стакан. */ orderbook?: | OrderBook | undefined; /** Торговый статус. */ tradingStatus?: | TradingStatus | undefined; /** Проверка активности стрима. */ ping?: | Ping | undefined; /** Результат подписки на цены последние сделок по инструментам. */ subscribeLastPriceResponse?: | SubscribeLastPriceResponse | undefined; /** Цена последней сделки. */ lastPrice?: LastPrice | undefined; } /** subscribeCandles | Изменения статуса подписки на свечи. */ export interface SubscribeCandlesRequest { /** Изменение статуса подписки. */ subscriptionAction: SubscriptionAction; /** Массив инструментов для подписки на свечи. */ instruments: CandleInstrument[]; /** Флаг ожидания закрытия временного интервала для отправки свечи. */ waitingClose: boolean; /** Источник свечей. */ candleSourceType?: GetCandlesRequest_CandleSource | undefined; } /** Запрос изменения статус подписки на свечи. */ export interface CandleInstrument { /** * Deprecated FIGI-идентификатор инструмента. Используйте `instrument_id`. * * @deprecated */ figi: string; /** Интервал свечей. Двухчасовые и четырёхчасовые свечи в стриме отсчитываются с 0:00 по UTC. */ interval: SubscriptionInterval; /** Идентификатор инструмента. Принимает значение `figi` или `instrument_uid`. */ instrumentId: string; } /** Результат изменения статус подписки на свечи. */ export interface SubscribeCandlesResponse { /** Уникальный идентификатор запроса. [Подробнее](https://russianinvestments.github.io/investAPI/grpc#tracking-id). */ trackingId: string; /** Массив статусов подписки на свечи. */ candlesSubscriptions: CandleSubscription[]; } /** Статус подписки на свечи. */ export interface CandleSubscription { /** FIGI-идентификатор инструмента. */ figi: string; /** Интервал свечей. */ interval: SubscriptionInterval; /** Статус подписки. */ subscriptionStatus: SubscriptionStatus; /** UID инструмента. */ instrumentUid: string; /** Флаг ожидания закрытия временного интервала для отправки свечи. */ waitingClose: boolean; /** Идентификатор открытого соединения. */ streamId: string; /** Идентификатор подписки в формате `UUID`. */ subscriptionId: string; /** Источник свечей. */ candleSourceType?: GetCandlesRequest_CandleSource | undefined; } /** Запрос на изменение статуса подписки на стаканы. */ export interface SubscribeOrderBookRequest { /** Изменение статуса подписки. */ subscriptionAction: SubscriptionAction; /** Массив инструментов для подписки на стаканы. */ instruments: OrderBookInstrument[]; } /** Запрос подписки на стаканы. */ export interface OrderBookInstrument { /** * Deprecated FIGI-идентификатор инструмента. Используйте `instrument_id`. * * @deprecated */ figi: string; /** Глубина стакана. */ depth: number; /** Идентификатор инструмента. Принимает значение `figi` или `instrument_uid`. */ instrumentId: string; /** Тип стакана. По умолчанию ORDERBOOK_TYPE_ALL - стакан биржевой и дилера. */ orderBookType: OrderBookType; } /** Результат изменения статуса подписки на стаканы. */ export interface SubscribeOrderBookResponse { /** Уникальный идентификатор запроса. [Подробнее](https://russianinvestments.github.io/investAPI/grpc#tracking-id). */ trackingId: string; /** Массив статусов подписки на стаканы. */ orderBookSubscriptions: OrderBookSubscription[]; } /** Статус подписки. */ export interface OrderBookSubscription { /** FIGI-идентификатор инструмента. */ figi: string; /** Глубина стакана. */ depth: number; /** Статус подписки. */ subscriptionStatus: SubscriptionStatus; /** UID инструмента. */ instrumentUid: string; /** Идентификатор открытого соединения. */ streamId: string; /** Идентификатор подписки в формате `UUID`. */ subscriptionId: string; /** Тип стакана. */ orderBookType: OrderBookType; } /** Изменение статуса подписки на поток обезличенных сделок. */ export interface SubscribeTradesRequest { /** Изменение статуса подписки. */ subscriptionAction: SubscriptionAction; /** Массив инструментов для подписки на поток обезличенных сделок. */ instruments: TradeInstrument[]; /** Тип источника сделок. По умолчанию TRADE_SOURCE_ALL - все сделки. */ tradeSource: TradeSourceType; } /** Запрос подписки на поток обезличенных сделок. */ export interface TradeInstrument { /** * Deprecated FIGI-идентификатор инструмента. Используйте instrument_id`. * * @deprecated */ figi: string; /** Идентификатор инструмента. Принимает значение `figi` или `instrument_uid`. */ instrumentId: string; } /** Результат изменения статуса подписки на поток обезличенных сделок. */ export interface SubscribeTradesResponse { /** Уникальный идентификатор запроса. [Подробнее](https://russianinvestments.github.io/investAPI/grpc#tracking-id). */ trackingId: string; /** Массив статусов подписки на поток сделок. */ tradeSubscriptions: TradeSubscription[]; /** Тип источника сделок. */ tradeSource: TradeSourceType; } /** Статус подписки. */ export interface TradeSubscription { /** FIGI-идентификатор инструмента. */ figi: string; /** Статус подписки. */ subscriptionStatus: SubscriptionStatus; /** UID инструмента. */ instrumentUid: string; /** Идентификатор открытого соединения. */ streamId: string; /** Идентификатор подписки в формате UUID. */ subscriptionId: string; } /** Изменение статуса подписки на торговый статус инструмента. */ export interface SubscribeInfoRequest { /** Изменение статуса подписки. */ subscriptionAction: SubscriptionAction; /** Массив инструментов для подписки на торговый статус. */ instruments: InfoInstrument[]; } /** Запрос подписки на торговый статус. */ export interface InfoInstrument { /** * Deprecated FIGI-идентификатор инструмента. Используйте instrument_id`. * * @deprecated */ figi: string; /** Идентификатор инструмента. Принимает значение `figi` или `instrument_uid`. */ instrumentId: string; } /** Результат изменения статуса подписки на торговый статус. */ export interface SubscribeInfoResponse { /** Уникальный идентификатор запроса. [Подробнее](https://russianinvestments.github.io/investAPI/grpc#tracking-id). */ trackingId: string; /** Массив статусов подписки на торговый статус. */ infoSubscriptions: InfoSubscription[]; } /** Статус подписки. */ export interface InfoSubscription { /** FIGI-идентификатор инструмента. */ figi: string; /** Статус подписки. */ subscriptionStatus: SubscriptionStatus; /** UID инструмента. */ instrumentUid: string; /** Идентификатор открытого соединения. */ streamId: string; /** Идентификатор подписки в формате UUID. */ subscriptionId: string; } /** Изменение статуса подписки на цену последней сделки по инструменту. */ export interface SubscribeLastPriceRequest { /** Изменение статуса подписки. */ subscriptionAction: SubscriptionAction; /** Массив инструментов для подписки на цену последней сделки. */ instruments: LastPriceInstrument[]; } /** Запрос подписки на последнюю цену. */ export interface LastPriceInstrument { /** * Deprecated FIGI-идентификатор инструмента. Используйте instrument_id`. * * @deprecated */ figi: string; /** Идентификатор инструмента. Принимает значение `figi` или `instrument_uid`. */ instrumentId: string; } /** Результат изменения статуса подписки на цену последней сделки. */ export interface SubscribeLastPriceResponse { /** Уникальный идентификатор запроса. [Подробнее](https://russianinvestments.github.io/investAPI/grpc#tracking-id). */ trackingId: string; /** Массив статусов подписки на цену последней сделки. */ lastPriceSubscriptions: LastPriceSubscription[]; } /** Статус подписки на цену последней сделки. */ export interface LastPriceSubscription { /** FIGI-идентификатор инструмента. */ figi: string; /** Статус подписки. */ subscriptionStatus: SubscriptionStatus; /** UID инструмента. */ instrumentUid: string; /** Идентификатор открытого соединения. */ streamId: string; /** Идентификатор подписки в формате `UUID`. */ subscriptionId: string; } /** Пакет свечей в рамках стрима. */ export interface Candle { /** FIGI-идентификатор инструмента. */ figi: string; /** Интервал свечи. */ interval: SubscriptionInterval; /** Цена открытия за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. [Подробнее про перевод цен в валюту](https://russianinvestments.github.io/investAPI/faq_marketdata/#_15). */ open?: | Quotation | undefined; /** Максимальная цена за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. [Подробнее про перевод цен в валюту](https://russianinvestments.github.io/investAPI/faq_marketdata/#_15). */ high?: | Quotation | undefined; /** Минимальная цена за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. [Подробнее про перевод цен в валюту](https://russianinvestments.github.io/investAPI/faq_marketdata/#_15). */ low?: | Quotation | undefined; /** Цена закрытия за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. [Подробнее про перевод цен в валюту](https://russianinvestments.github.io/investAPI/faq_marketdata/#_15). */ close?: | Quotation | undefined; /** Объём сделок в лотах. */ volume: number; /** Время начала интервала свечи по UTC. */ time?: | Date | undefined; /** Время последней сделки, вошедшей в свечу по UTC. */ lastTradeTs?: | Date | undefined; /** UID инструмента. */ instrumentUid: string; /** Источник свечей */ candleSourceType: CandleSource; } /** Пакет стаканов в рамках стрима. */ export interface OrderBook { /** FIGI-идентификатор инструмента. */ figi: string; /** Глубина стакана. */ depth: number; /** Флаг консистентности стакана. **false** — не все заявки попали в стакан из-за сетевых задержек или нарушения порядка доставки. */ isConsistent: boolean; /** Массив предложений. */ bids: Order[]; /** Массив спроса. */ asks: Order[]; /** Время формирования стакана в часовом поясе UTC по времени биржи. */ time?: | Date | undefined; /** Верхний лимит цены за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. [Подробнее про перевод цен в валюту](https://russianinvestments.github.io/investAPI/faq_marketdata/#_15). */ limitUp?: | Quotation | undefined; /** Нижний лимит цены за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. [Подробнее про перевод цен в валюту](https://russianinvestments.github.io/investAPI/faq_marketdata/#_15). */ limitDown?: | Quotation | undefined; /** UID инструмента. */ instrumentUid: string; /** Тип стакана. */ orderBookType: OrderBookType; } /** Массив предложений/спроса. */ export interface Order { /** Цена за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. [Подробнее про перевод цен в валюту](https://russianinvestments.github.io/investAPI/faq_marketdata/#_15). */ price?: | Quotation | undefined; /** Количество в лотах. */ quantity: number; } /** Информация о сделке. */ export interface Trade { /** FIGI-идентификатор инструмента. */ figi: string; /** Направление сделки. */ direction: TradeDirection; /** Цена за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. [Подробнее про перевод цен в валюту](https://russianinvestments.github.io/investAPI/faq_marketdata/#_15). */ price?: | Quotation | undefined; /** Количество лотов. */ quantity: number; /** Время сделки в часовом поясе UTC по времени биржи. */ time?: | Date | undefined; /** UID инструмента. */ instrumentUid: string; /** Тип источника сделки. */ tradeSource: TradeSourceType; } /** Пакет изменения торгового статуса. */ export interface TradingStatus { /** FIGI-идентификатор инструмента. */ figi: string; /** Статус торговли инструментом. */ tradingStatus: SecurityTradingStatus; /** Время изменения торгового статуса по UTC. */ time?: | Date | undefined; /** Признак доступности выставления лимитной заявки по инструменту. */ limitOrderAvailableFlag: boolean; /** Признак доступности выставления рыночной заявки по инструменту. */ marketOrderAvailableFlag: boolean; /** UID инструмента. */ instrumentUid: string; } /** Запрос исторических свечей. */ export interface GetCandlesRequest { /** * Deprecated FIGI-идентификатор инструмента. Используйте `instrument_id`. * * @deprecated */ figi?: | string | undefined; /** Начало запрашиваемого периода по UTC. */ from?: | Date | undefined; /** Окончание запрашиваемого периода по UTC. */ to?: | Date | undefined; /** Интервал запрошенных свечей. */ interval: CandleInterval; /** Идентификатор инструмента. Принимает значение `figi` или `instrument_uid`. */ instrumentId?: | string | undefined; /** Тип источника свечи. */ candleSourceType?: | GetCandlesRequest_CandleSource | undefined; /** Максимальное количество свечей в ответе. */ limit?: number | undefined; } export enum GetCandlesRequest_CandleSource { /** CANDLE_SOURCE_UNSPECIFIED - Все свечи. */ CANDLE_SOURCE_UNSPECIFIED = 0, /** CANDLE_SOURCE_EXCHANGE - Биржевые свечи. */ CANDLE_SOURCE_EXCHANGE = 1, /** CANDLE_SOURCE_INCLUDE_WEEKEND - Все свечи с учетом торговли по выходным. */ CANDLE_SOURCE_INCLUDE_WEEKEND = 3, UNRECOGNIZED = -1, } export function getCandlesRequest_CandleSourceFromJSON(object: any): GetCandlesRequest_CandleSource { switch (object) { case 0: case "CANDLE_SOURCE_UNSPECIFIED": return GetCandlesRequest_CandleSource.CANDLE_SOURCE_UNSPECIFIED; case 1: case "CANDLE_SOURCE_EXCHANGE": return GetCandlesRequest_CandleSource.CANDLE_SOURCE_EXCHANGE; case 3: case "CANDLE_SOURCE_INCLUDE_WEEKEND": return GetCandlesRequest_CandleSource.CANDLE_SOURCE_INCLUDE_WEEKEND; case -1: case "UNRECOGNIZED": default: return GetCandlesRequest_CandleSource.UNRECOGNIZED; } } export function getCandlesRequest_CandleSourceToJSON(object: GetCandlesRequest_CandleSource): string { switch (object) { case GetCandlesRequest_CandleSource.CANDLE_SOURCE_UNSPECIFIED: return "CANDLE_SOURCE_UNSPECIFIED"; case GetCandlesRequest_CandleSource.CANDLE_SOURCE_EXCHANGE: return "CANDLE_SOURCE_EXCHANGE"; case GetCandlesRequest_CandleSource.CANDLE_SOURCE_INCLUDE_WEEKEND: return "CANDLE_SOURCE_INCLUDE_WEEKEND"; case GetCandlesRequest_CandleSource.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** Список свечей. */ export interface GetCandlesResponse { /** Массив свечей. */ candles: HistoricCandle[]; } /** Информация о свече. */ export interface HistoricCandle { /** Цена открытия за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. [Подробнее про перевод цен в валюту](https://russianinvestments.github.io/investAPI/faq_marketdata/#_15). */ open?: | Quotation | undefined; /** Максимальная цена за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. [Подробнее про перевод цен в валюту](https://russianinvestments.github.io/investAPI/faq_marketdata/#_15). */ high?: | Quotation | undefined; /** Минимальная цена за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. [Подробнее про перевод цен в валюту](https://russianinvestments.github.io/investAPI/faq_marketdata/#_15). */ low?: | Quotation | undefined; /** Цена закрытия за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. [Подробнее про перевод цен в валюту](https://russianinvestments.github.io/investAPI/faq_marketdata/#_15). */ close?: | Quotation | undefined; /** Объём торгов в лотах. */ volume: number; /** Время свечи в часовом поясе UTC. */ time?: | Date | undefined; /** Признак завершённости свечи. **false** — свеча за текущие интервал ещё сформирована не полностью. */ isComplete: boolean; /** Тип источника свечи */ candleSourceType: CandleSource; } /** Запрос получения цен последних сделок. */ export interface GetLastPricesRequest { /** * Deprecated FIGI-идентификатор инструмента. Используйте `instrument_id`. * * @deprecated */ figi: string[]; /** Массив идентификаторов инструмента. Принимает значения `figi` или `instrument_uid`. */ instrumentId: string[]; /** Тип запрашиваемой последней цены. */ lastPriceType: LastPriceType; /** Статус запрашиваемых инструментов. [Возможные значения](#instrumentstatus). */ instrumentStatus?: InstrumentStatus | undefined; } /** Список цен последних сделок. */ export interface GetLastPricesResponse { /** Массив цен последних сделок. */ lastPrices: LastPrice[]; } /** Информация о цене последней сделки. */ export interface LastPrice { /** FIGI инструмента. */ figi: string; /** Цена последней сделки за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. [Подробнее про перевод цен в валюту](https://russianinvestments.github.io/investAPI/faq_marketdata/#_15). */ price?: | Quotation | undefined; /** Время получения последней цены в часовом поясе UTC по времени биржи. */ time?: | Date | undefined; /** UID инструмента. */ instrumentUid: string; /** Тип последней цены. */ lastPriceType: LastPriceType; } /** Запрос стакана. */ export interface GetOrderBookRequest { /** * Deprecated FIGI-идентификатор инструмента. Используйте `instrument_id`. * * @deprecated */ figi?: | string | undefined; /** Глубина стакана. */ depth: number; /** Идентификатор инструмента. Принимает значение `figi` или `instrument_uid`. */ instrumentId?: string | undefined; } /** Информация о стакане. */ export interface GetOrderBookResponse { /** FIGI-идентификатор инструмента. */ figi: string; /** Глубина стакана. */ depth: number; /** Множество пар значений на покупку. */ bids: Order[]; /** Множество пар значений на продажу. */ asks: Order[]; /** Цена последней сделки за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. [Подробнее про перевод цен в валюту](https://russianinvestments.github.io/investAPI/faq_marketdata/#_15). */ lastPrice?: | Quotation | undefined; /** Цена закрытия за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. [Подробнее про перевод цен в валюту](https://russianinvestments.github.io/investAPI/faq_marketdata/#_15). */ closePrice?: | Quotation | undefined; /** Верхний лимит цены за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. [Подробнее про перевод цен в валюту](https://russianinvestments.github.io/investAPI/faq_marketdata/#_15). */ limitUp?: | Quotation | undefined; /** Нижний лимит цены за 1 инструмент. Чтобы получить стоимость лота, нужно умножить на лотность инструмента. [Подробнее про перевод цен в валюту](https://russianinvestments.github.io/investAPI/faq_marketdata/#_15). */ limitDown?: | Quotation | undefined; /** Время получения цены последней сделки. */ lastPriceTs?: | Date | undefined; /** Время получения цены закрытия. */ closePriceTs?: | Date | undefined; /** Время формирования стакана на бирже. */ orderbookTs?: | Date | undefined; /** UID инструмента. */ instrumentUid: string; } /** Запрос получения торгового статуса. */ export interface GetTradingStatusRequest { /** * Deprecated FIGI-идентификатор инструмента. Используйте `instrument_id`. * * @deprecated */ figi?: | string | undefined; /** Идентификатор инструмента. Принимает значение `figi` или `instrument_uid`. */ instrumentId?: string | undefined; } /** Запрос получения торгового статуса. */ export interface GetTradingStatusesRequest { /** Идентификатор инструмента. Принимает значение `figi` или `instrument_uid`. */ instrumentId: string[]; } /** Информация о торговом статусе. */ export interface GetTradingStatusesResponse { /** Массив информации о торговых статусах. */ tradingStatuses: GetTradingStatusResponse[]; } /** Информация о торговом статусе. */ export interface GetTradingStatusResponse { /** FIGI-идентификатор инструмента. */ figi: string; /** Статус торговли инструментом. */ tradingStatus: SecurityTradingStatus; /** Признак доступности выставления лимитной заявки по инструменту. */ limitOrderAvailableFlag: boolean; /** Признак доступности выставления рыночной заявки по инструменту. */ marketOrderAvailableFlag: boolean; /** Признак доступности торгов через API. */ apiTradeAvailableFlag: boolean; /** UID инструмента. */ instrumentUid: string; /** Признак доступности завяки по лучшей цене. */ bestpriceOrderAvailableFlag: boolean; /** Признак доступности только заявки по лучшей цене. */ onlyBestPrice: boolean; } /** Запрос обезличенных сделок за последний час. */ export interface GetLastTradesRequest { /** * Deprecated FIGI-идентификатор инструмента. Используйте `instrument_id`. * * @deprecated */ figi?: | string | undefined; /** Начало запрашиваемого периода по UTC. */ from?: | Date | undefined; /** Окончание запрашиваемого периода по UTC. */ to?: | Date | undefined; /** Идентификатор инструмента. Принимает значение `figi` или `instrument_uid`. */ instrumentId?: | string | undefined; /** Тип источника сделок. По умолчанию TRADE_SOURCE_ALL - все сделки. */ tradeSource: TradeSourceType; } /** Обезличенных сделок за последний час. */ export interface GetLastTradesResponse { /** Массив сделок. */ trades: Trade[]; } /** Запрос активных подписок. Возвращает по одному сообщению на каждый тип активных подписок — `SubscribeLastPriceResponse`, `SubscribeInfoResponse`, `SubscribeTradesResponse`, `SubscribeOrderBookResponse`, `SubscribeCandlesResponse`. */ export interface GetMySubscriptions { } /** Запрос цен закрытия торговой сессии по инструментам. */ export interface GetClosePricesRequest { /** Массив по инструментам. */ instruments: InstrumentClosePriceRequest[]; /** Статус запрашиваемых инструментов. [Возможные значения](#instrumentstatus). */ instrumentStatus?: InstrumentStatus | undefined; } /** Запрос цен закрытия торговой сессии по инструменту. */ export interface InstrumentClosePriceRequest { /** Идентификатор инструмента. Принимает значение `figi` или `instrument_uid`. */ instrumentId: string; } /** Цены закрытия торговой сессии по инструментам. */ export interface GetClosePricesResponse { /** Массив по инструментам. */ closePrices: InstrumentClosePriceResponse[]; } /** Цена закрытия торговой сессии по инструменту. */ export interface InstrumentClosePriceResponse { /** FIGI инструмента. */ figi: string; /** UID инструмента. */ instrumentUid: string; /** Цена закрытия торговой сессии. */ price?: | Quotation | undefined; /** Цена последней сделки с вечерней сессии. Цена публикуется биржей по торговым дням и в нерабочие дни не обновляется. */ eveningSessionPrice?: | Quotation | undefined; /** Дата совершения торгов. */ time?: Date | undefined; } export interface GetTechAnalysisRequest { /** Тип технического индикатора. */ indicatorType: GetTechAnalysisRequest_IndicatorType; /** UID инструмента. */ instrumentUid: string; /** Начало запрашиваемого периода по UTC. */ from?: | Date | undefined; /** Окончание запрашиваемого периода по UTC. */ to?: | Date | undefined; /** Интервал, за который рассчитывается индикатор. */ interval: GetTechAnalysisRequest_IndicatorInterval; /** Тип цены, который используется при расчёте индикатора. */ typeOfPrice: GetTechAnalysisRequest_TypeOfPrice; /** Торговый период, за который рассчитывается и