tinkoff-invest-api
Version:
Node.js SDK for Tinkoff Invest API
1,432 lines (1,353 loc) • 242 kB
text/typescript
/* 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;
/** Торговый период, за который рассчитывается и