/* eslint-disable */
import Long from 'long';
import * as _m0 from 'protobufjs/minimal';
import {
SecurityTradingStatus,
RealExchange,
InstrumentType,
InstrumentStatus,
Quotation,
MoneyValue,
BrandData,
Page,
PageResponse,
instrumentStatusFromJSON,
instrumentStatusToJSON,
securityTradingStatusFromJSON,
realExchangeFromJSON,
securityTradingStatusToJSON,
realExchangeToJSON,
instrumentTypeFromJSON,
instrumentTypeToJSON,
} from './common';
import { Timestamp } from './google/protobuf/timestamp';
export const protobufPackage = 'tinkoff.public.invest.api.contract.v1';
/** Тип купонов. */
export enum CouponType {
/** COUPON_TYPE_UNSPECIFIED - Неопределенное значение. */
COUPON_TYPE_UNSPECIFIED = 0,
/** COUPON_TYPE_CONSTANT - Постоянный. */
COUPON_TYPE_CONSTANT = 1,
/** COUPON_TYPE_FLOATING - Плавающий. */
COUPON_TYPE_FLOATING = 2,
/** COUPON_TYPE_DISCOUNT - Дисконт. */
COUPON_TYPE_DISCOUNT = 3,
/** COUPON_TYPE_MORTGAGE - Ипотечный. */
COUPON_TYPE_MORTGAGE = 4,
/** COUPON_TYPE_FIX - Фиксированный. */
COUPON_TYPE_FIX = 5,
/** COUPON_TYPE_VARIABLE - Переменный. */
COUPON_TYPE_VARIABLE = 6,
/** COUPON_TYPE_OTHER - Прочее. */
COUPON_TYPE_OTHER = 7,
UNRECOGNIZED = -1,
}
export function couponTypeFromJSON(object: any): CouponType {
switch (object) {
case 0:
case 'COUPON_TYPE_UNSPECIFIED':
return CouponType.COUPON_TYPE_UNSPECIFIED;
case 1:
case 'COUPON_TYPE_CONSTANT':
return CouponType.COUPON_TYPE_CONSTANT;
case 2:
case 'COUPON_TYPE_FLOATING':
return CouponType.COUPON_TYPE_FLOATING;
case 3:
case 'COUPON_TYPE_DISCOUNT':
return CouponType.COUPON_TYPE_DISCOUNT;
case 4:
case 'COUPON_TYPE_MORTGAGE':
return CouponType.COUPON_TYPE_MORTGAGE;
case 5:
case 'COUPON_TYPE_FIX':
return CouponType.COUPON_TYPE_FIX;
case 6:
case 'COUPON_TYPE_VARIABLE':
return CouponType.COUPON_TYPE_VARIABLE;
case 7:
case 'COUPON_TYPE_OTHER':
return CouponType.COUPON_TYPE_OTHER;
case -1:
case 'UNRECOGNIZED':
default:
return CouponType.UNRECOGNIZED;
}
}
export function couponTypeToJSON(object: CouponType): string {
switch (object) {
case CouponType.COUPON_TYPE_UNSPECIFIED:
return 'COUPON_TYPE_UNSPECIFIED';
case CouponType.COUPON_TYPE_CONSTANT:
return 'COUPON_TYPE_CONSTANT';
case CouponType.COUPON_TYPE_FLOATING:
return 'COUPON_TYPE_FLOATING';
case CouponType.COUPON_TYPE_DISCOUNT:
return 'COUPON_TYPE_DISCOUNT';
case CouponType.COUPON_TYPE_MORTGAGE:
return 'COUPON_TYPE_MORTGAGE';
case CouponType.COUPON_TYPE_FIX:
return 'COUPON_TYPE_FIX';
case CouponType.COUPON_TYPE_VARIABLE:
return 'COUPON_TYPE_VARIABLE';
case CouponType.COUPON_TYPE_OTHER:
return 'COUPON_TYPE_OTHER';
default:
return 'UNKNOWN';
}
}
/** Тип опциона по направлению сделки. */
export enum OptionDirection {
/** OPTION_DIRECTION_UNSPECIFIED - Тип не определен. */
OPTION_DIRECTION_UNSPECIFIED = 0,
/** OPTION_DIRECTION_PUT - Опцион на продажу. */
OPTION_DIRECTION_PUT = 1,
/** OPTION_DIRECTION_CALL - Опцион на покупку. */
OPTION_DIRECTION_CALL = 2,
UNRECOGNIZED = -1,
}
export function optionDirectionFromJSON(object: any): OptionDirection {
switch (object) {
case 0:
case 'OPTION_DIRECTION_UNSPECIFIED':
return OptionDirection.OPTION_DIRECTION_UNSPECIFIED;
case 1:
case 'OPTION_DIRECTION_PUT':
return OptionDirection.OPTION_DIRECTION_PUT;
case 2:
case 'OPTION_DIRECTION_CALL':
return OptionDirection.OPTION_DIRECTION_CALL;
case -1:
case 'UNRECOGNIZED':
default:
return OptionDirection.UNRECOGNIZED;
}
}
export function optionDirectionToJSON(object: OptionDirection): string {
switch (object) {
case OptionDirection.OPTION_DIRECTION_UNSPECIFIED:
return 'OPTION_DIRECTION_UNSPECIFIED';
case OptionDirection.OPTION_DIRECTION_PUT:
return 'OPTION_DIRECTION_PUT';
case OptionDirection.OPTION_DIRECTION_CALL:
return 'OPTION_DIRECTION_CALL';
default:
return 'UNKNOWN';
}
}
/** Тип расчетов по опциону. */
export enum OptionPaymentType {
/** OPTION_PAYMENT_TYPE_UNSPECIFIED - Тип не определен. */
OPTION_PAYMENT_TYPE_UNSPECIFIED = 0,
/** OPTION_PAYMENT_TYPE_PREMIUM - Опционы с использованием премии в расчетах. */
OPTION_PAYMENT_TYPE_PREMIUM = 1,
/** OPTION_PAYMENT_TYPE_MARGINAL - Маржируемые опционы. */
OPTION_PAYMENT_TYPE_MARGINAL = 2,
UNRECOGNIZED = -1,
}
export function optionPaymentTypeFromJSON(object: any): OptionPaymentType {
switch (object) {
case 0:
case 'OPTION_PAYMENT_TYPE_UNSPECIFIED':
return OptionPaymentType.OPTION_PAYMENT_TYPE_UNSPECIFIED;
case 1:
case 'OPTION_PAYMENT_TYPE_PREMIUM':
return OptionPaymentType.OPTION_PAYMENT_TYPE_PREMIUM;
case 2:
case 'OPTION_PAYMENT_TYPE_MARGINAL':
return OptionPaymentType.OPTION_PAYMENT_TYPE_MARGINAL;
case -1:
case 'UNRECOGNIZED':
default:
return OptionPaymentType.UNRECOGNIZED;
}
}
export function optionPaymentTypeToJSON(object: OptionPaymentType): string {
switch (object) {
case OptionPaymentType.OPTION_PAYMENT_TYPE_UNSPECIFIED:
return 'OPTION_PAYMENT_TYPE_UNSPECIFIED';
case OptionPaymentType.OPTION_PAYMENT_TYPE_PREMIUM:
return 'OPTION_PAYMENT_TYPE_PREMIUM';
case OptionPaymentType.OPTION_PAYMENT_TYPE_MARGINAL:
return 'OPTION_PAYMENT_TYPE_MARGINAL';
default:
return 'UNKNOWN';
}
}
/** Тип опциона по стилю. */
export enum OptionStyle {
/** OPTION_STYLE_UNSPECIFIED - Тип не определен. */
OPTION_STYLE_UNSPECIFIED = 0,
/** OPTION_STYLE_AMERICAN - Американский опцион. */
OPTION_STYLE_AMERICAN = 1,
/** OPTION_STYLE_EUROPEAN - Европейский опцион. */
OPTION_STYLE_EUROPEAN = 2,
UNRECOGNIZED = -1,
}
export function optionStyleFromJSON(object: any): OptionStyle {
switch (object) {
case 0:
case 'OPTION_STYLE_UNSPECIFIED':
return OptionStyle.OPTION_STYLE_UNSPECIFIED;
case 1:
case 'OPTION_STYLE_AMERICAN':
return OptionStyle.OPTION_STYLE_AMERICAN;
case 2:
case 'OPTION_STYLE_EUROPEAN':
return OptionStyle.OPTION_STYLE_EUROPEAN;
case -1:
case 'UNRECOGNIZED':
default:
return OptionStyle.UNRECOGNIZED;
}
}
export function optionStyleToJSON(object: OptionStyle): string {
switch (object) {
case OptionStyle.OPTION_STYLE_UNSPECIFIED:
return 'OPTION_STYLE_UNSPECIFIED';
case OptionStyle.OPTION_STYLE_AMERICAN:
return 'OPTION_STYLE_AMERICAN';
case OptionStyle.OPTION_STYLE_EUROPEAN:
return 'OPTION_STYLE_EUROPEAN';
default:
return 'UNKNOWN';
}
}
/** Тип опциона по способу исполнения. */
export enum OptionSettlementType {
/** OPTION_EXECUTION_TYPE_UNSPECIFIED - Тип не определен. */
OPTION_EXECUTION_TYPE_UNSPECIFIED = 0,
/** OPTION_EXECUTION_TYPE_PHYSICAL_DELIVERY - Поставочный тип опциона. */
OPTION_EXECUTION_TYPE_PHYSICAL_DELIVERY = 1,
/** OPTION_EXECUTION_TYPE_CASH_SETTLEMENT - Расчетный тип опциона. */
OPTION_EXECUTION_TYPE_CASH_SETTLEMENT = 2,
UNRECOGNIZED = -1,
}
export function optionSettlementTypeFromJSON(object: any): OptionSettlementType {
switch (object) {
case 0:
case 'OPTION_EXECUTION_TYPE_UNSPECIFIED':
return OptionSettlementType.OPTION_EXECUTION_TYPE_UNSPECIFIED;
case 1:
case 'OPTION_EXECUTION_TYPE_PHYSICAL_DELIVERY':
return OptionSettlementType.OPTION_EXECUTION_TYPE_PHYSICAL_DELIVERY;
case 2:
case 'OPTION_EXECUTION_TYPE_CASH_SETTLEMENT':
return OptionSettlementType.OPTION_EXECUTION_TYPE_CASH_SETTLEMENT;
case -1:
case 'UNRECOGNIZED':
default:
return OptionSettlementType.UNRECOGNIZED;
}
}
export function optionSettlementTypeToJSON(object: OptionSettlementType): string {
switch (object) {
case OptionSettlementType.OPTION_EXECUTION_TYPE_UNSPECIFIED:
return 'OPTION_EXECUTION_TYPE_UNSPECIFIED';
case OptionSettlementType.OPTION_EXECUTION_TYPE_PHYSICAL_DELIVERY:
return 'OPTION_EXECUTION_TYPE_PHYSICAL_DELIVERY';
case OptionSettlementType.OPTION_EXECUTION_TYPE_CASH_SETTLEMENT:
return 'OPTION_EXECUTION_TYPE_CASH_SETTLEMENT';
default:
return 'UNKNOWN';
}
}
/** Тип идентификатора инструмента. [Подробнее об идентификации инструментов](/invest/intro/intro/faq_identification). */
export enum InstrumentIdType {
/** INSTRUMENT_ID_UNSPECIFIED - Значение не определено. */
INSTRUMENT_ID_UNSPECIFIED = 0,
/** INSTRUMENT_ID_TYPE_FIGI - FIGI. */
INSTRUMENT_ID_TYPE_FIGI = 1,
/** INSTRUMENT_ID_TYPE_TICKER - Ticker. */
INSTRUMENT_ID_TYPE_TICKER = 2,
/** INSTRUMENT_ID_TYPE_UID - Уникальный идентификатор. */
INSTRUMENT_ID_TYPE_UID = 3,
/** INSTRUMENT_ID_TYPE_POSITION_UID - Идентификатор позиции. */
INSTRUMENT_ID_TYPE_POSITION_UID = 4,
/** INSTRUMENT_ID_TYPE_ID - Универсальный тип идентификатора инструмента. */
INSTRUMENT_ID_TYPE_ID = 5,
UNRECOGNIZED = -1,
}
export function instrumentIdTypeFromJSON(object: any): InstrumentIdType {
switch (object) {
case 0:
case 'INSTRUMENT_ID_UNSPECIFIED':
return InstrumentIdType.INSTRUMENT_ID_UNSPECIFIED;
case 1:
case 'INSTRUMENT_ID_TYPE_FIGI':
return InstrumentIdType.INSTRUMENT_ID_TYPE_FIGI;
case 2:
case 'INSTRUMENT_ID_TYPE_TICKER':
return InstrumentIdType.INSTRUMENT_ID_TYPE_TICKER;
case 3:
case 'INSTRUMENT_ID_TYPE_UID':
return InstrumentIdType.INSTRUMENT_ID_TYPE_UID;
case 4:
case 'INSTRUMENT_ID_TYPE_POSITION_UID':
return InstrumentIdType.INSTRUMENT_ID_TYPE_POSITION_UID;
case 5:
case 'INSTRUMENT_ID_TYPE_ID':
return InstrumentIdType.INSTRUMENT_ID_TYPE_ID;
case -1:
case 'UNRECOGNIZED':
default:
return InstrumentIdType.UNRECOGNIZED;
}
}
export function instrumentIdTypeToJSON(object: InstrumentIdType): string {
switch (object) {
case InstrumentIdType.INSTRUMENT_ID_UNSPECIFIED:
return 'INSTRUMENT_ID_UNSPECIFIED';
case InstrumentIdType.INSTRUMENT_ID_TYPE_FIGI:
return 'INSTRUMENT_ID_TYPE_FIGI';
case InstrumentIdType.INSTRUMENT_ID_TYPE_TICKER:
return 'INSTRUMENT_ID_TYPE_TICKER';
case InstrumentIdType.INSTRUMENT_ID_TYPE_UID:
return 'INSTRUMENT_ID_TYPE_UID';
case InstrumentIdType.INSTRUMENT_ID_TYPE_POSITION_UID:
return 'INSTRUMENT_ID_TYPE_POSITION_UID';
case InstrumentIdType.INSTRUMENT_ID_TYPE_ID:
return 'INSTRUMENT_ID_TYPE_ID';
default:
return 'UNKNOWN';
}
}
/** Тип акций. */
export enum ShareType {
/** SHARE_TYPE_UNSPECIFIED - Значение не определено. */
SHARE_TYPE_UNSPECIFIED = 0,
/** SHARE_TYPE_COMMON - Обыкновенная. */
SHARE_TYPE_COMMON = 1,
/** SHARE_TYPE_PREFERRED - Привилегированная. */
SHARE_TYPE_PREFERRED = 2,
/** SHARE_TYPE_ADR - Американские депозитарные расписки. */
SHARE_TYPE_ADR = 3,
/** SHARE_TYPE_GDR - Глобальные депозитарные расписки. */
SHARE_TYPE_GDR = 4,
/** SHARE_TYPE_MLP - Товарищество с ограниченной ответственностью. */
SHARE_TYPE_MLP = 5,
/** SHARE_TYPE_NY_REG_SHRS - Акции из реестра Нью-Йорка. */
SHARE_TYPE_NY_REG_SHRS = 6,
/** SHARE_TYPE_CLOSED_END_FUND - Закрытый инвестиционный фонд. */
SHARE_TYPE_CLOSED_END_FUND = 7,
/** SHARE_TYPE_REIT - Траст недвижимости. */
SHARE_TYPE_REIT = 8,
UNRECOGNIZED = -1,
}
export function shareTypeFromJSON(object: any): ShareType {
switch (object) {
case 0:
case 'SHARE_TYPE_UNSPECIFIED':
return ShareType.SHARE_TYPE_UNSPECIFIED;
case 1:
case 'SHARE_TYPE_COMMON':
return ShareType.SHARE_TYPE_COMMON;
case 2:
case 'SHARE_TYPE_PREFERRED':
return ShareType.SHARE_TYPE_PREFERRED;
case 3:
case 'SHARE_TYPE_ADR':
return ShareType.SHARE_TYPE_ADR;
case 4:
case 'SHARE_TYPE_GDR':
return ShareType.SHARE_TYPE_GDR;
case 5:
case 'SHARE_TYPE_MLP':
return ShareType.SHARE_TYPE_MLP;
case 6:
case 'SHARE_TYPE_NY_REG_SHRS':
return ShareType.SHARE_TYPE_NY_REG_SHRS;
case 7:
case 'SHARE_TYPE_CLOSED_END_FUND':
return ShareType.SHARE_TYPE_CLOSED_END_FUND;
case 8:
case 'SHARE_TYPE_REIT':
return ShareType.SHARE_TYPE_REIT;
case -1:
case 'UNRECOGNIZED':
default:
return ShareType.UNRECOGNIZED;
}
}
export function shareTypeToJSON(object: ShareType): string {
switch (object) {
case ShareType.SHARE_TYPE_UNSPECIFIED:
return 'SHARE_TYPE_UNSPECIFIED';
case ShareType.SHARE_TYPE_COMMON:
return 'SHARE_TYPE_COMMON';
case ShareType.SHARE_TYPE_PREFERRED:
return 'SHARE_TYPE_PREFERRED';
case ShareType.SHARE_TYPE_ADR:
return 'SHARE_TYPE_ADR';
case ShareType.SHARE_TYPE_GDR:
return 'SHARE_TYPE_GDR';
case ShareType.SHARE_TYPE_MLP:
return 'SHARE_TYPE_MLP';
case ShareType.SHARE_TYPE_NY_REG_SHRS:
return 'SHARE_TYPE_NY_REG_SHRS';
case ShareType.SHARE_TYPE_CLOSED_END_FUND:
return 'SHARE_TYPE_CLOSED_END_FUND';
case ShareType.SHARE_TYPE_REIT:
return 'SHARE_TYPE_REIT';
default:
return 'UNKNOWN';
}
}
/** Тип актива. */
export enum AssetType {
/** ASSET_TYPE_UNSPECIFIED - Тип не определен. */
ASSET_TYPE_UNSPECIFIED = 0,
/** ASSET_TYPE_CURRENCY - Валюта. */
ASSET_TYPE_CURRENCY = 1,
/** ASSET_TYPE_COMMODITY - Товар. */
ASSET_TYPE_COMMODITY = 2,
/** ASSET_TYPE_INDEX - Индекс. */
ASSET_TYPE_INDEX = 3,
/** ASSET_TYPE_SECURITY - Ценная бумага. */
ASSET_TYPE_SECURITY = 4,
UNRECOGNIZED = -1,
}
export function assetTypeFromJSON(object: any): AssetType {
switch (object) {
case 0:
case 'ASSET_TYPE_UNSPECIFIED':
return AssetType.ASSET_TYPE_UNSPECIFIED;
case 1:
case 'ASSET_TYPE_CURRENCY':
return AssetType.ASSET_TYPE_CURRENCY;
case 2:
case 'ASSET_TYPE_COMMODITY':
return AssetType.ASSET_TYPE_COMMODITY;
case 3:
case 'ASSET_TYPE_INDEX':
return AssetType.ASSET_TYPE_INDEX;
case 4:
case 'ASSET_TYPE_SECURITY':
return AssetType.ASSET_TYPE_SECURITY;
case -1:
case 'UNRECOGNIZED':
default:
return AssetType.UNRECOGNIZED;
}
}
export function assetTypeToJSON(object: AssetType): string {
switch (object) {
case AssetType.ASSET_TYPE_UNSPECIFIED:
return 'ASSET_TYPE_UNSPECIFIED';
case AssetType.ASSET_TYPE_CURRENCY:
return 'ASSET_TYPE_CURRENCY';
case AssetType.ASSET_TYPE_COMMODITY:
return 'ASSET_TYPE_COMMODITY';
case AssetType.ASSET_TYPE_INDEX:
return 'ASSET_TYPE_INDEX';
case AssetType.ASSET_TYPE_SECURITY:
return 'ASSET_TYPE_SECURITY';
default:
return 'UNKNOWN';
}
}
/** Тип структурной ноты. */
export enum StructuredProductType {
/** SP_TYPE_UNSPECIFIED - Тип не определен. */
SP_TYPE_UNSPECIFIED = 0,
/** SP_TYPE_DELIVERABLE - Поставочный. */
SP_TYPE_DELIVERABLE = 1,
/** SP_TYPE_NON_DELIVERABLE - Беспоставочный. */
SP_TYPE_NON_DELIVERABLE = 2,
UNRECOGNIZED = -1,
}
export function structuredProductTypeFromJSON(object: any): StructuredProductType {
switch (object) {
case 0:
case 'SP_TYPE_UNSPECIFIED':
return StructuredProductType.SP_TYPE_UNSPECIFIED;
case 1:
case 'SP_TYPE_DELIVERABLE':
return StructuredProductType.SP_TYPE_DELIVERABLE;
case 2:
case 'SP_TYPE_NON_DELIVERABLE':
return StructuredProductType.SP_TYPE_NON_DELIVERABLE;
case -1:
case 'UNRECOGNIZED':
default:
return StructuredProductType.UNRECOGNIZED;
}
}
export function structuredProductTypeToJSON(object: StructuredProductType): string {
switch (object) {
case StructuredProductType.SP_TYPE_UNSPECIFIED:
return 'SP_TYPE_UNSPECIFIED';
case StructuredProductType.SP_TYPE_DELIVERABLE:
return 'SP_TYPE_DELIVERABLE';
case StructuredProductType.SP_TYPE_NON_DELIVERABLE:
return 'SP_TYPE_NON_DELIVERABLE';
default:
return 'UNKNOWN';
}
}
/** Тип действия со списком избранных инструментов. */
export enum EditFavoritesActionType {
/** EDIT_FAVORITES_ACTION_TYPE_UNSPECIFIED - Тип не определен. */
EDIT_FAVORITES_ACTION_TYPE_UNSPECIFIED = 0,
/** EDIT_FAVORITES_ACTION_TYPE_ADD - Добавить в список. */
EDIT_FAVORITES_ACTION_TYPE_ADD = 1,
/** EDIT_FAVORITES_ACTION_TYPE_DEL - Удалить из списка. */
EDIT_FAVORITES_ACTION_TYPE_DEL = 2,
UNRECOGNIZED = -1,
}
export function editFavoritesActionTypeFromJSON(object: any): EditFavoritesActionType {
switch (object) {
case 0:
case 'EDIT_FAVORITES_ACTION_TYPE_UNSPECIFIED':
return EditFavoritesActionType.EDIT_FAVORITES_ACTION_TYPE_UNSPECIFIED;
case 1:
case 'EDIT_FAVORITES_ACTION_TYPE_ADD':
return EditFavoritesActionType.EDIT_FAVORITES_ACTION_TYPE_ADD;
case 2:
case 'EDIT_FAVORITES_ACTION_TYPE_DEL':
return EditFavoritesActionType.EDIT_FAVORITES_ACTION_TYPE_DEL;
case -1:
case 'UNRECOGNIZED':
default:
return EditFavoritesActionType.UNRECOGNIZED;
}
}
export function editFavoritesActionTypeToJSON(object: EditFavoritesActionType): string {
switch (object) {
case EditFavoritesActionType.EDIT_FAVORITES_ACTION_TYPE_UNSPECIFIED:
return 'EDIT_FAVORITES_ACTION_TYPE_UNSPECIFIED';
case EditFavoritesActionType.EDIT_FAVORITES_ACTION_TYPE_ADD:
return 'EDIT_FAVORITES_ACTION_TYPE_ADD';
case EditFavoritesActionType.EDIT_FAVORITES_ACTION_TYPE_DEL:
return 'EDIT_FAVORITES_ACTION_TYPE_DEL';
default:
return 'UNKNOWN';
}
}
export enum Recommendation {
/** RECOMMENDATION_UNSPECIFIED - Не определено. */
RECOMMENDATION_UNSPECIFIED = 0,
/** RECOMMENDATION_BUY - Покупать. */
RECOMMENDATION_BUY = 1,
/** RECOMMENDATION_HOLD - Держать. */
RECOMMENDATION_HOLD = 2,
/** RECOMMENDATION_SELL - Продавать. */
RECOMMENDATION_SELL = 3,
UNRECOGNIZED = -1,
}
export function recommendationFromJSON(object: any): Recommendation {
switch (object) {
case 0:
case 'RECOMMENDATION_UNSPECIFIED':
return Recommendation.RECOMMENDATION_UNSPECIFIED;
case 1:
case 'RECOMMENDATION_BUY':
return Recommendation.RECOMMENDATION_BUY;
case 2:
case 'RECOMMENDATION_HOLD':
return Recommendation.RECOMMENDATION_HOLD;
case 3:
case 'RECOMMENDATION_SELL':
return Recommendation.RECOMMENDATION_SELL;
case -1:
case 'UNRECOGNIZED':
default:
return Recommendation.UNRECOGNIZED;
}
}
export function recommendationToJSON(object: Recommendation): string {
switch (object) {
case Recommendation.RECOMMENDATION_UNSPECIFIED:
return 'RECOMMENDATION_UNSPECIFIED';
case Recommendation.RECOMMENDATION_BUY:
return 'RECOMMENDATION_BUY';
case Recommendation.RECOMMENDATION_HOLD:
return 'RECOMMENDATION_HOLD';
case Recommendation.RECOMMENDATION_SELL:
return 'RECOMMENDATION_SELL';
default:
return 'UNKNOWN';
}
}
/** Уровень риска облигации. */
export enum RiskLevel {
/** RISK_LEVEL_UNSPECIFIED - Не указан. */
RISK_LEVEL_UNSPECIFIED = 0,
/** RISK_LEVEL_LOW - Низкий уровень риска. */
RISK_LEVEL_LOW = 1,
/** RISK_LEVEL_MODERATE - Средний уровень риска. */
RISK_LEVEL_MODERATE = 2,
/** RISK_LEVEL_HIGH - Высокий уровень риска. */
RISK_LEVEL_HIGH = 3,
UNRECOGNIZED = -1,
}
export function riskLevelFromJSON(object: any): RiskLevel {
switch (object) {
case 0:
case 'RISK_LEVEL_UNSPECIFIED':
return RiskLevel.RISK_LEVEL_UNSPECIFIED;
case 1:
case 'RISK_LEVEL_LOW':
return RiskLevel.RISK_LEVEL_LOW;
case 2:
case 'RISK_LEVEL_MODERATE':
return RiskLevel.RISK_LEVEL_MODERATE;
case 3:
case 'RISK_LEVEL_HIGH':
return RiskLevel.RISK_LEVEL_HIGH;
case -1:
case 'UNRECOGNIZED':
default:
return RiskLevel.UNRECOGNIZED;
}
}
export function riskLevelToJSON(object: RiskLevel): string {
switch (object) {
case RiskLevel.RISK_LEVEL_UNSPECIFIED:
return 'RISK_LEVEL_UNSPECIFIED';
case RiskLevel.RISK_LEVEL_LOW:
return 'RISK_LEVEL_LOW';
case RiskLevel.RISK_LEVEL_MODERATE:
return 'RISK_LEVEL_MODERATE';
case RiskLevel.RISK_LEVEL_HIGH:
return 'RISK_LEVEL_HIGH';
default:
return 'UNKNOWN';
}
}
export enum BondType {
/** BOND_TYPE_UNSPECIFIED - Тип облигации не определен. */
BOND_TYPE_UNSPECIFIED = 0,
/** BOND_TYPE_REPLACED - Замещающая облигация. */
BOND_TYPE_REPLACED = 1,
UNRECOGNIZED = -1,
}
export function bondTypeFromJSON(object: any): BondType {
switch (object) {
case 0:
case 'BOND_TYPE_UNSPECIFIED':
return BondType.BOND_TYPE_UNSPECIFIED;
case 1:
case 'BOND_TYPE_REPLACED':
return BondType.BOND_TYPE_REPLACED;
case -1:
case 'UNRECOGNIZED':
default:
return BondType.UNRECOGNIZED;
}
}
export function bondTypeToJSON(object: BondType): string {
switch (object) {
case BondType.BOND_TYPE_UNSPECIFIED:
return 'BOND_TYPE_UNSPECIFIED';
case BondType.BOND_TYPE_REPLACED:
return 'BOND_TYPE_REPLACED';
default:
return 'UNKNOWN';
}
}
/** Площадка торговли. */
export enum InstrumentExchangeType {
/** INSTRUMENT_EXCHANGE_UNSPECIFIED - Площадка торговли не определена. */
INSTRUMENT_EXCHANGE_UNSPECIFIED = 0,
/** INSTRUMENT_EXCHANGE_DEALER - Бумага, торгуемая у дилера. */
INSTRUMENT_EXCHANGE_DEALER = 1,
UNRECOGNIZED = -1,
}
export function instrumentExchangeTypeFromJSON(object: any): InstrumentExchangeType {
switch (object) {
case 0:
case 'INSTRUMENT_EXCHANGE_UNSPECIFIED':
return InstrumentExchangeType.INSTRUMENT_EXCHANGE_UNSPECIFIED;
case 1:
case 'INSTRUMENT_EXCHANGE_DEALER':
return InstrumentExchangeType.INSTRUMENT_EXCHANGE_DEALER;
case -1:
case 'UNRECOGNIZED':
default:
return InstrumentExchangeType.UNRECOGNIZED;
}
}
export function instrumentExchangeTypeToJSON(object: InstrumentExchangeType): string {
switch (object) {
case InstrumentExchangeType.INSTRUMENT_EXCHANGE_UNSPECIFIED:
return 'INSTRUMENT_EXCHANGE_UNSPECIFIED';
case InstrumentExchangeType.INSTRUMENT_EXCHANGE_DEALER:
return 'INSTRUMENT_EXCHANGE_DEALER';
default:
return 'UNKNOWN';
}
}
/** Запрос расписания торгов. */
export interface TradingSchedulesRequest {
/** Наименование биржи или расчетного календаря.
Если не передается, возвращается информация по всем доступным торговым площадкам. */
exchange?: string | undefined;
/** Начало периода по UTC. */
from?: Date | undefined;
/** Окончание периода по UTC. */
to?: Date | undefined;
}
/** Список торговых площадок. */
export interface TradingSchedulesResponse {
/** Список торговых площадок и режимов торгов. */
exchanges: TradingSchedule[];
}
/** Данные по торговой площадке. */
export interface TradingSchedule {
/** Наименование торговой площадки. */
exchange: string;
/** Массив с торговыми и неторговыми днями. */
days: TradingDay[];
}
/** Информация о времени торгов. */
export interface TradingDay {
/** Дата. */
date: Date | undefined;
/** Признак торгового дня на бирже. */
isTradingDay: boolean;
/** Время начала торгов по UTC. */
startTime: Date | undefined;
/** Время окончания торгов по UTC. */
endTime: Date | undefined;
/** Время начала аукциона открытия по UTC. */
openingAuctionStartTime: Date | undefined;
/** Время окончания аукциона закрытия по UTC. */
closingAuctionEndTime: Date | undefined;
/** Время начала аукциона открытия вечерней сессии по UTC. */
eveningOpeningAuctionStartTime: Date | undefined;
/** Время начала вечерней сессии по UTC. */
eveningStartTime: Date | undefined;
/** Время окончания вечерней сессии по UTC. */
eveningEndTime: Date | undefined;
/** Время начала основного клиринга по UTC. */
clearingStartTime: Date | undefined;
/** Время окончания основного клиринга по UTC. */
clearingEndTime: Date | undefined;
/** Время начала премаркета по UTC. */
premarketStartTime: Date | undefined;
/** Время окончания премаркета по UTC. */
premarketEndTime: Date | undefined;
/** Время начала аукциона закрытия по UTC. */
closingAuctionStartTime: Date | undefined;
/** Время окончания аукциона открытия по UTC. */
openingAuctionEndTime: Date | undefined;
/** Торговые интервалы. */
intervals: TradingInterval[];
}
/** Запрос получения инструмента по идентификатору. */
export interface InstrumentRequest {
/** Тип идентификатора инструмента. Возможные значения — `figi`, `ticker`. [Подробнее об идентификации инструментов](/invest/intro/intro/faq_identification). */
idType: InstrumentIdType;
/** Идентификатор `class_code`. Обязательный, если `id_type = ticker`. */
classCode?: string | undefined;
/** Идентификатор запрашиваемого инструмента. */
id: string;
}
/** Запрос получения инструментов. */
export interface InstrumentsRequest {
/** Статус запрашиваемых инструментов. [Возможные значения](#instrumentstatus). */
instrumentStatus?: InstrumentStatus | undefined;
/** Тип площадки торговли. [Возможные значения](#instrumentexchangetype). */
instrumentExchange?: InstrumentExchangeType | undefined;
}
/** Параметры фильтрации опционов. */
export interface FilterOptionsRequest {
/** Идентификатор базового актива опциона. Обязательный параметр. */
basicAssetUid?: string | undefined;
/** Идентификатор позиции базового актива опциона. */
basicAssetPositionUid?: string | undefined;
/** Идентификатор базового инструмента, принимает значение принимает значения figi, instrument_uid или ticker+"_"+classCode. */
basicInstrumentId?: string | undefined;
}
/** Информация об облигации. */
export interface BondResponse {
/** Информация об облигации. */
instrument: Bond | undefined;
}
/** Список облигаций. */
export interface BondsResponse {
/** Массив облигаций. */
instruments: Bond[];
}
/** Запрос купонов по облигации. */
export interface GetBondCouponsRequest {
/**
* FIGI-идентификатор инструмента.
*
* @deprecated
*/
figi: string;
/** Начало запрашиваемого периода по UTC. Фильтрация по `coupon_date` — дата выплаты купона. */
from?: Date | undefined;
/** Окончание запрашиваемого периода по UTC. Фильтрация по `coupon_date` — дата выплаты купона. */
to?: Date | undefined;
/** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */
instrumentId: string;
}
/** Купоны по облигации. */
export interface GetBondCouponsResponse {
events: Coupon[];
}
/** События по облигации. */
export interface GetBondEventsRequest {
/** Начало запрашиваемого периода по UTC. */
from?: Date | undefined;
/** Окончание запрашиваемого периода по UTC. */
to?: Date | undefined;
/** Идентификатор инструмента — `figi` или `instrument_uid`. */
instrumentId: string;
/** Тип события */
type: GetBondEventsRequest_EventType;
}
export enum GetBondEventsRequest_EventType {
/** EVENT_TYPE_UNSPECIFIED - Неопределенное значение. */
EVENT_TYPE_UNSPECIFIED = 0,
/** EVENT_TYPE_CPN - Купон. */
EVENT_TYPE_CPN = 1,
/** EVENT_TYPE_CALL - Опцион (оферта). */
EVENT_TYPE_CALL = 2,
/** EVENT_TYPE_MTY - Погашение. */
EVENT_TYPE_MTY = 3,
/** EVENT_TYPE_CONV - Конвертация. */
EVENT_TYPE_CONV = 4,
UNRECOGNIZED = -1,
}
export function getBondEventsRequest_EventTypeFromJSON(object: any): GetBondEventsRequest_EventType {
switch (object) {
case 0:
case 'EVENT_TYPE_UNSPECIFIED':
return GetBondEventsRequest_EventType.EVENT_TYPE_UNSPECIFIED;
case 1:
case 'EVENT_TYPE_CPN':
return GetBondEventsRequest_EventType.EVENT_TYPE_CPN;
case 2:
case 'EVENT_TYPE_CALL':
return GetBondEventsRequest_EventType.EVENT_TYPE_CALL;
case 3:
case 'EVENT_TYPE_MTY':
return GetBondEventsRequest_EventType.EVENT_TYPE_MTY;
case 4:
case 'EVENT_TYPE_CONV':
return GetBondEventsRequest_EventType.EVENT_TYPE_CONV;
case -1:
case 'UNRECOGNIZED':
default:
return GetBondEventsRequest_EventType.UNRECOGNIZED;
}
}
export function getBondEventsRequest_EventTypeToJSON(object: GetBondEventsRequest_EventType): string {
switch (object) {
case GetBondEventsRequest_EventType.EVENT_TYPE_UNSPECIFIED:
return 'EVENT_TYPE_UNSPECIFIED';
case GetBondEventsRequest_EventType.EVENT_TYPE_CPN:
return 'EVENT_TYPE_CPN';
case GetBondEventsRequest_EventType.EVENT_TYPE_CALL:
return 'EVENT_TYPE_CALL';
case GetBondEventsRequest_EventType.EVENT_TYPE_MTY:
return 'EVENT_TYPE_MTY';
case GetBondEventsRequest_EventType.EVENT_TYPE_CONV:
return 'EVENT_TYPE_CONV';
default:
return 'UNKNOWN';
}
}
/** Объект передачи информации о событии облигации. */
export interface GetBondEventsResponse {
events: GetBondEventsResponse_BondEvent[];
}
export interface GetBondEventsResponse_BondEvent {
/** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */
instrumentId: string;
/** Номер события для данного типа события. */
eventNumber: number;
/** Дата события. */
eventDate: Date | undefined;
/** Тип события. */
eventType: GetBondEventsRequest_EventType;
/** Полное количество бумаг, задействованных в событии. */
eventTotalVol: Quotation | undefined;
/** Дата фиксации владельцев для участия в событии. */
fixDate: Date | undefined;
/** Дата определения даты или факта события. */
rateDate: Date | undefined;
/** Дата дефолта, если применимо. */
defaultDate: Date | undefined;
/** Дата реального исполнения обязательства. */
realPayDate: Date | undefined;
/** Дата выплаты. */
payDate: Date | undefined;
/** Выплата на одну облигацию. */
payOneBond: MoneyValue | undefined;
/** Выплаты на все бумаги, задействованные в событии. */
moneyFlowVal: MoneyValue | undefined;
/** Признак исполнения. */
execution: string;
/** Тип операции. */
operationType: string;
/** Стоимость операции — ставка купона, доля номинала, цена выкупа или коэффициент конвертации. */
value: Quotation | undefined;
/** Примечание. */
note: string;
/** ID выпуска бумаг, в который произведена конвертация (для конвертаций). */
convertToFinToolId: string;
/** Начало купонного периода. */
couponStartDate: Date | undefined;
/** Окончание купонного периода. */
couponEndDate: Date | undefined;
/** Купонный период. */
couponPeriod: number;
/** Ставка купона, процентов годовых. */
couponInterestRate: Quotation | undefined;
}
/** Объект передачи информации о купоне облигации. */
export interface Coupon {
/** FIGI-идентификатор инструмента. */
figi: string;
/** Дата выплаты купона. */
couponDate: Date | undefined;
/** Номер купона. */
couponNumber: number;
/** Дата фиксации реестра для выплаты купона — опционально. */
fixDate: Date | undefined;
/** Выплата на одну облигацию. */
payOneBond: MoneyValue | undefined;
/** Тип купона. */
couponType: CouponType;
/** Начало купонного периода. */
couponStartDate: Date | undefined;
/** Окончание купонного периода. */
couponEndDate: Date | undefined;
/** Купонный период в днях. */
couponPeriod: number;
}
/** Данные по валюте. */
export interface CurrencyResponse {
/** Информация о валюте. */
instrument: Currency | undefined;
}
/** Данные по валютам. */
export interface CurrenciesResponse {
/** Массив валют. */
instruments: Currency[];
}
/** Данные по фонду. */
export interface EtfResponse {
/** Информация о фонде. */
instrument: Etf | undefined;
}
/** Данные по фондам. */
export interface EtfsResponse {
/** Массив фондов. */
instruments: Etf[];
}
/** Данные по фьючерсу. */
export interface FutureResponse {
/** Информация о фьючерсу. */
instrument: Future | undefined;
}
/** Данные по фьючерсам. */
export interface FuturesResponse {
/** Массив фьючерсов. */
instruments: Future[];
}
/** Данные по опциону. */
export interface OptionResponse {
/** Информация по опциону. */
instrument: Option | undefined;
}
/** Данные по опционам. */
export interface OptionsResponse {
/** Массив данных по опциону. */
instruments: Option[];
}
/** Опцион. */
export interface Option {
/** Уникальный идентификатор инструмента. */
uid: string;
/** Уникальный идентификатор позиции. */
positionUid: string;
/** Тикер инструмента. */
ticker: string;
/** Класс-код. */
classCode: string;
/** Уникальный идентификатор позиции основного инструмента. */
basicAssetPositionUid: string;
/** Текущий режим торгов инструмента. */
tradingStatus: SecurityTradingStatus;
/** Реальная площадка исполнения расчетов (биржа). */
realExchange: RealExchange;
/** Направление опциона. */
direction: OptionDirection;
/** Тип расчетов по опциону. */
paymentType: OptionPaymentType;
/** Стиль опциона. */
style: OptionStyle;
/** Способ исполнения опциона. */
settlementType: OptionSettlementType;
/** Название инструмента. */
name: string;
/** Валюта. */
currency: string;
/** Валюта, в которой оценивается контракт. */
settlementCurrency: string;
/** Тип актива. */
assetType: string;
/** Основной актив. */
basicAsset: string;
/** Tорговая площадка (секция биржи). */
exchange: string;
/** Код страны рисков. */
countryOfRisk: string;
/** Наименование страны рисков. */
countryOfRiskName: string;
/** Сектор экономики. */
sector: string;
/** Информация о бренде. */
brand: BrandData | undefined;
/** Количество бумаг в лоте. */
lot: number;
/** Размер основного актива. */
basicAssetSize: Quotation | undefined;
/**
* Коэффициент ставки риска длинной позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР).
*
* @deprecated
*/
klong: Quotation | undefined;
/**
* Коэффициент ставки риска короткой позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР).
*
* @deprecated
*/
kshort: Quotation | undefined;
/** Ставка риска начальной маржи для КСУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlong: Quotation | undefined;
/** Ставка риска начальной маржи для КСУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshort: Quotation | undefined;
/** Ставка риска начальной маржи для КПУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlongMin: Quotation | undefined;
/** Ставка риска начальной маржи для КПУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshortMin: Quotation | undefined;
/** Минимальный шаг цены. */
minPriceIncrement: Quotation | undefined;
/** Цена страйка. */
strikePrice: MoneyValue | undefined;
/** Ставка риска в лонг с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlongClient: Quotation | undefined;
/** Ставка риска в шорт с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshortClient: Quotation | undefined;
/** Дата истечения срока в формате UTC. */
expirationDate: Date | undefined;
/** Дата начала обращения контракта в формате UTC. */
firstTradeDate: Date | undefined;
/** Дата исполнения в формате UTC. */
lastTradeDate: Date | undefined;
/** Дата первой минутной свечи в формате UTC. */
first1minCandleDate: Date | undefined;
/** Дата первой дневной свечи в формате UTC. */
first1dayCandleDate: Date | undefined;
/** Признак доступности для операций шорт. */
shortEnabledFlag: boolean;
/** Возможность покупки или продажи на ИИС. */
forIisFlag: boolean;
/** Флаг, используемый ранее для определения внебиржевых инструментов. На данный момент не используется для торгуемых через API инструментов. Может использоваться как фильтр для операций, совершавшихся некоторое время назад на ОТС площадке. */
otcFlag: boolean;
/** Признак доступности для покупки. */
buyAvailableFlag: boolean;
/** Признак доступности для продажи. */
sellAvailableFlag: boolean;
/** Флаг, отображающий доступность торговли инструментом только для квалифицированных инвесторов. */
forQualInvestorFlag: boolean;
/** Флаг, отображающий доступность торговли инструментом по выходным. */
weekendFlag: boolean;
/** Флаг заблокированного ТКС. */
blockedTcaFlag: boolean;
/** Возможность торговать инструментом через API. */
apiTradeAvailableFlag: boolean;
/** Тесты, которые необходимо пройти клиенту, чтобы совершать сделки по инструменту. */
requiredTests: string[];
}
/** Данные по акции. */
export interface ShareResponse {
/** Информация об акции. */
instrument: Share | undefined;
}
/** Данные по акциям. */
export interface SharesResponse {
/** Массив акций. */
instruments: Share[];
}
/** Данные по структурной ноте. */
export interface StructuredNoteResponse {
/** Информация о структурной ноте. */
instrument: StructuredNote | undefined;
}
/** Данные по структурным нотам. */
export interface StructuredNotesResponse {
/** Массив структурных нот. */
instruments: StructuredNote[];
}
/** Объект передачи информации об облигации. */
export interface Bond {
/** FIGI-идентификатор инструмента. */
figi: string;
/** Тикер инструмента. */
ticker: string;
/** Класс-код (секция торгов). */
classCode: string;
/** ISIN-идентификатор инструмента. */
isin: string;
/** Лотность инструмента. Возможно совершение операций только на количества ценной бумаги, кратные параметру `lot`. [Подробнее](./glossary#lot). */
lot: number;
/** Валюта расчетов. */
currency: string;
/**
* Коэффициент ставки риска длинной позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР).
*
* @deprecated
*/
klong: Quotation | undefined;
/**
* Коэффициент ставки риска короткой позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР).
*
* @deprecated
*/
kshort: Quotation | undefined;
/** Ставка риска начальной маржи для КСУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlong: Quotation | undefined;
/** Ставка риска начальной маржи для КСУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshort: Quotation | undefined;
/** Ставка риска начальной маржи для КПУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlongMin: Quotation | undefined;
/** Ставка риска начальной маржи для КПУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshortMin: Quotation | undefined;
/** Признак доступности для операций в шорт. */
shortEnabledFlag: boolean;
/** Название инструмента. */
name: string;
/** Tорговая площадка (секция биржи). */
exchange: string;
/** Количество выплат по купонам в год. */
couponQuantityPerYear: number;
/** Дата погашения облигации по UTC. */
maturityDate: Date | undefined;
/** Номинал облигации. */
nominal: MoneyValue | undefined;
/** Первоначальный номинал облигации. */
initialNominal: MoneyValue | undefined;
/** Дата выпуска облигации по UTC. */
stateRegDate: Date | undefined;
/** Дата размещения по UTC. */
placementDate: Date | undefined;
/** Цена размещения. */
placementPrice: MoneyValue | undefined;
/** Значение НКД (накопленного купонного дохода) на дату. */
aciValue: MoneyValue | undefined;
/** Код страны риска — то есть страны, в которой компания ведет основной бизнес. */
countryOfRisk: string;
/** Наименование страны риска — то есть страны, в которой компания ведет основной бизнес. */
countryOfRiskName: string;
/** Сектор экономики. */
sector: string;
/** Форма выпуска. Возможные значения:
**documentary** — документарная;
**non_documentary** — бездокументарная. */
issueKind: string;
/** Размер выпуска. */
issueSize: number;
/** Плановый размер выпуска. */
issueSizePlan: number;
/** Текущий режим торгов инструмента. */
tradingStatus: SecurityTradingStatus;
/** Флаг, используемый ранее для определения внебиржевых инструментов. На данный момент не используется для торгуемых через API инструментов. Может использоваться как фильтр для операций, совершавшихся некоторое время назад на ОТС площадке. */
otcFlag: boolean;
/** Признак доступности для покупки. */
buyAvailableFlag: boolean;
/** Признак доступности для продажи. */
sellAvailableFlag: boolean;
/** Признак облигации с плавающим купоном. */
floatingCouponFlag: boolean;
/** Признак бессрочной облигации. */
perpetualFlag: boolean;
/** Признак облигации с амортизацией долга. */
amortizationFlag: boolean;
/** Шаг цены. */
minPriceIncrement: Quotation | undefined;
/** Параметр указывает на возможность торговать инструментом через API. */
apiTradeAvailableFlag: boolean;
/** Уникальный идентификатор инструмента. */
uid: string;
/** Реальная площадка исполнения расчетов. (биржа) */
realExchange: RealExchange;
/** Уникальный идентификатор позиции инструмента. */
positionUid: string;
/** Уникальный идентификатор актива. */
assetUid: string;
/** Тесты, которые необходимо пройти клиенту, чтобы совершать сделки по инструменту. */
requiredTests: string[];
/** Признак доступности для ИИС. */
forIisFlag: boolean;
/** Флаг, отображающий доступность торговли инструментом только для квалифицированных инвесторов. */
forQualInvestorFlag: boolean;
/** Флаг, отображающий доступность торговли инструментом по выходным. */
weekendFlag: boolean;
/** Флаг заблокированного ТКС. */
blockedTcaFlag: boolean;
/** Признак субординированной облигации. */
subordinatedFlag: boolean;
/** Флаг достаточной ликвидности. */
liquidityFlag: boolean;
/** Дата первой минутной свечи. */
first1minCandleDate: Date | undefined;
/** Дата первой дневной свечи. */
first1dayCandleDate: Date | undefined;
/** Уровень риска. */
riskLevel: RiskLevel;
/** Информация о бренде. */
brand: BrandData | undefined;
/** Тип облигации. */
bondType: BondType;
/** Дата погашения облигации. */
callDate: Date | undefined;
/** Ставка риска в лонг с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlongClient: Quotation | undefined;
/** Ставка риска в шорт с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshortClient: Quotation | undefined;
}
/** Объект передачи информации о валюте. */
export interface Currency {
/** FIGI-идентификатор инструмента. */
figi: string;
/** Тикер инструмента. */
ticker: string;
/** Класс-код (секция торгов). */
classCode: string;
/** ISIN-идентификатор инструмента. */
isin: string;
/** Лотность инструмента. Возможно совершение операций только на количества ценной бумаги, кратные параметру `lot`. [Подробнее](./glossary#lot). */
lot: number;
/** Валюта расчетов. */
currency: string;
/**
* Коэффициент ставки риска длинной позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР).
*
* @deprecated
*/
klong: Quotation | undefined;
/**
* Коэффициент ставки риска короткой позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР).
*
* @deprecated
*/
kshort: Quotation | undefined;
/** Ставка риска начальной маржи для КСУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlong: Quotation | undefined;
/** Ставка риска начальной маржи для КСУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshort: Quotation | undefined;
/** Ставка риска начальной маржи для КПУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlongMin: Quotation | undefined;
/** Ставка риска начальной маржи для КПУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshortMin: Quotation | undefined;
/** Признак доступности для операций в шорт. */
shortEnabledFlag: boolean;
/** Название инструмента. */
name: string;
/** Tорговая площадка (секция биржи). */
exchange: string;
/** Номинал. */
nominal: MoneyValue | undefined;
/** Код страны риска — то есть страны, в которой компания ведет основной бизнес. */
countryOfRisk: string;
/** Наименование страны риска — то есть страны, в которой компания ведет основной бизнес. */
countryOfRiskName: string;
/** Текущий режим торгов инструмента. */
tradingStatus: SecurityTradingStatus;
/** Флаг, используемый ранее для определения внебиржевых инструментов. На данный момент не используется для торгуемых через API инструментов. Может использоваться как фильтр для операций, совершавшихся некоторое время назад на ОТС площадке. */
otcFlag: boolean;
/** Признак доступности для покупки. */
buyAvailableFlag: boolean;
/** Признак доступности для продажи. */
sellAvailableFlag: boolean;
/** Строковый ISO-код валюты. */
isoCurrencyName: string;
/** Шаг цены. */
minPriceIncrement: Quotation | undefined;
/** Параметр указывает на возможность торговать инструментом через API. */
apiTradeAvailableFlag: boolean;
/** Уникальный идентификатор инструмента. */
uid: string;
/** Реальная площадка исполнения расчетов (биржа). */
realExchange: RealExchange;
/** Уникальный идентификатор позиции инструмента. */
positionUid: string;
/** Тесты, которые необходимо пройти клиенту, чтобы совершать сделки по инструменту. */
requiredTests: string[];
/** Уникальный идентификатор актива. */
assetUid: string;
/** Признак доступности для ИИС. */
forIisFlag: boolean;
/** Флаг, отображающий доступность торговли инструментом только для квалифицированных инвесторов. */
forQualInvestorFlag: boolean;
/** Флаг, отображающий доступность торговли инструментом по выходным. */
weekendFlag: boolean;
/** Флаг заблокированного ТКС. */
blockedTcaFlag: boolean;
/** Дата первой минутной свечи. */
first1minCandleDate: Date | undefined;
/** Дата первой дневной свечи. */
first1dayCandleDate: Date | undefined;
/** Информация о бренде. */
brand: BrandData | undefined;
/** Ставка риска в лонг с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlongClient: Quotation | undefined;
/** Ставка риска в шорт с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshortClient: Quotation | undefined;
}
/** Объект передачи информации об инвестиционном фонде. */
export interface Etf {
/** FIGI-идентификатор инструмента. */
figi: string;
/** Тикер инструмента. */
ticker: string;
/** Класс-код (секция торгов). */
classCode: string;
/** ISIN-идентификатор инструмента. */
isin: string;
/** Лотность инструмента. Возможно совершение операций только на количества ценной бумаги, кратные параметру `lot`. [Подробнее](./glossary#lot). */
lot: number;
/** Валюта расчетов. */
currency: string;
/**
* Коэффициент ставки риска длинной позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР).
*
* @deprecated
*/
klong: Quotation | undefined;
/**
* Коэффициент ставки риска короткой позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР).
*
* @deprecated
*/
kshort: Quotation | undefined;
/** Ставка риска начальной маржи для КСУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlong: Quotation | undefined;
/** Ставка риска начальной маржи для КСУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshort: Quotation | undefined;
/** Ставка риска начальной маржи для КПУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlongMin: Quotation | undefined;
/** Ставка риска начальной маржи для КПУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshortMin: Quotation | undefined;
/** Признак доступности для операций в шорт. */
shortEnabledFlag: boolean;
/** Название инструмента. */
name: string;
/** Tорговая площадка (секция биржи). */
exchange: string;
/** Размер фиксированной комиссии фонда. */
fixedCommission: Quotation | undefined;
/** Возможные значения:
**equity** — акции;
**fixed_income** — облигации;
**mixed_allocation** — смешанный;
**money_market** — денежный рынок;
**real_estate** — недвижимость;
**commodity** — товары;
**specialty** — специальный;
**private_equity** — private equity;
**alternative_investment** — альтернативные инвестиции. */
focusType: string;
/** Дата выпуска по UTC. */
releasedDate: Date | undefined;
/** Количество паев фонда в обращении. */
numShares: Quotation | undefined;
/** Код страны риска — то есть страны, в которой компания ведет основной бизнес. */
countryOfRisk: string;
/** Наименование страны риска — то есть страны, в которой компания ведет основной бизнес. */
countryOfRiskName: string;
/** Сектор экономики. */
sector: string;
/** Частота ребалансировки. */
rebalancingFreq: string;
/** Текущий режим торгов инструмента. */
tradingStatus: SecurityTradingStatus;
/** Флаг, используемый ранее для определения внебиржевых инструментов. На данный момент не используется для торгуемых через API инструментов. Может использоваться как фильтр для операций, совершавшихся некоторое время назад на ОТС площадке. */
otcFlag: boolean;
/** Признак доступности для покупки. */
buyAvailableFlag: boolean;
/** Признак доступности для продажи. */
sellAvailableFlag: boolean;
/** Шаг цены. */
minPriceIncrement: Quotation | undefined;
/** Параметр указывает на возможность торговать инструментом через API. */
apiTradeAvailableFlag: boolean;
/** Уникальный идентификатор инструмента. */
uid: string;
/** Реальная площадка исполнения расчетов (биржа). */
realExchange: RealExchange;
/** Уникальный идентификатор позиции инструмента. */
positionUid: string;
/** Уникальный идентификатор актива. */
assetUid: string;
/** Тип площадки торговли. */
instrumentExchange: InstrumentExchangeType;
/** Тесты, которые необходимо пройти клиенту, чтобы совершать сделки по инструменту. */
requiredTests: string[];
/** Признак доступности для ИИС. */
forIisFlag: boolean;
/** Флаг, отображающий доступность торговли инструментом только для квалифицированных инвесторов. */
forQualInvestorFlag: boolean;
/** ФлагФлаг, отображающий доступность торговли инструментом по выходным. */
weekendFlag: boolean;
/** Флаг заблокированного ТКС. */
blockedTcaFlag: boolean;
/** Флаг достаточной ликвидности. */
liquidityFlag: boolean;
/** Дата первой минутной свечи. */
first1minCandleDate: Date | undefined;
/** Дата первой дневной свечи. */
first1dayCandleDate: Date | undefined;
/** Информация о бренде. */
brand: BrandData | undefined;
/** Ставка риска в лонг с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlongClient: Quotation | undefined;
/** Ставка риска в шорт с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshortClient: Quotation | undefined;
}
/** Объект передачи информации о фьючерсе. */
export interface Future {
/** FIGI-идентификатор инструмента. */
figi: string;
/** Тикер инструмента. */
ticker: string;
/** Класс-код (секция торгов). */
classCode: string;
/** Лотность инструмента. Возможно совершение операций только на количества ценной бумаги, кратные параметру `lot`. [Подробнее](./glossary#lot). */
lot: number;
/** Валюта расчетов. */
currency: string;
/**
* Коэффициент ставки риска длинной позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР).
*
* @deprecated
*/
klong: Quotation | undefined;
/**
* Коэффициент ставки риска короткой позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР).
*
* @deprecated
*/
kshort: Quotation | undefined;
/** Ставка риска начальной маржи для КСУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlong: Quotation | undefined;
/** Ставка риска начальной маржи для КСУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshort: Quotation | undefined;
/** Ставка риска начальной маржи для КПУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlongMin: Quotation | undefined;
/** Ставка риска начальной маржи для КПУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshortMin: Quotation | undefined;
/** Признак доступности для операций шорт. */
shortEnabledFlag: boolean;
/** Название инструмента. */
name: string;
/** Tорговая площадка (секция биржи). */
exchange: string;
/** Дата начала обращения контракта по UTC. */
firstTradeDate: Date | undefined;
/** Дата по UTC, до которой возможно проведение операций с фьючерсом. */
lastTradeDate: Date | undefined;
/** Тип фьючерса. Возможные значения:
**physical_delivery** — физические поставки;
**cash_settlement** — денежный эквивалент. */
futuresType: string;
/** Тип актива. Возможные значения:
**commodity** — товар;
**currency** — валюта;
**security** — ценная бумага;
**index** — индекс. */
assetType: string;
/** Основной актив. */
basicAsset: string;
/** Размер основного актива. */
basicAssetSize: Quotation | undefined;
/** Код страны риска — то есть страны, в которой компания ведет основной бизнес. */
countryOfRisk: string;
/** Наименование страны риска — то есть страны, в которой компания ведет основной бизнес. */
countryOfRiskName: string;
/** Сектор экономики. */
sector: string;
/** Дата истечения срока в часов поясе UTC. */
expirationDate: Date | undefined;
/** Текущий режим торгов инструмента. */
tradingStatus: SecurityTradingStatus;
/** Флаг, используемый ранее для определения внебиржевых инструментов. На данный момент не используется для торгуемых через API инструментов. Может использоваться как фильтр для операций, совершавшихся некоторое время назад на ОТС площадке. */
otcFlag: boolean;
/** Признак доступности для покупки. */
buyAvailableFlag: boolean;
/** Признак доступности для продажи. */
sellAvailableFlag: boolean;
/** Шаг цены. */
minPriceIncrement: Quotation | undefined;
/** Параметр указывает на возможность торговать инструментом через API. */
apiTradeAvailableFlag: boolean;
/** Уникальный идентификатор инструмента. */
uid: string;
/** Реальная площадка исполнения расчетов (биржа). */
realExchange: RealExchange;
/** Уникальный идентификатор позиции инструмента. */
positionUid: string;
/** Уникальный идентификатор позиции основного инструмента. */
basicAssetPositionUid: string;
/** Тесты, которые необходимо пройти клиенту, чтобы совершать сделки по инструменту. */
requiredTests: string[];
/** Признак доступности для ИИС. */
forIisFlag: boolean;
/** Флаг, отображающий доступность торговли инструментом только для квалифицированных инвесторов. */
forQualInvestorFlag: boolean;
/** Флаг, отображающий доступность торговли инструментом по выходным. */
weekendFlag: boolean;
/** Флаг заблокированного ТКС. */
blockedTcaFlag: boolean;
/** Дата первой минутной свечи. */
first1minCandleDate: Date | undefined;
/** Дата первой дневной свечи. */
first1dayCandleDate: Date | undefined;
/** Гарантийное обеспечение при покупке. */
initialMarginOnBuy: MoneyValue | undefined;
/** Гарантийное обеспечение при продаже. */
initialMarginOnSell: MoneyValue | undefined;
/** Стоимость шага цены. */
minPriceIncrementAmount: Quotation | undefined;
/** Информация о бренде. */
brand: BrandData | undefined;
/** Ставка риска в лонг с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlongClient: Quotation | undefined;
/** Ставка риска в шорт с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshortClient: Quotation | undefined;
}
/** Объект передачи информации об акции. */
export interface Share {
/** FIGI-идентификатор инструмента. */
figi: string;
/** Тикер инструмента. */
ticker: string;
/** Класс-код (секция торгов). */
classCode: string;
/** ISIN-идентификатор инструмента. */
isin: string;
/** Лотность инструмента. Возможно совершение операций только на количества ценной бумаги, кратные параметру `lot`. [Подробнее](./glossary#lot) */
lot: number;
/** Валюта расчетов. */
currency: string;
/**
* Коэффициент ставки риска длинной позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР).
*
* @deprecated
*/
klong: Quotation | undefined;
/**
* Коэффициент ставки риска короткой позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР).
*
* @deprecated
*/
kshort: Quotation | undefined;
/** Ставка риска начальной маржи для КСУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlong: Quotation | undefined;
/** Ставка риска начальной маржи для КСУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshort: Quotation | undefined;
/** Ставка риска начальной маржи для КПУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlongMin: Quotation | undefined;
/** Ставка риска начальной маржи для КПУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshortMin: Quotation | undefined;
/** Признак доступности для операций в шорт. */
shortEnabledFlag: boolean;
/** Название инструмента. */
name: string;
/** Tорговая площадка (секция биржи). */
exchange: string;
/** Дата IPO акции по UTC. */
ipoDate: Date | undefined;
/** Размер выпуска. */
issueSize: number;
/** Код страны риска — то есть страны, в которой компания ведет основной бизнес. */
countryOfRisk: string;
/** Наименование страны риска — то есть страны, в которой компания ведет основной бизнес. */
countryOfRiskName: string;
/** Сектор экономики. */
sector: string;
/** Плановый размер выпуска. */
issueSizePlan: number;
/** Номинал. */
nominal: MoneyValue | undefined;
/** Текущий режим торгов инструмента. */
tradingStatus: SecurityTradingStatus;
/** Флаг, используемый ранее для определения внебиржевых инструментов. На данный момент не используется для торгуемых через API инструментов. Может использоваться как фильтр для операций, совершавшихся некоторое время назад на ОТС площадке. */
otcFlag: boolean;
/** Признак доступности для покупки. */
buyAvailableFlag: boolean;
/** Признак доступности для продажи. */
sellAvailableFlag: boolean;
/** Признак наличия дивидендной доходности. */
divYieldFlag: boolean;
/** Тип акции. Возможные значения — `[ShareType](./instruments#sharetype)`. */
shareType: ShareType;
/** Шаг цены. */
minPriceIncrement: Quotation | undefined;
/** Возможность торговать инструментом через API. */
apiTradeAvailableFlag: boolean;
/** Уникальный идентификатор инструмента. */
uid: string;
/** Реальная площадка исполнения расчетов (биржа). */
realExchange: RealExchange;
/** Уникальный идентификатор позиции инструмента. */
positionUid: string;
/** Уникальный идентификатор актива. */
assetUid: string;
/** Тип площадки торговли. */
instrumentExchange: InstrumentExchangeType;
/** Тесты, которые необходимо пройти клиенту, чтобы совершать сделки по инструменту. */
requiredTests: string[];
/** Признак доступности для ИИС. */
forIisFlag: boolean;
/** Флаг, отображающий доступность торговли инструментом только для квалифицированных инвесторов. */
forQualInvestorFlag: boolean;
/** Флаг, отображающий доступность торговли инструментом по выходным. */
weekendFlag: boolean;
/** Флаг заблокированного ТКС. */
blockedTcaFlag: boolean;
/** Флаг достаточной ликвидности. */
liquidityFlag: boolean;
/** Дата первой минутной свечи. */
first1minCandleDate: Date | undefined;
/** Дата первой дневной свечи. */
first1dayCandleDate: Date | undefined;
/** Информация о бренде. */
brand: BrandData | undefined;
/** Ставка риска в лонг с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlongClient: Quotation | undefined;
/** Ставка риска в шорт с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshortClient: Quotation | undefined;
}
/** Объект передачи информации о структурной ноте. */
export interface StructuredNote {
/** Уникальный идентификатор инструмента. */
uid: string;
/** FIGI-идентификатор инструмента. */
figi: string;
/** Тикер инструмента. */
ticker: string;
/** Класс-код (секция торгов). */
classCode: string;
/** ISIN-идентификатор инструмента. */
isin: string;
/** Название инструмента. */
name: string;
/** Уникальный идентификатор актива. */
assetUid: string;
/** Уникальный идентификатор позиции. */
positionUid: string;
/** Шаг цены. */
minPriceIncrement: Quotation | undefined;
/** Лотность инструмента. */
lot: number;
/** Номинал. */
nominal: MoneyValue | undefined;
/** Валюта расчетов. */
currency: string;
/** Дата погашения облигации в формате UTC. */
maturityDate: Date | undefined;
/** Дата размещения в формате UTC. */
placementDate: Date | undefined;
/** Форма выпуска. */
issueKind: string;
/** Размер выпуска. */
issueSize: number;
/** Плановый размер выпуска. */
issueSizePlan: number;
/** Ставка риска клиента по инструменту лонг. */
dlongClient: Quotation | undefined;
/** Ставка риска клиента по инструменту шорт. */
dshortClient: Quotation | undefined;
/** Признак доступности для операций в шорт. */
shortEnabledFlag: boolean;
/** Торговая площадка (секция биржи). */
exchange: string;
/** Текущий режим торгов инструмента. */
tradingStatus: SecurityTradingStatus;
/** Признак доступности торгов по бумаге через API. */
apiTradeAvailableFlag: boolean;
/** Признак доступности для покупки. */
buyAvailableFlag: boolean;
/** Признак доступности для продажи. */
sellAvailableFlag: boolean;
/** Признак доступности выставления лимитной заявки по инструменту. */
limitOrderAvailableFlag: boolean;
/** Признак доступности выставления рыночной заявки по инструменту. */
marketOrderAvailableFlag: boolean;
/** Признак доступности выставления bestprice заявки по инструменту. */
bestpriceOrderAvailableFlag: boolean;
/** Флаг отображающий доступность торговли инструментом по выходным. */
weekendFlag: boolean;
/** Флаг достаточной ликвидности. */
liquidityFlag: boolean;
/** Возможность покупки/продажи на ИИС. */
forIisFlag: boolean;
/** Флаг отображающий доступность торговли инструментом только для квалифицированных инвесторов. */
forQualInvestorFlag: boolean;
/** Признак ФИ, включенного в ломбардный список. */
pawnshopListFlag: boolean;
/** Реальная площадка исполнения расчётов. */
realExchange: RealExchange;
/** Дата первой минутной свечи. */
first1minCandleDate: Date | undefined;
/** Дата первой дневной свечи. */
first1dayCandleDate: Date | undefined;
/** Название заемщика. */
borrowName: string;
/** Тип структурной ноты. */
type: string;
/** Стратегия портфеля. */
logicPortfolio: StructuredNote_LogicPortfolio;
/** Тип базового актива. */
assetType: AssetType;
/** Базовые активы, входящие в ноту. */
basicAssets: StructuredNote_BasicAsset[];
/** Барьер сохранности (в процентах). */
safetyBarrier: Quotation | undefined;
/** Базис расчета НКД. */
couponPeriodBase: string;
/** Принцип наблюдений. */
observationPrinciple: StructuredNote_ObservationPrinciple;
/** Частота наблюдений. */
observationFrequency: string;
/** Дата фиксации цен базовых активов. */
initialPriceFixingDate: Date | undefined;
/** Доходность по ноте в годовом выражении. */
yield: StructuredNote_Yield[];
/** Признак сохранения купонов. */
couponSavingFlag: boolean;
/** Сектор экономики. */
sector: string;
/** Код страны рисков. */
countryOfRisk: string;
/** Наименование страны рисков. */
countryOfRiskName: string;
/** Имя файла логотипа эмитента. */
logoName: string;
/** Тесты, которые необходимо пройти клиенту, чтобы совершать покупки по бумаге. */
requiredTests: string[];
}
/** Стратегия портфеля. */
export enum StructuredNote_LogicPortfolio {
/** LOGIC_PORTFOLIO_UNSPECIFIED - Стратегия портфеля не определена. */
LOGIC_PORTFOLIO_UNSPECIFIED = 0,
/** LOGIC_PORTFOLIO_VOLATILITY - Волатильность. */
LOGIC_PORTFOLIO_VOLATILITY = 1,
/** LOGIC_PORTFOLIO_CORRELATION - Корреляция. */
LOGIC_PORTFOLIO_CORRELATION = 2,
UNRECOGNIZED = -1,
}
export function structuredNote_LogicPortfolioFromJSON(object: any): StructuredNote_LogicPortfolio {
switch (object) {
case 0:
case 'LOGIC_PORTFOLIO_UNSPECIFIED':
return StructuredNote_LogicPortfolio.LOGIC_PORTFOLIO_UNSPECIFIED;
case 1:
case 'LOGIC_PORTFOLIO_VOLATILITY':
return StructuredNote_LogicPortfolio.LOGIC_PORTFOLIO_VOLATILITY;
case 2:
case 'LOGIC_PORTFOLIO_CORRELATION':
return StructuredNote_LogicPortfolio.LOGIC_PORTFOLIO_CORRELATION;
case -1:
case 'UNRECOGNIZED':
default:
return StructuredNote_LogicPortfolio.UNRECOGNIZED;
}
}
export function structuredNote_LogicPortfolioToJSON(object: StructuredNote_LogicPortfolio): string {
switch (object) {
case StructuredNote_LogicPortfolio.LOGIC_PORTFOLIO_UNSPECIFIED:
return 'LOGIC_PORTFOLIO_UNSPECIFIED';
case StructuredNote_LogicPortfolio.LOGIC_PORTFOLIO_VOLATILITY:
return 'LOGIC_PORTFOLIO_VOLATILITY';
case StructuredNote_LogicPortfolio.LOGIC_PORTFOLIO_CORRELATION:
return 'LOGIC_PORTFOLIO_CORRELATION';
default:
return 'UNKNOWN';
}
}
/** Принцип наблюдений. */
export enum StructuredNote_ObservationPrinciple {
/** OBSERVATION_PRINCIPLE_UNSPECIFIED - Принцип наблюдений не определен. */
OBSERVATION_PRINCIPLE_UNSPECIFIED = 0,
/** OBSERVATION_PRINCIPLE_WORST_BASIC_ASSET - По худшему базовому активу. */
OBSERVATION_PRINCIPLE_WORST_BASIC_ASSET = 1,
/** OBSERVATION_PRINCIPLE_BEST_BASIC_ASSET - По лучшему базовому активу. */
OBSERVATION_PRINCIPLE_BEST_BASIC_ASSET = 2,
/** OBSERVATION_PRINCIPLE_AVERAGE_OF_BASIC_ASSETS - Среднее значение по базовым активам. */
OBSERVATION_PRINCIPLE_AVERAGE_OF_BASIC_ASSETS = 3,
/** OBSERVATION_PRINCIPLE_SINGLE_BASIC_ASSET_PERFORMANCE - Динамика актива (только если у ноты один базовый актив). */
OBSERVATION_PRINCIPLE_SINGLE_BASIC_ASSET_PERFORMANCE = 4,
UNRECOGNIZED = -1,
}
export function structuredNote_ObservationPrincipleFromJSON(object: any): StructuredNote_ObservationPrinciple {
switch (object) {
case 0:
case 'OBSERVATION_PRINCIPLE_UNSPECIFIED':
return StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_UNSPECIFIED;
case 1:
case 'OBSERVATION_PRINCIPLE_WORST_BASIC_ASSET':
return StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_WORST_BASIC_ASSET;
case 2:
case 'OBSERVATION_PRINCIPLE_BEST_BASIC_ASSET':
return StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_BEST_BASIC_ASSET;
case 3:
case 'OBSERVATION_PRINCIPLE_AVERAGE_OF_BASIC_ASSETS':
return StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_AVERAGE_OF_BASIC_ASSETS;
case 4:
case 'OBSERVATION_PRINCIPLE_SINGLE_BASIC_ASSET_PERFORMANCE':
return StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_SINGLE_BASIC_ASSET_PERFORMANCE;
case -1:
case 'UNRECOGNIZED':
default:
return StructuredNote_ObservationPrinciple.UNRECOGNIZED;
}
}
export function structuredNote_ObservationPrincipleToJSON(object: StructuredNote_ObservationPrinciple): string {
switch (object) {
case StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_UNSPECIFIED:
return 'OBSERVATION_PRINCIPLE_UNSPECIFIED';
case StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_WORST_BASIC_ASSET:
return 'OBSERVATION_PRINCIPLE_WORST_BASIC_ASSET';
case StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_BEST_BASIC_ASSET:
return 'OBSERVATION_PRINCIPLE_BEST_BASIC_ASSET';
case StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_AVERAGE_OF_BASIC_ASSETS:
return 'OBSERVATION_PRINCIPLE_AVERAGE_OF_BASIC_ASSETS';
case StructuredNote_ObservationPrinciple.OBSERVATION_PRINCIPLE_SINGLE_BASIC_ASSET_PERFORMANCE:
return 'OBSERVATION_PRINCIPLE_SINGLE_BASIC_ASSET_PERFORMANCE';
default:
return 'UNKNOWN';
}
}
/** Тип доходности. */
export enum StructuredNote_YieldType {
/** YIELD_TYPE_UNSPECIFIED - Тип доходности не определен. */
YIELD_TYPE_UNSPECIFIED = 0,
/** YIELD_TYPE_GUARANTED_COUPON - Гарантированный купон. */
YIELD_TYPE_GUARANTED_COUPON = 1,
/** YIELD_TYPE_CONDITIONAL_COUPON - Условный купон. */
YIELD_TYPE_CONDITIONAL_COUPON = 2,
/** YIELD_TYPE_PARTICIPATION - Участие в росте. */
YIELD_TYPE_PARTICIPATION = 3,
UNRECOGNIZED = -1,
}
export function structuredNote_YieldTypeFromJSON(object: any): StructuredNote_YieldType {
switch (object) {
case 0:
case 'YIELD_TYPE_UNSPECIFIED':
return StructuredNote_YieldType.YIELD_TYPE_UNSPECIFIED;
case 1:
case 'YIELD_TYPE_GUARANTED_COUPON':
return StructuredNote_YieldType.YIELD_TYPE_GUARANTED_COUPON;
case 2:
case 'YIELD_TYPE_CONDITIONAL_COUPON':
return StructuredNote_YieldType.YIELD_TYPE_CONDITIONAL_COUPON;
case 3:
case 'YIELD_TYPE_PARTICIPATION':
return StructuredNote_YieldType.YIELD_TYPE_PARTICIPATION;
case -1:
case 'UNRECOGNIZED':
default:
return StructuredNote_YieldType.UNRECOGNIZED;
}
}
export function structuredNote_YieldTypeToJSON(object: StructuredNote_YieldType): string {
switch (object) {
case StructuredNote_YieldType.YIELD_TYPE_UNSPECIFIED:
return 'YIELD_TYPE_UNSPECIFIED';
case StructuredNote_YieldType.YIELD_TYPE_GUARANTED_COUPON:
return 'YIELD_TYPE_GUARANTED_COUPON';
case StructuredNote_YieldType.YIELD_TYPE_CONDITIONAL_COUPON:
return 'YIELD_TYPE_CONDITIONAL_COUPON';
case StructuredNote_YieldType.YIELD_TYPE_PARTICIPATION:
return 'YIELD_TYPE_PARTICIPATION';
default:
return 'UNKNOWN';
}
}
/** Базовый актив. */
export interface StructuredNote_BasicAsset {
/** Уникальный идентификатор базового актива. */
uid: string;
/** Тип базового актива. */
type: AssetType;
/** Начальная цена базового актива. */
initialPrice: Quotation | undefined;
}
/** Доходность. */
export interface StructuredNote_Yield {
/** Тип доходности. */
type: StructuredNote_YieldType;
/** Значение доходности. */
value: Quotation | undefined;
}
/** Запрос НКД по облигации. */
export interface GetAccruedInterestsRequest {
/**
* FIGI-идентификатор инструмента.
*
* @deprecated
*/
figi: string;
/** Начало запрашиваемого периода по UTC. */
from: Date | undefined;
/** Окончание запрашиваемого периода по UTC. */
to: Date | undefined;
/** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */
instrumentId: string;
}
/** НКД облигации. */
export interface GetAccruedInterestsResponse {
/** Массив операций начисления купонов. */
accruedInterests: AccruedInterest[];
}
/** Операция начисления купонов. */
export interface AccruedInterest {
/** Дата и время выплаты по UTC. */
date: Date | undefined;
/** Величина выплаты. */
value: Quotation | undefined;
/** Величина выплаты в процентах от номинала. */
valuePercent: Quotation | undefined;
/** Номинал облигации. */
nominal: Quotation | undefined;
}
/** Запрос информации о фьючерсе */
export interface GetFuturesMarginRequest {
/**
* Идентификатор инструмента.
*
* @deprecated
*/
figi: string;
/** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */
instrumentId: string;
}
/** Данные по фьючерсу */
export interface GetFuturesMarginResponse {
/** Гарантийное обеспечение при покупке. */
initialMarginOnBuy: MoneyValue | undefined;
/** Гарантийное обеспечение при продаже. */
initialMarginOnSell: MoneyValue | undefined;
/** Шаг цены. */
minPriceIncrement: Quotation | undefined;
/** Стоимость шага цены. */
minPriceIncrementAmount: Quotation | undefined;
}
/** Данные по инструменту. */
export interface InstrumentResponse {
/** Основная информация об инструменте. */
instrument: Instrument | undefined;
}
/** Объект передачи основной информации об инструменте. */
export interface Instrument {
/** FIGI-идентификатор инструмента. */
figi: string;
/** Тикер инструмента. */
ticker: string;
/** Класс-код инструмента. */
classCode: string;
/** ISIN-идентификатор инструмента. */
isin: string;
/** Лотность инструмента. Возможно совершение операций только на количества ценной бумаги, кратные параметру `lot`. [Подробнее](./glossary#lot). */
lot: number;
/** Валюта расчетов. */
currency: string;
/**
* Коэффициент ставки риска длинной позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР).
*
* @deprecated
*/
klong: Quotation | undefined;
/**
* Коэффициент ставки риска короткой позиции по клиенту. 2 – клиент со стандартным уровнем риска (КСУР); 1 – клиент с повышенным уровнем риска (КПУР).
*
* @deprecated
*/
kshort: Quotation | undefined;
/** Ставка риска начальной маржи для КСУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlong: Quotation | undefined;
/** Ставка риска начальной маржи для КСУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshort: Quotation | undefined;
/** Ставка риска начальной маржи для КПУР лонг. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlongMin: Quotation | undefined;
/** Ставка риска начальной маржи для КПУР шорт. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshortMin: Quotation | undefined;
/** Признак доступности для операций в шорт. */
shortEnabledFlag: boolean;
/** Название инструмента. */
name: string;
/** Tорговая площадка (секция биржи). */
exchange: string;
/** Код страны риска — то есть страны, в которой компания ведет основной бизнес. */
countryOfRisk: string;
/** Наименование страны риска — то есть страны, в которой компания ведет основной бизнес. */
countryOfRiskName: string;
/** Тип инструмента. */
instrumentType: string;
/** Текущий режим торгов инструмента. */
tradingStatus: SecurityTradingStatus;
/** Флаг, используемый ранее для определения внебиржевых инструментов. На данный момент не используется для торгуемых через API инструментов. Может использоваться как фильтр для операций, совершавшихся некоторое время назад на ОТС площадке. */
otcFlag: boolean;
/** Признак доступности для покупки. */
buyAvailableFlag: boolean;
/** Признак доступности для продажи. */
sellAvailableFlag: boolean;
/** Шаг цены. */
minPriceIncrement: Quotation | undefined;
/** Параметр указывает на возможность торговать инструментом через API. */
apiTradeAvailableFlag: boolean;
/** Уникальный идентификатор инструмента. */
uid: string;
/** Реальная площадка исполнения расчетов (биржа). */
realExchange: RealExchange;
/** Уникальный идентификатор позиции инструмента. */
positionUid: string;
/** Уникальный идентификатор актива. */
assetUid: string;
/** Тесты, которые необходимо пройти клиенту, чтобы совершать сделки по инструменту. */
requiredTests: string[];
/** Признак доступности для ИИС. */
forIisFlag: boolean;
/** Флаг, отображающий доступность торговли инструментом только для квалифицированных инвесторов. */
forQualInvestorFlag: boolean;
/** Флаг, отображающий доступность торговли инструментом по выходным. */
weekendFlag: boolean;
/** Флаг заблокированного ТКС. */
blockedTcaFlag: boolean;
/** Тип инструмента. */
instrumentKind: InstrumentType;
/** Дата первой минутной свечи. */
first1minCandleDate: Date | undefined;
/** Дата первой дневной свечи. */
first1dayCandleDate: Date | undefined;
/** Информация о бренде. */
brand: BrandData | undefined;
/** Ставка риска в лонг с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dlongClient: Quotation | undefined;
/** Ставка риска в шорт с учетом текущего уровня риска портфеля клиента. [Подробнее про ставки риска](https://www.tbank.ru/invest/help/brokerage/account/margin/about/#q5). */
dshortClient: Quotation | undefined;
}
/** Запрос дивидендов. */
export interface GetDividendsRequest {
/**
* FIGI-идентификатор инструмента.
*
* @deprecated
*/
figi: string;
/** Начало запрашиваемого периода по UTC. Фильтрация происходит по параметру `record_date` — дата фиксации реестра. */
from?: Date | undefined;
/** Окончание запрашиваемого периода по UTC. Фильтрация происходит по параметру `record_date` — дата фиксации реестра. */
to?: Date | undefined;
/** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */
instrumentId: string;
}
/** Дивиденды. */
export interface GetDividendsResponse {
dividends: Dividend[];
}
/** Информация о выплате. */
export interface Dividend {
/** Величина дивиденда на 1 ценную бумагу (включая валюту). */
dividendNet: MoneyValue | undefined;
/** Дата фактических выплат по UTC. */
paymentDate: Date | undefined;
/** Дата объявления дивидендов по UTC. */
declaredDate: Date | undefined;
/** Последний день (включительно) покупки для получения выплаты по UTC. */
lastBuyDate: Date | undefined;
/** Тип выплаты. Возможные значения: `Regular Cash` – регулярные выплаты, `Cancelled` – выплата отменена, `Daily Accrual` – ежедневное начисление, `Return of Capital` – возврат капитала, прочие типы выплат. */
dividendType: string;
/** Дата фиксации реестра по UTC. */
recordDate: Date | undefined;
/** Регулярность выплаты. Возможные значения: `Annual` – ежегодная, `Semi-Anl` – каждые полгода, прочие типы выплат. */
regularity: string;
/** Цена закрытия инструмента на момент `ex_dividend_date`. */
closePrice: MoneyValue | undefined;
/** Величина доходности. */
yieldValue: Quotation | undefined;
/** Дата и время создания записи по UTC. */
createdAt: Date | undefined;
}
/** Запрос актива по идентификатору. */
export interface AssetRequest {
/** UID-идентификатор актива. */
id: string;
}
/** Данные по активу. */
export interface AssetResponse {
/** Актив. */
asset: AssetFull | undefined;
}
/** Запрос списка активов. */
export interface AssetsRequest {
instrumentType?: InstrumentType | undefined;
/** Статус запрашиваемых инструментов. [Возможные значения](#instrumentstatus). */
instrumentStatus?: InstrumentStatus | undefined;
}
/** Список активов. */
export interface AssetsResponse {
/** Активы. */
assets: Asset[];
}
export interface AssetFull {
/** Уникальный идентификатор актива. */
uid: string;
/** Тип актива. */
type: AssetType;
/** Наименование актива. */
name: string;
/** Короткое наименование актива. */
nameBrief: string;
/** Описание актива. */
description: string;
/** Дата и время удаления актива. */
deletedAt: Date | undefined;
/** Тестирование клиентов. */
requiredTests: string[];
/** Валюта. Обязательно и заполняется только для `type = ASSET_TYPE_CURRENCY`. */
currency: AssetCurrency | undefined;
/** Ценная бумага. Обязательно и заполняется только для `type = ASSET_TYPE_SECURITY`. */
security: AssetSecurity | undefined;
/** Номер государственной регистрации. */
gosRegCode: string;
/** Код CFI. */
cfi: string;
/** Код НРД инструмента. */
codeNsd: string;
/** Статус актива. */
status: string;
/** Бренд. */
brand: Brand | undefined;
/** Дата и время последнего обновления записи. */
updatedAt: Date | undefined;
/** Код типа ц.б. по классификации Банка России. */
brCode: string;
/** Наименование кода типа ц.б. по классификации Банка России. */
brCodeName: string;
/** Массив идентификаторов инструментов. */
instruments: AssetInstrument[];
}
/** Информация об активе. */
export interface Asset {
/** Уникальный идентификатор актива. */
uid: string;
/** Тип актива. */
type: AssetType;
/** Наименование актива. */
name: string;
/** Массив идентификаторов инструментов. */
instruments: AssetInstrument[];
}
/** Валюта. */
export interface AssetCurrency {
/** ISO-код валюты. */
baseCurrency: string;
}
/** Ценная бумага. */
export interface AssetSecurity {
/** ISIN-идентификатор ценной бумаги. */
isin: string;
/** Тип ценной бумаги. */
type: string;
/** Тип инструмента. */
instrumentKind: InstrumentType;
/** Акция. Заполняется только для акций — тип актива `asset.type = ASSET_TYPE_SECURITY` и `security.type = share`. */
share: AssetShare | undefined;
/** Облигация. Заполняется только для облигаций — тип актива `asset.type = ASSET_TYPE_SECURITY` и `security.type = bond`. */
bond: AssetBond | undefined;
/** Структурная нота. Заполняется только для структурных продуктов — тип актива `asset.type = ASSET_TYPE_SECURITY` и `security.type = sp`. */
sp: AssetStructuredProduct | undefined;
/** Фонд. Заполняется только для фондов — тип актива `asset.type = ASSET_TYPE_SECURITY` и `security.type = etf`. */
etf: AssetEtf | undefined;
/** Клиринговый сертификат участия. Заполняется только для клиринговых сертификатов — тип актива `asset.type = ASSET_TYPE_SECURITY` и security.type = `clearing_certificate`. */
clearingCertificate: AssetClearingCertificate | undefined;
}
/** Акция. */
export interface AssetShare {
/** Тип акции. */
type: ShareType;
/** Объем выпуска (шт.). */
issueSize: Quotation | undefined;
/** Номинал. */
nominal: Quotation | undefined;
/** Валюта номинала. */
nominalCurrency: string;
/** Индекс (Bloomberg). */
primaryIndex: string;
/** Ставка дивиденда (для привилегированных акций). */
dividendRate: Quotation | undefined;
/** Тип привилегированных акций. */
preferredShareType: string;
/** Дата IPO. */
ipoDate: Date | undefined;
/** Дата регистрации. */
registryDate: Date | undefined;
/** Признак наличия дивидендной доходности. */
divYieldFlag: boolean;
/** Форма выпуска ФИ. */
issueKind: string;
/** Дата размещения акции. */
placementDate: Date | undefined;
/** ISIN базового актива. */
represIsin: string;
/** Объявленное количество, шт. */
issueSizePlan: Quotation | undefined;
/** Количество акций в свободном обращении. */
totalFloat: Quotation | undefined;
}
/** Облигация. */
export interface AssetBond {
/** Текущий номинал. */
currentNominal: Quotation | undefined;
/** Наименование заемщика. */
borrowName: string;
/** Объем эмиссии облигации (стоимость). */
issueSize: Quotation | undefined;
/** Номинал облигации. */
nominal: Quotation | undefined;
/** Валюта номинала. */
nominalCurrency: string;
/** Форма выпуска облигации. */
issueKind: string;
/** Форма дохода облигации. */
interestKind: string;
/** Количество выплат в год. */
couponQuantityPerYear: number;
/** Признак облигации с индексируемым номиналом. */
indexedNominalFlag: boolean;
/** Признак субординированной облигации. */
subordinatedFlag: boolean;
/** Признак обеспеченной облигации. */
collateralFlag: boolean;
/** Признак показывает, что купоны облигации не облагаются налогом — для mass market. */
taxFreeFlag: boolean;
/** Признак облигации с амортизацией долга. */
amortizationFlag: boolean;
/** Признак облигации с плавающим купоном. */
floatingCouponFlag: boolean;
/** Признак бессрочной облигации. */
perpetualFlag: boolean;
/** Дата погашения облигации. */
maturityDate: Date | undefined;
/** Описание и условия получения дополнительного дохода. */
returnCondition: string;
/** Дата выпуска облигации. */
stateRegDate: Date | undefined;
/** Дата размещения облигации. */
placementDate: Date | undefined;
/** Цена размещения облигации. */
placementPrice: Quotation | undefined;
/** Объявленное количество, шт. */
issueSizePlan: Quotation | undefined;
}
/** Структурная нота. */
export interface AssetStructuredProduct {
/** Наименование заемщика. */
borrowName: string;
/** Номинал. */
nominal: Quotation | undefined;
/** Валюта номинала. */
nominalCurrency: string;
/** Тип структурной ноты. */
type: StructuredProductType;
/** Стратегия портфеля. */
logicPortfolio: string;
/** Тип базового актива. */
assetType: AssetType;
/** Вид базового актива в зависимости от типа базового актива. */
basicAsset: string;
/** Барьер сохранности в процентах. */
safetyBarrier: Quotation | undefined;
/** Дата погашения. */
maturityDate: Date | undefined;
/** Объявленное количество, шт. */
issueSizePlan: Quotation | undefined;
/** Объем размещения. */
issueSize: Quotation | undefined;
/** Дата размещения ноты. */
placementDate: Date | undefined;
/** Форма выпуска. */
issueKind: string;
}
/** Фонд. */
export interface AssetEtf {
/** Суммарные расходы фонда в процентах. */
totalExpense: Quotation | undefined;
/** Барьерная ставка доходности, после которой фонд имеет право на perfomance fee — в процентах. */
hurdleRate: Quotation | undefined;
/** Комиссия за успешные результаты фонда в процентах. */
performanceFee: Quotation | undefined;
/** Фиксированная комиссия за управление в процентах. */
fixedCommission: Quotation | undefined;
/** Тип распределения доходов от выплат по бумагам. */
paymentType: string;
/** Признак необходимости выхода фонда в плюс для получения комиссии. */
watermarkFlag: boolean;
/** Премия (надбавка к цене) при покупке доли в фонде — в процентах. */
buyPremium: Quotation | undefined;
/** Ставка дисконта (вычет из цены) при продаже доли в фонде — в процентах. */
sellDiscount: Quotation | undefined;
/** Признак ребалансируемости портфеля фонда. */
rebalancingFlag: boolean;
/** Периодичность ребалансировки. */
rebalancingFreq: string;
/** Тип управления. */
managementType: string;
/** Индекс, который реплицирует (старается копировать) фонд. */
primaryIndex: string;
/** База ETF. */
focusType: string;
/** Признак использования заемных активов (плечо). */
leveragedFlag: boolean;
/** Количество акций в обращении. */
numShare: Quotation | undefined;
/** Признак обязательства по отчетности перед регулятором. */
ucitsFlag: boolean;
/** Дата выпуска. */
releasedDate: Date | undefined;
/** Описание фонда. */
description: string;
/** Описание индекса, за которым следует фонд. */
primaryIndexDescription: string;
/** Основные компании, в которые вкладывается фонд. */
primaryIndexCompany: string;
/** Срок восстановления индекса после просадки. */
indexRecoveryPeriod: Quotation | undefined;
/** IVAV-код. */
inavCode: string;
/** Признак наличия дивидендной доходности. */
divYieldFlag: boolean;
/** Комиссия на покрытие расходов фонда в процентах. */
expenseCommission: Quotation | undefined;
/** Ошибка следования за индексом в процентах. */
primaryIndexTrackingError: Quotation | undefined;
/** Плановая ребалансировка портфеля. */
rebalancingPlan: string;
/** Ставки налогообложения дивидендов и купонов. */
taxRate: string;
/** Даты ребалансировок. */
rebalancingDates: Date[];
/** Форма выпуска. */
issueKind: string;
/** Номинал. */
nominal: Quotation | undefined;
/** Валюта номинала. */
nominalCurrency: string;
}
/** Клиринговый сертификат участия. */
export interface AssetClearingCertificate {
/** Номинал. */
nominal: Quotation | undefined;
/** Валюта номинала. */
nominalCurrency: string;
}
/** Бренд. */
export interface Brand {
/** UID-идентификатор бренда. */
uid: string;
/** Наименование бренда. */
name: string;
/** Описание. */
description: string;
/** Информация о бренде. */
info: string;
/** Компания. */
company: string;
/** Сектор. */
sector: string;
/** Код страны риска. */
countryOfRisk: string;
/** Наименование страны риска. */
countryOfRiskName: string;
}
/** Идентификаторы инструмента. */
export interface AssetInstrument {
/** UID-идентификатор инструмента. */
uid: string;
/** FIGI-идентификатор инструмента. */
figi: string;
/** Тип инструмента. */
instrumentType: string;
/** Тикер инструмента. */
ticker: string;
/** Класс-код (секция торгов). */
classCode: string;
/** Массив связанных инструментов. */
links: InstrumentLink[];
/** Тип инструмента. */
instrumentKind: InstrumentType;
/** ID позиции. */
positionUid: string;
}
/** Связь с другим инструментом. */
export interface InstrumentLink {
/** Тип связи. */
type: string;
/** UID-идентификатор связанного инструмента. */
instrumentUid: string;
}
/** Запрос списка избранных инструментов, входные параметры не требуются. */
export interface GetFavoritesRequest {
/** Уникальный идентификатор группы. */
groupId?: string | undefined;
}
/** В ответ передается список избранных инструментов в качестве массива. */
export interface GetFavoritesResponse {
/** Массив инструментов. */
favoriteInstruments: FavoriteInstrument[];
/** Уникальный идентификатор группы. */
groupId?: string | undefined;
}
/** Массив избранных инструментов. */
export interface FavoriteInstrument {
/** FIGI-идентификатор инструмента. */
figi: string;
/** Тикер инструмента. */
ticker: string;
/** Класс-код инструмента. */
classCode: string;
/** ISIN-идентификатор инструмента. */
isin: string;
/** Тип инструмента. */
instrumentType: string;
/** Название инструмента. */
name: string;
/** Уникальный идентификатор инструмента. */
uid: string;
/** Флаг, используемый ранее для определения внебиржевых инструментов. На данный момент не используется для торгуемых через API инструментов. Может использоваться как фильтр для операций, совершавшихся некоторое время назад на ОТС площадке. */
otcFlag: boolean;
/** Возможность торговать инструментом через API. */
apiTradeAvailableFlag: boolean;
/** Тип инструмента. */
instrumentKind: InstrumentType;
}
/** Запрос редактирования списка избранных инструментов. */
export interface EditFavoritesRequest {
/** Массив инструментов. */
instruments: EditFavoritesRequestInstrument[];
/** Тип действия со списком. */
actionType: EditFavoritesActionType;
/** Уникальный идентификатор группы. */
groupId?: string | undefined;
}
/** Массив инструментов для редактирования списка избранных инструментов. */
export interface EditFavoritesRequestInstrument {
/**
* FIGI-идентификатор инструмента.
*
* @deprecated
*/
figi?: string | undefined;
/** Идентификатор инструмента — `figi` или `instrument_uid`. */
instrumentId: string;
}
/** Результат редактирования списка избранных инструментов. */
export interface EditFavoritesResponse {
/** Массив инструментов. */
favoriteInstruments: FavoriteInstrument[];
/** Уникальный идентификатор группы. */
groupId?: string | undefined;
}
/** Запрос создания новой группы избранных инструментов. */
export interface CreateFavoriteGroupRequest {
/** Название группы, не более 255 символов. */
groupName: string;
/** Цвет группы. Принимает значения в HEX-формате, от "000000" до "FFFFFF" */
groupColor: string;
/** Описание */
note?: string | undefined;
}
export interface CreateFavoriteGroupResponse {
/** Уникальный идентификатор группы. */
groupId: string;
/** Название группы. */
groupName: string;
}
/** Запрос удаления избранной группы */
export interface DeleteFavoriteGroupRequest {
/** Уникальный идентификатор группы. */
groupId: string;
}
export interface DeleteFavoriteGroupResponse {}
/** Запрос получения списка избранных групп */
export interface GetFavoriteGroupsRequest {
/** Массив идентификаторов инструментов. Принимает значение `figi` или `instrument_uid`. Если в группе будет хотя бы один из инструментов массива, то в ответе у группы вернется признак `containsInstrument = true`. */
instrumentId: string[];
/** Массив идентификаторов групп, которые необходимо исключить из ответа. */
excludedGroupId: string[];
}
/** Избранные группы */
export interface GetFavoriteGroupsResponse {
/** Массив групп избранных списков инструментов. */
groups: GetFavoriteGroupsResponse_FavoriteGroup[];
}
/** Избранная группа */
export interface GetFavoriteGroupsResponse_FavoriteGroup {
/** Уникальный идентификатор группы. */
groupId: string;
/** Название группы. */
groupName: string;
/** Цвет группы в HEX-формате. */
color: string;
/** Количество инструментов в группе. */
size: number;
/** Признак наличия в группе хотя бы одного инструмента из запроса. */
containsInstrument?: boolean | undefined;
}
/** Запрос справочника стран. */
export interface GetCountriesRequest {}
/** Справочник стран. */
export interface GetCountriesResponse {
/** Массив стран. */
countries: CountryResponse[];
}
/** Запрос справочника индексов и товаров */
export interface IndicativesRequest {}
/** Справочник индексов и товаров */
export interface IndicativesResponse {
/** Массив инструментов. */
instruments: IndicativeResponse[];
}
/** Индикатив */
export interface IndicativeResponse {
/** FIGI-идентификатор инструмента. */
figi: string;
/** Тикер инструмента. */
ticker: string;
/** Класс-код инструмента. */
classCode: string;
/** Валюта расчетов. */
currency: string;
/** Тип инструмента. */
instrumentKind: InstrumentType;
/** Название инструмента. */
name: string;
/** Tорговая площадка (секция биржи). */
exchange: string;
/** Уникальный идентификатор инструмента. */
uid: string;
/** Признак доступности для покупки. */
buyAvailableFlag: boolean;
/** Признак доступности для продажи. */
sellAvailableFlag: boolean;
}
/** Данные о стране. */
export interface CountryResponse {
/** Двухбуквенный код страны. */
alfaTwo: string;
/** Трехбуквенный код страны. */
alfaThree: string;
/** Наименование страны. */
name: string;
/** Краткое наименование страны. */
nameBrief: string;
}
/** Запрос на поиск инструментов. */
export interface FindInstrumentRequest {
/** Строка поиска. */
query: string;
/** Фильтр по типу инструмента. */
instrumentKind?: InstrumentType | undefined;
/** Фильтр для отображения только торговых инструментов. */
apiTradeAvailableFlag?: boolean | undefined;
}
/** Результат поиска инструментов. */
export interface FindInstrumentResponse {
/** Массив инструментов, удовлетворяющих условиям поиска. */
instruments: InstrumentShort[];
}
/** Краткая информация об инструменте. */
export interface InstrumentShort {
/** ISIN инструмента. */
isin: string;
/** FIGI инструмента. */
figi: string;
/** Ticker инструмента. */
ticker: string;
/** ClassCode инструмента. */
classCode: string;
/** Тип инструмента. */
instrumentType: string;
/** Название инструмента. */
name: string;
/** Уникальный идентификатор инструмента. */
uid: string;
/** Уникальный идентификатор позиции инструмента. */
positionUid: string;
/** Тип инструмента. */
instrumentKind: InstrumentType;
/** Возможность торговать инструментом через API. */
apiTradeAvailableFlag: boolean;
/** Признак доступности для ИИС. */
forIisFlag: boolean;
/** Дата первой минутной свечи. */
first1minCandleDate: Date | undefined;
/** Дата первой дневной свечи. */
first1dayCandleDate: Date | undefined;
/** Флаг, отображающий доступность торговли инструментом только для квалифицированных инвесторов. */
forQualInvestorFlag: boolean;
/** Флаг, отображающий доступность торговли инструментом по выходным. */
weekendFlag: boolean;
/** Флаг заблокированного ТКС. */
blockedTcaFlag: boolean;
/** Количество бумаг в лоте. */
lot: number;
}
/** Запрос списка брендов. */
export interface GetBrandsRequest {
/** Настройки пагинации. */
paging: Page | undefined;
}
/** Запрос бренда. */
export interface GetBrandRequest {
/** UID-идентификатор бренда. */
id: string;
}
/** Список брендов. */
export interface GetBrandsResponse {
/** Массив брендов. */
brands: Brand[];
/** Данные по пагинации. */
paging: PageResponse | undefined;
}
/** Запрос фундаментальных показателей */
export interface GetAssetFundamentalsRequest {
/** Массив идентификаторов активов, не более 100 шт. */
assets: string[];
}
/** Фундаментальные показатели */
export interface GetAssetFundamentalsResponse {
fundamentals: GetAssetFundamentalsResponse_StatisticResponse[];
}
/** Фундаментальные показатели по активу */
export interface GetAssetFundamentalsResponse_StatisticResponse {
/** Идентификатор актива. */
assetUid: string;
/** Валюта. */
currency: string;
/** Рыночная капитализация. */
marketCapitalization: number;
/** Максимум за год. */
highPriceLast52Weeks: number;
/** Минимум за год. */
lowPriceLast52Weeks: number;
/** Средний объем торгов за 10 дней. */
averageDailyVolumeLast10Days: number;
/** Средний объем торгов за месяц. */
averageDailyVolumeLast4Weeks: number;
beta: number;
/** Доля акций в свободном обращении. */
freeFloat: number;
/** Процент форвардной дивидендной доходности по отношению к цене акций. */
forwardAnnualDividendYield: number;
/** Количество акций в обращении. */
sharesOutstanding: number;
/** Выручка. */
revenueTtm: number;
/** EBITDA — прибыль до вычета процентов, налогов, износа и амортизации. */
ebitdaTtm: number;
/** Чистая прибыль. */
netIncomeTtm: number;
/** EPS — величина чистой прибыли компании, которая приходится на каждую обыкновенную акцию. */
epsTtm: number;
/** EPS компании с допущением, что все конвертируемые ценные бумаги компании были сконвертированы в обыкновенные акции. */
dilutedEpsTtm: number;
/** Свободный денежный поток. */
freeCashFlowTtm: number;
/** Среднегодовой рocт выручки за 5 лет. */
fiveYearAnnualRevenueGrowthRate: number;
/** Среднегодовой рocт выручки за 3 года. */
threeYearAnnualRevenueGrowthRate: number;
/** Соотношение рыночной капитализации компании к ее чистой прибыли. */
peRatioTtm: number;
/** Соотношение рыночной капитализации компании к ее выручке. */
priceToSalesTtm: number;
/** Соотношение рыночной капитализации компании к ее балансовой стоимости. */
priceToBookTtm: number;
/** Соотношение рыночной капитализации компании к ее свободному денежному потоку. */
priceToFreeCashFlowTtm: number;
/** Рыночная стоимость компании. */
totalEnterpriseValueMrq: number;
/** Соотношение EV и EBITDA. */
evToEbitdaMrq: number;
/** Маржа чистой прибыли. */
netMarginMrq: number;
/** Рентабельность чистой прибыли. */
netInterestMarginMrq: number;
/** Рентабельность собственного капитала. */
roe: number;
/** Рентабельность активов. */
roa: number;
/** Рентабельность активов. */
roic: number;
/** Сумма краткосрочных и долгосрочных обязательств компании. */
totalDebtMrq: number;
/** Соотношение долга к собственному капиталу. */
totalDebtToEquityMrq: number;
/** Total Debt/EBITDA. */
totalDebtToEbitdaMrq: number;
/** Отношение свободногоо кэша к стоимости. */
freeCashFlowToPrice: number;
/** Отношение чистого долга к EBITDA. */
netDebtToEbitda: number;
/** Коэффициент текущей ликвидности. */
currentRatioMrq: number;
/** Коэффициент покрытия фиксированных платежей — FCCR. */
fixedChargeCoverageRatioFy: number;
/** Дивидендная доходность за 12 месяцев. */
dividendYieldDailyTtm: number;
/** Выплаченные дивиденды за 12 месяцев. */
dividendRateTtm: number;
/** Значение дивидендов на акцию. */
dividendsPerShare: number;
/** Средняя дивидендная доходность за 5 лет. */
fiveYearsAverageDividendYield: number;
/** Среднегодовой рост дивидендов за 5 лет. */
fiveYearAnnualDividendGrowthRate: number;
/** Процент чистой прибыли, уходящий на выплату дивидендов. */
dividendPayoutRatioFy: number;
/** Деньги, потраченные на обратный выкуп акций. */
buyBackTtm: number;
/** Рост выручки за 1 год. */
oneYearAnnualRevenueGrowthRate: number;
/** Код страны. */
domicileIndicatorCode: string;
/** Соотношение депозитарной расписки к акциям. */
adrToCommonShareRatio: number;
/** Количество сотрудников. */
numberOfEmployees: number;
exDividendDate: Date | undefined;
/** Начало фискального периода. */
fiscalPeriodStartDate: Date | undefined;
/** Окончание фискального периода. */
fiscalPeriodEndDate: Date | undefined;
/** Изменение общего дохода за 5 лет. */
revenueChangeFiveYears: number;
/** Изменение EPS за 5 лет. */
epsChangeFiveYears: number;
/** Изменение EBIDTA за 5 лет. */
ebitdaChangeFiveYears: number;
/** Изменение общей задолжности за 5 лет. */
totalDebtChangeFiveYears: number;
/** Отношение EV к выручке. */
evToSales: number;
}
/** Запрос отчетов эмитентов */
export interface GetAssetReportsRequest {
/** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */
instrumentId: string;
/** Начало запрашиваемого периода по UTC. */
from?: Date | undefined;
/** Окончание запрашиваемого периода по UTC. */
to?: Date | undefined;
}
/** Отчеты эмитентов */
export interface GetAssetReportsResponse {
/** Массив событий по облигации. */
events: GetAssetReportsResponse_GetAssetReportsEvent[];
}
export enum GetAssetReportsResponse_AssetReportPeriodType {
/** PERIOD_TYPE_UNSPECIFIED - Не указан. */
PERIOD_TYPE_UNSPECIFIED = 0,
/** PERIOD_TYPE_QUARTER - Квартальный. */
PERIOD_TYPE_QUARTER = 1,
/** PERIOD_TYPE_SEMIANNUAL - Полугодовой. */
PERIOD_TYPE_SEMIANNUAL = 2,
/** PERIOD_TYPE_ANNUAL - Годовой. */
PERIOD_TYPE_ANNUAL = 3,
UNRECOGNIZED = -1,
}
export function getAssetReportsResponse_AssetReportPeriodTypeFromJSON(
object: any,
): GetAssetReportsResponse_AssetReportPeriodType {
switch (object) {
case 0:
case 'PERIOD_TYPE_UNSPECIFIED':
return GetAssetReportsResponse_AssetReportPeriodType.PERIOD_TYPE_UNSPECIFIED;
case 1:
case 'PERIOD_TYPE_QUARTER':
return GetAssetReportsResponse_AssetReportPeriodType.PERIOD_TYPE_QUARTER;
case 2:
case 'PERIOD_TYPE_SEMIANNUAL':
return GetAssetReportsResponse_AssetReportPeriodType.PERIOD_TYPE_SEMIANNUAL;
case 3:
case 'PERIOD_TYPE_ANNUAL':
return GetAssetReportsResponse_AssetReportPeriodType.PERIOD_TYPE_ANNUAL;
case -1:
case 'UNRECOGNIZED':
default:
return GetAssetReportsResponse_AssetReportPeriodType.UNRECOGNIZED;
}
}
export function getAssetReportsResponse_AssetReportPeriodTypeToJSON(
object: GetAssetReportsResponse_AssetReportPeriodType,
): string {
switch (object) {
case GetAssetReportsResponse_AssetReportPeriodType.PERIOD_TYPE_UNSPECIFIED:
return 'PERIOD_TYPE_UNSPECIFIED';
case GetAssetReportsResponse_AssetReportPeriodType.PERIOD_TYPE_QUARTER:
return 'PERIOD_TYPE_QUARTER';
case GetAssetReportsResponse_AssetReportPeriodType.PERIOD_TYPE_SEMIANNUAL:
return 'PERIOD_TYPE_SEMIANNUAL';
case GetAssetReportsResponse_AssetReportPeriodType.PERIOD_TYPE_ANNUAL:
return 'PERIOD_TYPE_ANNUAL';
default:
return 'UNKNOWN';
}
}
/** Отчет */
export interface GetAssetReportsResponse_GetAssetReportsEvent {
/** Идентификатор инструмента. */
instrumentId: string;
/** Дата публикации отчета. */
reportDate: Date | undefined;
/** Год периода отчета. */
periodYear: number;
/** Номер периода. */
periodNum: number;
/** Тип отчета. */
periodType: GetAssetReportsResponse_AssetReportPeriodType;
/** Дата создания записи. */
createdAt: Date | undefined;
}
/** Запрос консенсус-прогнозов */
export interface GetConsensusForecastsRequest {
/** Настройки пагинации. */
paging?: Page | undefined;
}
/** Консенсус-прогнозы */
export interface GetConsensusForecastsResponse {
/** Массив прогнозов. */
items: GetConsensusForecastsResponse_ConsensusForecastsItem[];
/** Данные по пагинации. */
page: PageResponse | undefined;
}
/** Прогноз */
export interface GetConsensusForecastsResponse_ConsensusForecastsItem {
/** UID-идентификатор. */
uid: string;
/** UID-идентификатор актива. */
assetUid: string;
/** Дата и время создания записи. */
createdAt: Date | undefined;
/** Целевая цена на 12 месяцев. */
bestTargetPrice: Quotation | undefined;
/** Минимальная прогнозная цена. */
bestTargetLow: Quotation | undefined;
/** Максимальная прогнозная цена. */
bestTargetHigh: Quotation | undefined;
/** Количество аналитиков рекомендующих покупать. */
totalBuyRecommend: number;
/** Количество аналитиков рекомендующих держать. */
totalHoldRecommend: number;
/** Количество аналитиков рекомендующих продавать. */
totalSellRecommend: number;
/** Валюта прогнозов инструмента. */
currency: string;
/** Консенсус-прогноз. */
consensus: Recommendation;
/** Дата прогноза. */
prognosisDate: Date | undefined;
}
/** Запрос прогнозов инвестдомов. */
export interface GetForecastRequest {
/** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */
instrumentId: string;
}
/** Прогнозы инвестдомов по инструменту. */
export interface GetForecastResponse {
/** Массив прогнозов. */
targets: GetForecastResponse_TargetItem[];
/** Согласованный прогноз. */
consensus: GetForecastResponse_ConsensusItem | undefined;
}
/** Прогноз */
export interface GetForecastResponse_TargetItem {
/** Уникальный идентификатор инструмента. */
uid: string;
/** Тикер инструмента. */
ticker: string;
/** Название компании, давшей прогноз. */
company: string;
/** Прогноз. */
recommendation: Recommendation;
/** Дата прогноза. */
recommendationDate: Date | undefined;
/** Валюта. */
currency: string;
/** Текущая цена. */
currentPrice: Quotation | undefined;
/** Прогнозируемая цена. */
targetPrice: Quotation | undefined;
/** Изменение цены. */
priceChange: Quotation | undefined;
/** Относительное изменение цены. */
priceChangeRel: Quotation | undefined;
/** Наименование инструмента. */
showName: string;
}
/** Консенсус-прогноз. */
export interface GetForecastResponse_ConsensusItem {
/** Уникальный идентификатор инструмента. */
uid: string;
/** Тикер инструмента. */
ticker: string;
/** Прогноз. */
recommendation: Recommendation;
/** Валюта. */
currency: string;
/** Текущая цена. */
currentPrice: Quotation | undefined;
/** Прогнозируемая цена. */
consensus: Quotation | undefined;
/** Минимальная цена прогноза. */
minTarget: Quotation | undefined;
/** Максимальная цена прогноза. */
maxTarget: Quotation | undefined;
/** Изменение цены. */
priceChange: Quotation | undefined;
/** Относительное изменение цены. */
priceChangeRel: Quotation | undefined;
}
/** Запрос ставок риска */
export interface RiskRatesRequest {
/** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */
instrumentId: string[];
}
/** Ставки риска */
export interface RiskRatesResponse {
instrumentRiskRates: RiskRatesResponse_RiskRateResult[];
}
export interface RiskRatesResponse_RiskRateResult {
instrumentUid: string;
/** Ставка риска пользователя в шорт */
shortRiskRate?: RiskRatesResponse_RiskRate | undefined;
/** Ставка риска пользователя в лонг */
longRiskRate?: RiskRatesResponse_RiskRate | undefined;
/** Доступные ставки риска в шорт */
shortRiskRates: RiskRatesResponse_RiskRate[];
/** Доступные ставки риска в лонг */
longRiskRates: RiskRatesResponse_RiskRate[];
/** Ошибка. */
error?: string | undefined;
}
export interface RiskRatesResponse_RiskRate {
/** Категория риска. */
riskLevelCode: string;
/** Значение ставки риска. */
value: Quotation | undefined;
}
export interface TradingInterval {
/** Название интервала. */
type: string;
/** Интервал. */
interval: TradingInterval_TimeInterval | undefined;
}
export interface TradingInterval_TimeInterval {
/** Время начала интервала. */
startTs: Date | undefined;
/** Время окончания интервала. */
endTs: Date | undefined;
}
/** Запрос сделок по инсайдерам */
export interface GetInsiderDealsRequest {
/** Идентификатор инструмента. Принимает значение `figi`, `instrument_uid` или `ticker + '_' + class_code`. */
instrumentId: string;
/** Количество выводимых записей в ответе, не больше 100. */
limit: number;
/** Курсор. */
nextCursor?: string | undefined;
}
/** сделки инсайдеров */
export interface GetInsiderDealsResponse {
/** Массив сделок. */
insiderDeals: GetInsiderDealsResponse_InsiderDeal[];
/** Курсор для получения следующей страницы. */
nextCursor?: string | undefined;
}
export enum GetInsiderDealsResponse_TradeDirection {
/** TRADE_DIRECTION_UNSPECIFIED - Не определено. */
TRADE_DIRECTION_UNSPECIFIED = 0,
/** TRADE_DIRECTION_BUY - Покупка. */
TRADE_DIRECTION_BUY = 1,
/** TRADE_DIRECTION_SELL - Продажа. */
TRADE_DIRECTION_SELL = 2,
/** TRADE_DIRECTION_INCREASE - Увеличение доли. */
TRADE_DIRECTION_INCREASE = 3,
/** TRADE_DIRECTION_DECREASE - Уменьшение доли. */
TRADE_DIRECTION_DECREASE = 4,
UNRECOGNIZED = -1,
}
export function getInsiderDealsResponse_TradeDirectionFromJSON(object: any): GetInsiderDealsResponse_TradeDirection {
switch (object) {
case 0:
case 'TRADE_DIRECTION_UNSPECIFIED':
return GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_UNSPECIFIED;
case 1:
case 'TRADE_DIRECTION_BUY':
return GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_BUY;
case 2:
case 'TRADE_DIRECTION_SELL':
return GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_SELL;
case 3:
case 'TRADE_DIRECTION_INCREASE':
return GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_INCREASE;
case 4:
case 'TRADE_DIRECTION_DECREASE':
return GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_DECREASE;
case -1:
case 'UNRECOGNIZED':
default:
return GetInsiderDealsResponse_TradeDirection.UNRECOGNIZED;
}
}
export function getInsiderDealsResponse_TradeDirectionToJSON(object: GetInsiderDealsResponse_TradeDirection): string {
switch (object) {
case GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_UNSPECIFIED:
return 'TRADE_DIRECTION_UNSPECIFIED';
case GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_BUY:
return 'TRADE_DIRECTION_BUY';
case GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_SELL:
return 'TRADE_DIRECTION_SELL';
case GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_INCREASE:
return 'TRADE_DIRECTION_INCREASE';
case GetInsiderDealsResponse_TradeDirection.TRADE_DIRECTION_DECREASE:
return 'TRADE_DIRECTION_DECREASE';
default:
return 'UNKNOWN';
}
}
export interface GetInsiderDealsResponse_InsiderDeal {
/** Уникальный идентификатор сделки. */
tradeId: number;
/** Направление сделки. */
direction: GetInsiderDealsResponse_TradeDirection;
/** Валюта сделки. */
currency: string;
/** Дата сделки. */
date: Date | undefined;
/** Количество. */
quantity: number;
/** Цена. */
price: Quotation | undefined;
/** Уникальный идентификатор инструмента. */
instrumentUid: string;
/** Тикер инструмента. */
ticker: string;
/** Имя инвестора. */
investorName: string;
/** Какое отношение покупатель/продавец имеет к эмитенту */
investorPosition: string;
/** Купленный/проданный объём от общего количества ценных бумаг на рынке */
percentage: number;
/** Признак является ли сделка реализацией опциона */
isOptionExecution: boolean;
/** Дата раскрытия сделки. */
disclosureDate: Date | undefined;
}
/** Запрос цифровых активов */
export interface DfasRequest {}
/** Цифровой актив */
export interface DfaResponse {
/** Уникальный идентификатор инструмента. */
uid: string;
/** Тикер инструмента. */
ticker: string;
/** Название инструмента. */
name: string;
/** Уникальный идентификатор позиции. */
positionUid: string;
/** Шаг цены. */
minPriceIncrement: Quotation | undefined;
/** Количество лотов. */
lot: number;
/** Номинал. */
nominal: MoneyValue | undefined;
/** Валюта. */
currency: string;
/** Дата погашения ЦФА в формате UTC. */
maturityDate: Date | undefined;
/** Признак доступности для операций шорт. */
shortEnabledFlag: boolean;
/** Признак доступности торгов по бумаге через API. */
apiTradeAvailableFlag: boolean;
/** Признак доступности для покупки. */
buyAvailableFlag: boolean;
/** Признак доступности для продажи. */
sellAvailableFlag: boolean;
/** Признак доступности выставления лимитной заявки по инструменту. */
limitOrderAvailableFlag: boolean;
/** Признак доступности выставления рыночной заявки по инструменту. */
marketOrderAvailableFlag: boolean;
/** Признак доступности выставления bestprice заявки по инструменту. */
bestpriceOrderAvailableFlag: boolean;
/** Возможность покупки/продажи на ИИС. */
forIisFlag: boolean;
/** Флаг отображающий доступность торговли инструментом только для квалифицированных инвесторов. */
forQualInvestorFlag: boolean;
/** Тип актива. Возможные значения: credit_portfolio_dfa, debt_dfa. */
type: string;
/** Базовые активы, входящие в ЦФА. */
basicAssets: DfaResponse_BasicAsset[];
/** Прогнозная доходность смарт-портфелей, в виде интервала в %. */
forecastYield: DfaResponse_ForecastYield | undefined;
/** Доходность к погашению в %. */
yieldToMaturity: Quotation | undefined;
/** Величина купона. */
couponValue: Quotation | undefined;
/** Количество выплат в год. */
couponPaymentFrequency: number;
/** Дата выплаты купона. */
couponPaymentDate: Date | undefined;
/** Значение НКД (накопленного купонного дохода) на дату. */
aciValue: Quotation | undefined;
}
/** Базовый актив. */
export interface DfaResponse_BasicAsset {
/** UID базового актива */
uid: string;
}
/** Прогнозная доходность смарт-портфелей. */
export interface DfaResponse_ForecastYield {
/** Минимальное значение прогнозной доходности в % */
minValue: Quotation | undefined;
/** Максимальное значение прогнозной доходности в % */
maxValue: Quotation | undefined;
}
/** Цифровые активы */
export interface DfasResponse {
/** Массив инструментов. */
instruments: DfaResponse[];
}
function createBaseTradingSchedulesRequest(): TradingSchedulesRequest {
return { exchange: undefined, from: undefined, to: undefined };
}
export const TradingSchedulesRequest = {
encode(message: TradingSchedulesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.exchange !== undefined) {
writer.uint32(10).string(message.exchange);
}
if (message.from !== undefined) {
Timestamp.encode(toTimestamp(message.from), writer.uint32(18).fork()).ldelim();
}
if (message.to !== undefined) {
Timestamp.encode(toTimestamp(message.to), writer.uint32(26).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): TradingSchedulesRequest {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTradingSchedulesRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.exchange = reader.string();
break;
case 2:
message.from = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 3:
message.to = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): TradingSchedulesRequest {
return {
exchange: isSet(object.exchange) ? String(object.exchange) : undefined,
from: isSet(object.from) ? fromJsonTimestamp(object.from) : undefined,
to: isSet(object.to) ? fromJsonTimestamp(object.to) : undefined,
};
},
toJSON(message: TradingSchedulesRequest): unknown {
const obj: any = {};
message.exchange !== undefined && (obj.exchange = message.exchange);
message.from !== undefined && (obj.from = message.from.toISOString());
message.to !== undefined && (obj.to = message.to.toISOString());
return obj;
},
fromPartial(object: DeepPartial): TradingSchedulesRequest {
const message = createBaseTradingSchedulesRequest();
message.exchange = object.exchange ?? undefined;
message.from = object.from ?? undefined;
message.to = object.to ?? undefined;
return message;
},
};
function createBaseTradingSchedulesResponse(): TradingSchedulesResponse {
return { exchanges: [] };
}
export const TradingSchedulesResponse = {
encode(message: TradingSchedulesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
for (const v of message.exchanges) {
TradingSchedule.encode(v!, writer.uint32(10).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): TradingSchedulesResponse {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTradingSchedulesResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.exchanges.push(TradingSchedule.decode(reader, reader.uint32()));
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): TradingSchedulesResponse {
return {
exchanges: Array.isArray(object?.exchanges) ? object.exchanges.map((e: any) => TradingSchedule.fromJSON(e)) : [],
};
},
toJSON(message: TradingSchedulesResponse): unknown {
const obj: any = {};
if (message.exchanges) {
obj.exchanges = message.exchanges.map(e => (e ? TradingSchedule.toJSON(e) : undefined));
} else {
obj.exchanges = [];
}
return obj;
},
fromPartial(object: DeepPartial): TradingSchedulesResponse {
const message = createBaseTradingSchedulesResponse();
message.exchanges = object.exchanges?.map(e => TradingSchedule.fromPartial(e)) || [];
return message;
},
};
function createBaseTradingSchedule(): TradingSchedule {
return { exchange: '', days: [] };
}
export const TradingSchedule = {
encode(message: TradingSchedule, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.exchange !== '') {
writer.uint32(10).string(message.exchange);
}
for (const v of message.days) {
TradingDay.encode(v!, writer.uint32(18).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): TradingSchedule {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTradingSchedule();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.exchange = reader.string();
break;
case 2:
message.days.push(TradingDay.decode(reader, reader.uint32()));
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): TradingSchedule {
return {
exchange: isSet(object.exchange) ? String(object.exchange) : '',
days: Array.isArray(object?.days) ? object.days.map((e: any) => TradingDay.fromJSON(e)) : [],
};
},
toJSON(message: TradingSchedule): unknown {
const obj: any = {};
message.exchange !== undefined && (obj.exchange = message.exchange);
if (message.days) {
obj.days = message.days.map(e => (e ? TradingDay.toJSON(e) : undefined));
} else {
obj.days = [];
}
return obj;
},
fromPartial(object: DeepPartial): TradingSchedule {
const message = createBaseTradingSchedule();
message.exchange = object.exchange ?? '';
message.days = object.days?.map(e => TradingDay.fromPartial(e)) || [];
return message;
},
};
function createBaseTradingDay(): TradingDay {
return {
date: undefined,
isTradingDay: false,
startTime: undefined,
endTime: undefined,
openingAuctionStartTime: undefined,
closingAuctionEndTime: undefined,
eveningOpeningAuctionStartTime: undefined,
eveningStartTime: undefined,
eveningEndTime: undefined,
clearingStartTime: undefined,
clearingEndTime: undefined,
premarketStartTime: undefined,
premarketEndTime: undefined,
closingAuctionStartTime: undefined,
openingAuctionEndTime: undefined,
intervals: [],
};
}
export const TradingDay = {
encode(message: TradingDay, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.date !== undefined) {
Timestamp.encode(toTimestamp(message.date), writer.uint32(10).fork()).ldelim();
}
if (message.isTradingDay === true) {
writer.uint32(16).bool(message.isTradingDay);
}
if (message.startTime !== undefined) {
Timestamp.encode(toTimestamp(message.startTime), writer.uint32(26).fork()).ldelim();
}
if (message.endTime !== undefined) {
Timestamp.encode(toTimestamp(message.endTime), writer.uint32(34).fork()).ldelim();
}
if (message.openingAuctionStartTime !== undefined) {
Timestamp.encode(toTimestamp(message.openingAuctionStartTime), writer.uint32(58).fork()).ldelim();
}
if (message.closingAuctionEndTime !== undefined) {
Timestamp.encode(toTimestamp(message.closingAuctionEndTime), writer.uint32(66).fork()).ldelim();
}
if (message.eveningOpeningAuctionStartTime !== undefined) {
Timestamp.encode(toTimestamp(message.eveningOpeningAuctionStartTime), writer.uint32(74).fork()).ldelim();
}
if (message.eveningStartTime !== undefined) {
Timestamp.encode(toTimestamp(message.eveningStartTime), writer.uint32(82).fork()).ldelim();
}
if (message.eveningEndTime !== undefined) {
Timestamp.encode(toTimestamp(message.eveningEndTime), writer.uint32(90).fork()).ldelim();
}
if (message.clearingStartTime !== undefined) {
Timestamp.encode(toTimestamp(message.clearingStartTime), writer.uint32(98).fork()).ldelim();
}
if (message.clearingEndTime !== undefined) {
Timestamp.encode(toTimestamp(message.clearingEndTime), writer.uint32(106).fork()).ldelim();
}
if (message.premarketStartTime !== undefined) {
Timestamp.encode(toTimestamp(message.premarketStartTime), writer.uint32(114).fork()).ldelim();
}
if (message.premarketEndTime !== undefined) {
Timestamp.encode(toTimestamp(message.premarketEndTime), writer.uint32(122).fork()).ldelim();
}
if (message.closingAuctionStartTime !== undefined) {
Timestamp.encode(toTimestamp(message.closingAuctionStartTime), writer.uint32(130).fork()).ldelim();
}
if (message.openingAuctionEndTime !== undefined) {
Timestamp.encode(toTimestamp(message.openingAuctionEndTime), writer.uint32(138).fork()).ldelim();
}
for (const v of message.intervals) {
TradingInterval.encode(v!, writer.uint32(146).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): TradingDay {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTradingDay();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.date = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 2:
message.isTradingDay = reader.bool();
break;
case 3:
message.startTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 4:
message.endTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 7:
message.openingAuctionStartTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 8:
message.closingAuctionEndTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 9:
message.eveningOpeningAuctionStartTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 10:
message.eveningStartTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 11:
message.eveningEndTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 12:
message.clearingStartTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 13:
message.clearingEndTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 14:
message.premarketStartTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 15:
message.premarketEndTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 16:
message.closingAuctionStartTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 17:
message.openingAuctionEndTime = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 18:
message.intervals.push(TradingInterval.decode(reader, reader.uint32()));
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): TradingDay {
return {
date: isSet(object.date) ? fromJsonTimestamp(object.date) : undefined,
isTradingDay: isSet(object.isTradingDay) ? Boolean(object.isTradingDay) : false,
startTime: isSet(object.startTime) ? fromJsonTimestamp(object.startTime) : undefined,
endTime: isSet(object.endTime) ? fromJsonTimestamp(object.endTime) : undefined,
openingAuctionStartTime: isSet(object.openingAuctionStartTime)
? fromJsonTimestamp(object.openingAuctionStartTime)
: undefined,
closingAuctionEndTime: isSet(object.closingAuctionEndTime)
? fromJsonTimestamp(object.closingAuctionEndTime)
: undefined,
eveningOpeningAuctionStartTime: isSet(object.eveningOpeningAuctionStartTime)
? fromJsonTimestamp(object.eveningOpeningAuctionStartTime)
: undefined,
eveningStartTime: isSet(object.eveningStartTime) ? fromJsonTimestamp(object.eveningStartTime) : undefined,
eveningEndTime: isSet(object.eveningEndTime) ? fromJsonTimestamp(object.eveningEndTime) : undefined,
clearingStartTime: isSet(object.clearingStartTime) ? fromJsonTimestamp(object.clearingStartTime) : undefined,
clearingEndTime: isSet(object.clearingEndTime) ? fromJsonTimestamp(object.clearingEndTime) : undefined,
premarketStartTime: isSet(object.premarketStartTime) ? fromJsonTimestamp(object.premarketStartTime) : undefined,
premarketEndTime: isSet(object.premarketEndTime) ? fromJsonTimestamp(object.premarketEndTime) : undefined,
closingAuctionStartTime: isSet(object.closingAuctionStartTime)
? fromJsonTimestamp(object.closingAuctionStartTime)
: undefined,
openingAuctionEndTime: isSet(object.openingAuctionEndTime)
? fromJsonTimestamp(object.openingAuctionEndTime)
: undefined,
intervals: Array.isArray(object?.intervals) ? object.intervals.map((e: any) => TradingInterval.fromJSON(e)) : [],
};
},
toJSON(message: TradingDay): unknown {
const obj: any = {};
message.date !== undefined && (obj.date = message.date.toISOString());
message.isTradingDay !== undefined && (obj.isTradingDay = message.isTradingDay);
message.startTime !== undefined && (obj.startTime = message.startTime.toISOString());
message.endTime !== undefined && (obj.endTime = message.endTime.toISOString());
message.openingAuctionStartTime !== undefined &&
(obj.openingAuctionStartTime = message.openingAuctionStartTime.toISOString());
message.closingAuctionEndTime !== undefined &&
(obj.closingAuctionEndTime = message.closingAuctionEndTime.toISOString());
message.eveningOpeningAuctionStartTime !== undefined &&
(obj.eveningOpeningAuctionStartTime = message.eveningOpeningAuctionStartTime.toISOString());
message.eveningStartTime !== undefined && (obj.eveningStartTime = message.eveningStartTime.toISOString());
message.eveningEndTime !== undefined && (obj.eveningEndTime = message.eveningEndTime.toISOString());
message.clearingStartTime !== undefined && (obj.clearingStartTime = message.clearingStartTime.toISOString());
message.clearingEndTime !== undefined && (obj.clearingEndTime = message.clearingEndTime.toISOString());
message.premarketStartTime !== undefined && (obj.premarketStartTime = message.premarketStartTime.toISOString());
message.premarketEndTime !== undefined && (obj.premarketEndTime = message.premarketEndTime.toISOString());
message.closingAuctionStartTime !== undefined &&
(obj.closingAuctionStartTime = message.closingAuctionStartTime.toISOString());
message.openingAuctionEndTime !== undefined &&
(obj.openingAuctionEndTime = message.openingAuctionEndTime.toISOString());
if (message.intervals) {
obj.intervals = message.intervals.map(e => (e ? TradingInterval.toJSON(e) : undefined));
} else {
obj.intervals = [];
}
return obj;
},
fromPartial(object: DeepPartial): TradingDay {
const message = createBaseTradingDay();
message.date = object.date ?? undefined;
message.isTradingDay = object.isTradingDay ?? false;
message.startTime = object.startTime ?? undefined;
message.endTime = object.endTime ?? undefined;
message.openingAuctionStartTime = object.openingAuctionStartTime ?? undefined;
message.closingAuctionEndTime = object.closingAuctionEndTime ?? undefined;
message.eveningOpeningAuctionStartTime = object.eveningOpeningAuctionStartTime ?? undefined;
message.eveningStartTime = object.eveningStartTime ?? undefined;
message.eveningEndTime = object.eveningEndTime ?? undefined;
message.clearingStartTime = object.clearingStartTime ?? undefined;
message.clearingEndTime = object.clearingEndTime ?? undefined;
message.premarketStartTime = object.premarketStartTime ?? undefined;
message.premarketEndTime = object.premarketEndTime ?? undefined;
message.closingAuctionStartTime = object.closingAuctionStartTime ?? undefined;
message.openingAuctionEndTime = object.openingAuctionEndTime ?? undefined;
message.intervals = object.intervals?.map(e => TradingInterval.fromPartial(e)) || [];
return message;
},
};
function createBaseInstrumentRequest(): InstrumentRequest {
return { idType: 0, classCode: undefined, id: '' };
}
export const InstrumentRequest = {
encode(message: InstrumentRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.idType !== 0) {
writer.uint32(8).int32(message.idType);
}
if (message.classCode !== undefined) {
writer.uint32(18).string(message.classCode);
}
if (message.id !== '') {
writer.uint32(26).string(message.id);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): InstrumentRequest {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseInstrumentRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.idType = reader.int32() as any;
break;
case 2:
message.classCode = reader.string();
break;
case 3:
message.id = reader.string();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): InstrumentRequest {
return {
idType: isSet(object.idType) ? instrumentIdTypeFromJSON(object.idType) : 0,
classCode: isSet(object.classCode) ? String(object.classCode) : undefined,
id: isSet(object.id) ? String(object.id) : '',
};
},
toJSON(message: InstrumentRequest): unknown {
const obj: any = {};
message.idType !== undefined && (obj.idType = instrumentIdTypeToJSON(message.idType));
message.classCode !== undefined && (obj.classCode = message.classCode);
message.id !== undefined && (obj.id = message.id);
return obj;
},
fromPartial(object: DeepPartial): InstrumentRequest {
const message = createBaseInstrumentRequest();
message.idType = object.idType ?? 0;
message.classCode = object.classCode ?? undefined;
message.id = object.id ?? '';
return message;
},
};
function createBaseInstrumentsRequest(): InstrumentsRequest {
return { instrumentStatus: undefined, instrumentExchange: undefined };
}
export const InstrumentsRequest = {
encode(message: InstrumentsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.instrumentStatus !== undefined) {
writer.uint32(8).int32(message.instrumentStatus);
}
if (message.instrumentExchange !== undefined) {
writer.uint32(16).int32(message.instrumentExchange);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): InstrumentsRequest {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseInstrumentsRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.instrumentStatus = reader.int32() as any;
break;
case 2:
message.instrumentExchange = reader.int32() as any;
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): InstrumentsRequest {
return {
instrumentStatus: isSet(object.instrumentStatus) ? instrumentStatusFromJSON(object.instrumentStatus) : undefined,
instrumentExchange: isSet(object.instrumentExchange)
? instrumentExchangeTypeFromJSON(object.instrumentExchange)
: undefined,
};
},
toJSON(message: InstrumentsRequest): unknown {
const obj: any = {};
message.instrumentStatus !== undefined &&
(obj.instrumentStatus =
message.instrumentStatus !== undefined ? instrumentStatusToJSON(message.instrumentStatus) : undefined);
message.instrumentExchange !== undefined &&
(obj.instrumentExchange =
message.instrumentExchange !== undefined
? instrumentExchangeTypeToJSON(message.instrumentExchange)
: undefined);
return obj;
},
fromPartial(object: DeepPartial): InstrumentsRequest {
const message = createBaseInstrumentsRequest();
message.instrumentStatus = object.instrumentStatus ?? undefined;
message.instrumentExchange = object.instrumentExchange ?? undefined;
return message;
},
};
function createBaseFilterOptionsRequest(): FilterOptionsRequest {
return { basicAssetUid: undefined, basicAssetPositionUid: undefined, basicInstrumentId: undefined };
}
export const FilterOptionsRequest = {
encode(message: FilterOptionsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.basicAssetUid !== undefined) {
writer.uint32(10).string(message.basicAssetUid);
}
if (message.basicAssetPositionUid !== undefined) {
writer.uint32(18).string(message.basicAssetPositionUid);
}
if (message.basicInstrumentId !== undefined) {
writer.uint32(26).string(message.basicInstrumentId);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): FilterOptionsRequest {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseFilterOptionsRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.basicAssetUid = reader.string();
break;
case 2:
message.basicAssetPositionUid = reader.string();
break;
case 3:
message.basicInstrumentId = reader.string();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): FilterOptionsRequest {
return {
basicAssetUid: isSet(object.basicAssetUid) ? String(object.basicAssetUid) : undefined,
basicAssetPositionUid: isSet(object.basicAssetPositionUid) ? String(object.basicAssetPositionUid) : undefined,
basicInstrumentId: isSet(object.basicInstrumentId) ? String(object.basicInstrumentId) : undefined,
};
},
toJSON(message: FilterOptionsRequest): unknown {
const obj: any = {};
message.basicAssetUid !== undefined && (obj.basicAssetUid = message.basicAssetUid);
message.basicAssetPositionUid !== undefined && (obj.basicAssetPositionUid = message.basicAssetPositionUid);
message.basicInstrumentId !== undefined && (obj.basicInstrumentId = message.basicInstrumentId);
return obj;
},
fromPartial(object: DeepPartial): FilterOptionsRequest {
const message = createBaseFilterOptionsRequest();
message.basicAssetUid = object.basicAssetUid ?? undefined;
message.basicAssetPositionUid = object.basicAssetPositionUid ?? undefined;
message.basicInstrumentId = object.basicInstrumentId ?? undefined;
return message;
},
};
function createBaseBondResponse(): BondResponse {
return { instrument: undefined };
}
export const BondResponse = {
encode(message: BondResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.instrument !== undefined) {
Bond.encode(message.instrument, writer.uint32(10).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): BondResponse {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseBondResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.instrument = Bond.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): BondResponse {
return {
instrument: isSet(object.instrument) ? Bond.fromJSON(object.instrument) : undefined,
};
},
toJSON(message: BondResponse): unknown {
const obj: any = {};
message.instrument !== undefined &&
(obj.instrument = message.instrument ? Bond.toJSON(message.instrument) : undefined);
return obj;
},
fromPartial(object: DeepPartial): BondResponse {
const message = createBaseBondResponse();
message.instrument =
object.instrument !== undefined && object.instrument !== null ? Bond.fromPartial(object.instrument) : undefined;
return message;
},
};
function createBaseBondsResponse(): BondsResponse {
return { instruments: [] };
}
export const BondsResponse = {
encode(message: BondsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
for (const v of message.instruments) {
Bond.encode(v!, writer.uint32(10).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): BondsResponse {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseBondsResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.instruments.push(Bond.decode(reader, reader.uint32()));
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): BondsResponse {
return {
instruments: Array.isArray(object?.instruments) ? object.instruments.map((e: any) => Bond.fromJSON(e)) : [],
};
},
toJSON(message: BondsResponse): unknown {
const obj: any = {};
if (message.instruments) {
obj.instruments = message.instruments.map(e => (e ? Bond.toJSON(e) : undefined));
} else {
obj.instruments = [];
}
return obj;
},
fromPartial(object: DeepPartial): BondsResponse {
const message = createBaseBondsResponse();
message.instruments = object.instruments?.map(e => Bond.fromPartial(e)) || [];
return message;
},
};
function createBaseGetBondCouponsRequest(): GetBondCouponsRequest {
return { figi: '', from: undefined, to: undefined, instrumentId: '' };
}
export const GetBondCouponsRequest = {
encode(message: GetBondCouponsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.figi !== '') {
writer.uint32(10).string(message.figi);
}
if (message.from !== undefined) {
Timestamp.encode(toTimestamp(message.from), writer.uint32(18).fork()).ldelim();
}
if (message.to !== undefined) {
Timestamp.encode(toTimestamp(message.to), writer.uint32(26).fork()).ldelim();
}
if (message.instrumentId !== '') {
writer.uint32(34).string(message.instrumentId);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): GetBondCouponsRequest {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetBondCouponsRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.figi = reader.string();
break;
case 2:
message.from = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 3:
message.to = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 4:
message.instrumentId = reader.string();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): GetBondCouponsRequest {
return {
figi: isSet(object.figi) ? String(object.figi) : '',
from: isSet(object.from) ? fromJsonTimestamp(object.from) : undefined,
to: isSet(object.to) ? fromJsonTimestamp(object.to) : undefined,
instrumentId: isSet(object.instrumentId) ? String(object.instrumentId) : '',
};
},
toJSON(message: GetBondCouponsRequest): unknown {
const obj: any = {};
message.figi !== undefined && (obj.figi = message.figi);
message.from !== undefined && (obj.from = message.from.toISOString());
message.to !== undefined && (obj.to = message.to.toISOString());
message.instrumentId !== undefined && (obj.instrumentId = message.instrumentId);
return obj;
},
fromPartial(object: DeepPartial): GetBondCouponsRequest {
const message = createBaseGetBondCouponsRequest();
message.figi = object.figi ?? '';
message.from = object.from ?? undefined;
message.to = object.to ?? undefined;
message.instrumentId = object.instrumentId ?? '';
return message;
},
};
function createBaseGetBondCouponsResponse(): GetBondCouponsResponse {
return { events: [] };
}
export const GetBondCouponsResponse = {
encode(message: GetBondCouponsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
for (const v of message.events) {
Coupon.encode(v!, writer.uint32(10).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): GetBondCouponsResponse {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetBondCouponsResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.events.push(Coupon.decode(reader, reader.uint32()));
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): GetBondCouponsResponse {
return {
events: Array.isArray(object?.events) ? object.events.map((e: any) => Coupon.fromJSON(e)) : [],
};
},
toJSON(message: GetBondCouponsResponse): unknown {
const obj: any = {};
if (message.events) {
obj.events = message.events.map(e => (e ? Coupon.toJSON(e) : undefined));
} else {
obj.events = [];
}
return obj;
},
fromPartial(object: DeepPartial): GetBondCouponsResponse {
const message = createBaseGetBondCouponsResponse();
message.events = object.events?.map(e => Coupon.fromPartial(e)) || [];
return message;
},
};
function createBaseGetBondEventsRequest(): GetBondEventsRequest {
return { from: undefined, to: undefined, instrumentId: '', type: 0 };
}
export const GetBondEventsRequest = {
encode(message: GetBondEventsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.from !== undefined) {
Timestamp.encode(toTimestamp(message.from), writer.uint32(18).fork()).ldelim();
}
if (message.to !== undefined) {
Timestamp.encode(toTimestamp(message.to), writer.uint32(26).fork()).ldelim();
}
if (message.instrumentId !== '') {
writer.uint32(34).string(message.instrumentId);
}
if (message.type !== 0) {
writer.uint32(40).int32(message.type);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): GetBondEventsRequest {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetBondEventsRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 2:
message.from = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 3:
message.to = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 4:
message.instrumentId = reader.string();
break;
case 5:
message.type = reader.int32() as any;
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): GetBondEventsRequest {
return {
from: isSet(object.from) ? fromJsonTimestamp(object.from) : undefined,
to: isSet(object.to) ? fromJsonTimestamp(object.to) : undefined,
instrumentId: isSet(object.instrumentId) ? String(object.instrumentId) : '',
type: isSet(object.type) ? getBondEventsRequest_EventTypeFromJSON(object.type) : 0,
};
},
toJSON(message: GetBondEventsRequest): unknown {
const obj: any = {};
message.from !== undefined && (obj.from = message.from.toISOString());
message.to !== undefined && (obj.to = message.to.toISOString());
message.instrumentId !== undefined && (obj.instrumentId = message.instrumentId);
message.type !== undefined && (obj.type = getBondEventsRequest_EventTypeToJSON(message.type));
return obj;
},
fromPartial(object: DeepPartial): GetBondEventsRequest {
const message = createBaseGetBondEventsRequest();
message.from = object.from ?? undefined;
message.to = object.to ?? undefined;
message.instrumentId = object.instrumentId ?? '';
message.type = object.type ?? 0;
return message;
},
};
function createBaseGetBondEventsResponse(): GetBondEventsResponse {
return { events: [] };
}
export const GetBondEventsResponse = {
encode(message: GetBondEventsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
for (const v of message.events) {
GetBondEventsResponse_BondEvent.encode(v!, writer.uint32(10).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): GetBondEventsResponse {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetBondEventsResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.events.push(GetBondEventsResponse_BondEvent.decode(reader, reader.uint32()));
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): GetBondEventsResponse {
return {
events: Array.isArray(object?.events)
? object.events.map((e: any) => GetBondEventsResponse_BondEvent.fromJSON(e))
: [],
};
},
toJSON(message: GetBondEventsResponse): unknown {
const obj: any = {};
if (message.events) {
obj.events = message.events.map(e => (e ? GetBondEventsResponse_BondEvent.toJSON(e) : undefined));
} else {
obj.events = [];
}
return obj;
},
fromPartial(object: DeepPartial): GetBondEventsResponse {
const message = createBaseGetBondEventsResponse();
message.events = object.events?.map(e => GetBondEventsResponse_BondEvent.fromPartial(e)) || [];
return message;
},
};
function createBaseGetBondEventsResponse_BondEvent(): GetBondEventsResponse_BondEvent {
return {
instrumentId: '',
eventNumber: 0,
eventDate: undefined,
eventType: 0,
eventTotalVol: undefined,
fixDate: undefined,
rateDate: undefined,
defaultDate: undefined,
realPayDate: undefined,
payDate: undefined,
payOneBond: undefined,
moneyFlowVal: undefined,
execution: '',
operationType: '',
value: undefined,
note: '',
convertToFinToolId: '',
couponStartDate: undefined,
couponEndDate: undefined,
couponPeriod: 0,
couponInterestRate: undefined,
};
}
export const GetBondEventsResponse_BondEvent = {
encode(message: GetBondEventsResponse_BondEvent, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.instrumentId !== '') {
writer.uint32(18).string(message.instrumentId);
}
if (message.eventNumber !== 0) {
writer.uint32(24).int32(message.eventNumber);
}
if (message.eventDate !== undefined) {
Timestamp.encode(toTimestamp(message.eventDate), writer.uint32(34).fork()).ldelim();
}
if (message.eventType !== 0) {
writer.uint32(40).int32(message.eventType);
}
if (message.eventTotalVol !== undefined) {
Quotation.encode(message.eventTotalVol, writer.uint32(50).fork()).ldelim();
}
if (message.fixDate !== undefined) {
Timestamp.encode(toTimestamp(message.fixDate), writer.uint32(58).fork()).ldelim();
}
if (message.rateDate !== undefined) {
Timestamp.encode(toTimestamp(message.rateDate), writer.uint32(66).fork()).ldelim();
}
if (message.defaultDate !== undefined) {
Timestamp.encode(toTimestamp(message.defaultDate), writer.uint32(74).fork()).ldelim();
}
if (message.realPayDate !== undefined) {
Timestamp.encode(toTimestamp(message.realPayDate), writer.uint32(82).fork()).ldelim();
}
if (message.payDate !== undefined) {
Timestamp.encode(toTimestamp(message.payDate), writer.uint32(90).fork()).ldelim();
}
if (message.payOneBond !== undefined) {
MoneyValue.encode(message.payOneBond, writer.uint32(98).fork()).ldelim();
}
if (message.moneyFlowVal !== undefined) {
MoneyValue.encode(message.moneyFlowVal, writer.uint32(106).fork()).ldelim();
}
if (message.execution !== '') {
writer.uint32(114).string(message.execution);
}
if (message.operationType !== '') {
writer.uint32(122).string(message.operationType);
}
if (message.value !== undefined) {
Quotation.encode(message.value, writer.uint32(130).fork()).ldelim();
}
if (message.note !== '') {
writer.uint32(138).string(message.note);
}
if (message.convertToFinToolId !== '') {
writer.uint32(146).string(message.convertToFinToolId);
}
if (message.couponStartDate !== undefined) {
Timestamp.encode(toTimestamp(message.couponStartDate), writer.uint32(154).fork()).ldelim();
}
if (message.couponEndDate !== undefined) {
Timestamp.encode(toTimestamp(message.couponEndDate), writer.uint32(162).fork()).ldelim();
}
if (message.couponPeriod !== 0) {
writer.uint32(168).int32(message.couponPeriod);
}
if (message.couponInterestRate !== undefined) {
Quotation.encode(message.couponInterestRate, writer.uint32(178).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): GetBondEventsResponse_BondEvent {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGetBondEventsResponse_BondEvent();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 2:
message.instrumentId = reader.string();
break;
case 3:
message.eventNumber = reader.int32();
break;
case 4:
message.eventDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 5:
message.eventType = reader.int32() as any;
break;
case 6:
message.eventTotalVol = Quotation.decode(reader, reader.uint32());
break;
case 7:
message.fixDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 8:
message.rateDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 9:
message.defaultDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 10:
message.realPayDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 11:
message.payDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 12:
message.payOneBond = MoneyValue.decode(reader, reader.uint32());
break;
case 13:
message.moneyFlowVal = MoneyValue.decode(reader, reader.uint32());
break;
case 14:
message.execution = reader.string();
break;
case 15:
message.operationType = reader.string();
break;
case 16:
message.value = Quotation.decode(reader, reader.uint32());
break;
case 17:
message.note = reader.string();
break;
case 18:
message.convertToFinToolId = reader.string();
break;
case 19:
message.couponStartDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 20:
message.couponEndDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 21:
message.couponPeriod = reader.int32();
break;
case 22:
message.couponInterestRate = Quotation.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): GetBondEventsResponse_BondEvent {
return {
instrumentId: isSet(object.instrumentId) ? String(object.instrumentId) : '',
eventNumber: isSet(object.eventNumber) ? Number(object.eventNumber) : 0,
eventDate: isSet(object.eventDate) ? fromJsonTimestamp(object.eventDate) : undefined,
eventType: isSet(object.eventType) ? getBondEventsRequest_EventTypeFromJSON(object.eventType) : 0,
eventTotalVol: isSet(object.eventTotalVol) ? Quotation.fromJSON(object.eventTotalVol) : undefined,
fixDate: isSet(object.fixDate) ? fromJsonTimestamp(object.fixDate) : undefined,
rateDate: isSet(object.rateDate) ? fromJsonTimestamp(object.rateDate) : undefined,
defaultDate: isSet(object.defaultDate) ? fromJsonTimestamp(object.defaultDate) : undefined,
realPayDate: isSet(object.realPayDate) ? fromJsonTimestamp(object.realPayDate) : undefined,
payDate: isSet(object.payDate) ? fromJsonTimestamp(object.payDate) : undefined,
payOneBond: isSet(object.payOneBond) ? MoneyValue.fromJSON(object.payOneBond) : undefined,
moneyFlowVal: isSet(object.moneyFlowVal) ? MoneyValue.fromJSON(object.moneyFlowVal) : undefined,
execution: isSet(object.execution) ? String(object.execution) : '',
operationType: isSet(object.operationType) ? String(object.operationType) : '',
value: isSet(object.value) ? Quotation.fromJSON(object.value) : undefined,
note: isSet(object.note) ? String(object.note) : '',
convertToFinToolId: isSet(object.convertToFinToolId) ? String(object.convertToFinToolId) : '',
couponStartDate: isSet(object.couponStartDate) ? fromJsonTimestamp(object.couponStartDate) : undefined,
couponEndDate: isSet(object.couponEndDate) ? fromJsonTimestamp(object.couponEndDate) : undefined,
couponPeriod: isSet(object.couponPeriod) ? Number(object.couponPeriod) : 0,
couponInterestRate: isSet(object.couponInterestRate) ? Quotation.fromJSON(object.couponInterestRate) : undefined,
};
},
toJSON(message: GetBondEventsResponse_BondEvent): unknown {
const obj: any = {};
message.instrumentId !== undefined && (obj.instrumentId = message.instrumentId);
message.eventNumber !== undefined && (obj.eventNumber = Math.round(message.eventNumber));
message.eventDate !== undefined && (obj.eventDate = message.eventDate.toISOString());
message.eventType !== undefined && (obj.eventType = getBondEventsRequest_EventTypeToJSON(message.eventType));
message.eventTotalVol !== undefined &&
(obj.eventTotalVol = message.eventTotalVol ? Quotation.toJSON(message.eventTotalVol) : undefined);
message.fixDate !== undefined && (obj.fixDate = message.fixDate.toISOString());
message.rateDate !== undefined && (obj.rateDate = message.rateDate.toISOString());
message.defaultDate !== undefined && (obj.defaultDate = message.defaultDate.toISOString());
message.realPayDate !== undefined && (obj.realPayDate = message.realPayDate.toISOString());
message.payDate !== undefined && (obj.payDate = message.payDate.toISOString());
message.payOneBond !== undefined &&
(obj.payOneBond = message.payOneBond ? MoneyValue.toJSON(message.payOneBond) : undefined);
message.moneyFlowVal !== undefined &&
(obj.moneyFlowVal = message.moneyFlowVal ? MoneyValue.toJSON(message.moneyFlowVal) : undefined);
message.execution !== undefined && (obj.execution = message.execution);
message.operationType !== undefined && (obj.operationType = message.operationType);
message.value !== undefined && (obj.value = message.value ? Quotation.toJSON(message.value) : undefined);
message.note !== undefined && (obj.note = message.note);
message.convertToFinToolId !== undefined && (obj.convertToFinToolId = message.convertToFinToolId);
message.couponStartDate !== undefined && (obj.couponStartDate = message.couponStartDate.toISOString());
message.couponEndDate !== undefined && (obj.couponEndDate = message.couponEndDate.toISOString());
message.couponPeriod !== undefined && (obj.couponPeriod = Math.round(message.couponPeriod));
message.couponInterestRate !== undefined &&
(obj.couponInterestRate = message.couponInterestRate ? Quotation.toJSON(message.couponInterestRate) : undefined);
return obj;
},
fromPartial(object: DeepPartial): GetBondEventsResponse_BondEvent {
const message = createBaseGetBondEventsResponse_BondEvent();
message.instrumentId = object.instrumentId ?? '';
message.eventNumber = object.eventNumber ?? 0;
message.eventDate = object.eventDate ?? undefined;
message.eventType = object.eventType ?? 0;
message.eventTotalVol =
object.eventTotalVol !== undefined && object.eventTotalVol !== null
? Quotation.fromPartial(object.eventTotalVol)
: undefined;
message.fixDate = object.fixDate ?? undefined;
message.rateDate = object.rateDate ?? undefined;
message.defaultDate = object.defaultDate ?? undefined;
message.realPayDate = object.realPayDate ?? undefined;
message.payDate = object.payDate ?? undefined;
message.payOneBond =
object.payOneBond !== undefined && object.payOneBond !== null
? MoneyValue.fromPartial(object.payOneBond)
: undefined;
message.moneyFlowVal =
object.moneyFlowVal !== undefined && object.moneyFlowVal !== null
? MoneyValue.fromPartial(object.moneyFlowVal)
: undefined;
message.execution = object.execution ?? '';
message.operationType = object.operationType ?? '';
message.value =
object.value !== undefined && object.value !== null ? Quotation.fromPartial(object.value) : undefined;
message.note = object.note ?? '';
message.convertToFinToolId = object.convertToFinToolId ?? '';
message.couponStartDate = object.couponStartDate ?? undefined;
message.couponEndDate = object.couponEndDate ?? undefined;
message.couponPeriod = object.couponPeriod ?? 0;
message.couponInterestRate =
object.couponInterestRate !== undefined && object.couponInterestRate !== null
? Quotation.fromPartial(object.couponInterestRate)
: undefined;
return message;
},
};
function createBaseCoupon(): Coupon {
return {
figi: '',
couponDate: undefined,
couponNumber: 0,
fixDate: undefined,
payOneBond: undefined,
couponType: 0,
couponStartDate: undefined,
couponEndDate: undefined,
couponPeriod: 0,
};
}
export const Coupon = {
encode(message: Coupon, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.figi !== '') {
writer.uint32(10).string(message.figi);
}
if (message.couponDate !== undefined) {
Timestamp.encode(toTimestamp(message.couponDate), writer.uint32(18).fork()).ldelim();
}
if (message.couponNumber !== 0) {
writer.uint32(24).int64(message.couponNumber);
}
if (message.fixDate !== undefined) {
Timestamp.encode(toTimestamp(message.fixDate), writer.uint32(34).fork()).ldelim();
}
if (message.payOneBond !== undefined) {
MoneyValue.encode(message.payOneBond, writer.uint32(42).fork()).ldelim();
}
if (message.couponType !== 0) {
writer.uint32(48).int32(message.couponType);
}
if (message.couponStartDate !== undefined) {
Timestamp.encode(toTimestamp(message.couponStartDate), writer.uint32(58).fork()).ldelim();
}
if (message.couponEndDate !== undefined) {
Timestamp.encode(toTimestamp(message.couponEndDate), writer.uint32(66).fork()).ldelim();
}
if (message.couponPeriod !== 0) {
writer.uint32(72).int32(message.couponPeriod);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): Coupon {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCoupon();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.figi = reader.string();
break;
case 2:
message.couponDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 3:
message.couponNumber = longToNumber(reader.int64() as Long);
break;
case 4:
message.fixDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 5:
message.payOneBond = MoneyValue.decode(reader, reader.uint32());
break;
case 6:
message.couponType = reader.int32() as any;
break;
case 7:
message.couponStartDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 8:
message.couponEndDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 9:
message.couponPeriod = reader.int32();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): Coupon {
return {
figi: isSet(object.figi) ? String(object.figi) : '',
couponDate: isSet(object.couponDate) ? fromJsonTimestamp(object.couponDate) : undefined,
couponNumber: isSet(object.couponNumber) ? Number(object.couponNumber) : 0,
fixDate: isSet(object.fixDate) ? fromJsonTimestamp(object.fixDate) : undefined,
payOneBond: isSet(object.payOneBond) ? MoneyValue.fromJSON(object.payOneBond) : undefined,
couponType: isSet(object.couponType) ? couponTypeFromJSON(object.couponType) : 0,
couponStartDate: isSet(object.couponStartDate) ? fromJsonTimestamp(object.couponStartDate) : undefined,
couponEndDate: isSet(object.couponEndDate) ? fromJsonTimestamp(object.couponEndDate) : undefined,
couponPeriod: isSet(object.couponPeriod) ? Number(object.couponPeriod) : 0,
};
},
toJSON(message: Coupon): unknown {
const obj: any = {};
message.figi !== undefined && (obj.figi = message.figi);
message.couponDate !== undefined && (obj.couponDate = message.couponDate.toISOString());
message.couponNumber !== undefined && (obj.couponNumber = Math.round(message.couponNumber));
message.fixDate !== undefined && (obj.fixDate = message.fixDate.toISOString());
message.payOneBond !== undefined &&
(obj.payOneBond = message.payOneBond ? MoneyValue.toJSON(message.payOneBond) : undefined);
message.couponType !== undefined && (obj.couponType = couponTypeToJSON(message.couponType));
message.couponStartDate !== undefined && (obj.couponStartDate = message.couponStartDate.toISOString());
message.couponEndDate !== undefined && (obj.couponEndDate = message.couponEndDate.toISOString());
message.couponPeriod !== undefined && (obj.couponPeriod = Math.round(message.couponPeriod));
return obj;
},
fromPartial(object: DeepPartial): Coupon {
const message = createBaseCoupon();
message.figi = object.figi ?? '';
message.couponDate = object.couponDate ?? undefined;
message.couponNumber = object.couponNumber ?? 0;
message.fixDate = object.fixDate ?? undefined;
message.payOneBond =
object.payOneBond !== undefined && object.payOneBond !== null
? MoneyValue.fromPartial(object.payOneBond)
: undefined;
message.couponType = object.couponType ?? 0;
message.couponStartDate = object.couponStartDate ?? undefined;
message.couponEndDate = object.couponEndDate ?? undefined;
message.couponPeriod = object.couponPeriod ?? 0;
return message;
},
};
function createBaseCurrencyResponse(): CurrencyResponse {
return { instrument: undefined };
}
export const CurrencyResponse = {
encode(message: CurrencyResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.instrument !== undefined) {
Currency.encode(message.instrument, writer.uint32(10).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): CurrencyResponse {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCurrencyResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.instrument = Currency.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): CurrencyResponse {
return {
instrument: isSet(object.instrument) ? Currency.fromJSON(object.instrument) : undefined,
};
},
toJSON(message: CurrencyResponse): unknown {
const obj: any = {};
message.instrument !== undefined &&
(obj.instrument = message.instrument ? Currency.toJSON(message.instrument) : undefined);
return obj;
},
fromPartial(object: DeepPartial): CurrencyResponse {
const message = createBaseCurrencyResponse();
message.instrument =
object.instrument !== undefined && object.instrument !== null
? Currency.fromPartial(object.instrument)
: undefined;
return message;
},
};
function createBaseCurrenciesResponse(): CurrenciesResponse {
return { instruments: [] };
}
export const CurrenciesResponse = {
encode(message: CurrenciesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
for (const v of message.instruments) {
Currency.encode(v!, writer.uint32(10).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): CurrenciesResponse {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCurrenciesResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.instruments.push(Currency.decode(reader, reader.uint32()));
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): CurrenciesResponse {
return {
instruments: Array.isArray(object?.instruments) ? object.instruments.map((e: any) => Currency.fromJSON(e)) : [],
};
},
toJSON(message: CurrenciesResponse): unknown {
const obj: any = {};
if (message.instruments) {
obj.instruments = message.instruments.map(e => (e ? Currency.toJSON(e) : undefined));
} else {
obj.instruments = [];
}
return obj;
},
fromPartial(object: DeepPartial): CurrenciesResponse {
const message = createBaseCurrenciesResponse();
message.instruments = object.instruments?.map(e => Currency.fromPartial(e)) || [];
return message;
},
};
function createBaseEtfResponse(): EtfResponse {
return { instrument: undefined };
}
export const EtfResponse = {
encode(message: EtfResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.instrument !== undefined) {
Etf.encode(message.instrument, writer.uint32(10).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): EtfResponse {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseEtfResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.instrument = Etf.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): EtfResponse {
return {
instrument: isSet(object.instrument) ? Etf.fromJSON(object.instrument) : undefined,
};
},
toJSON(message: EtfResponse): unknown {
const obj: any = {};
message.instrument !== undefined &&
(obj.instrument = message.instrument ? Etf.toJSON(message.instrument) : undefined);
return obj;
},
fromPartial(object: DeepPartial): EtfResponse {
const message = createBaseEtfResponse();
message.instrument =
object.instrument !== undefined && object.instrument !== null ? Etf.fromPartial(object.instrument) : undefined;
return message;
},
};
function createBaseEtfsResponse(): EtfsResponse {
return { instruments: [] };
}
export const EtfsResponse = {
encode(message: EtfsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
for (const v of message.instruments) {
Etf.encode(v!, writer.uint32(10).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): EtfsResponse {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseEtfsResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.instruments.push(Etf.decode(reader, reader.uint32()));
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): EtfsResponse {
return {
instruments: Array.isArray(object?.instruments) ? object.instruments.map((e: any) => Etf.fromJSON(e)) : [],
};
},
toJSON(message: EtfsResponse): unknown {
const obj: any = {};
if (message.instruments) {
obj.instruments = message.instruments.map(e => (e ? Etf.toJSON(e) : undefined));
} else {
obj.instruments = [];
}
return obj;
},
fromPartial(object: DeepPartial): EtfsResponse {
const message = createBaseEtfsResponse();
message.instruments = object.instruments?.map(e => Etf.fromPartial(e)) || [];
return message;
},
};
function createBaseFutureResponse(): FutureResponse {
return { instrument: undefined };
}
export const FutureResponse = {
encode(message: FutureResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.instrument !== undefined) {
Future.encode(message.instrument, writer.uint32(10).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): FutureResponse {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseFutureResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.instrument = Future.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): FutureResponse {
return {
instrument: isSet(object.instrument) ? Future.fromJSON(object.instrument) : undefined,
};
},
toJSON(message: FutureResponse): unknown {
const obj: any = {};
message.instrument !== undefined &&
(obj.instrument = message.instrument ? Future.toJSON(message.instrument) : undefined);
return obj;
},
fromPartial(object: DeepPartial): FutureResponse {
const message = createBaseFutureResponse();
message.instrument =
object.instrument !== undefined && object.instrument !== null ? Future.fromPartial(object.instrument) : undefined;
return message;
},
};
function createBaseFuturesResponse(): FuturesResponse {
return { instruments: [] };
}
export const FuturesResponse = {
encode(message: FuturesResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
for (const v of message.instruments) {
Future.encode(v!, writer.uint32(10).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): FuturesResponse {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseFuturesResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.instruments.push(Future.decode(reader, reader.uint32()));
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): FuturesResponse {
return {
instruments: Array.isArray(object?.instruments) ? object.instruments.map((e: any) => Future.fromJSON(e)) : [],
};
},
toJSON(message: FuturesResponse): unknown {
const obj: any = {};
if (message.instruments) {
obj.instruments = message.instruments.map(e => (e ? Future.toJSON(e) : undefined));
} else {
obj.instruments = [];
}
return obj;
},
fromPartial(object: DeepPartial): FuturesResponse {
const message = createBaseFuturesResponse();
message.instruments = object.instruments?.map(e => Future.fromPartial(e)) || [];
return message;
},
};
function createBaseOptionResponse(): OptionResponse {
return { instrument: undefined };
}
export const OptionResponse = {
encode(message: OptionResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.instrument !== undefined) {
Option.encode(message.instrument, writer.uint32(10).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): OptionResponse {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseOptionResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.instrument = Option.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): OptionResponse {
return {
instrument: isSet(object.instrument) ? Option.fromJSON(object.instrument) : undefined,
};
},
toJSON(message: OptionResponse): unknown {
const obj: any = {};
message.instrument !== undefined &&
(obj.instrument = message.instrument ? Option.toJSON(message.instrument) : undefined);
return obj;
},
fromPartial(object: DeepPartial): OptionResponse {
const message = createBaseOptionResponse();
message.instrument =
object.instrument !== undefined && object.instrument !== null ? Option.fromPartial(object.instrument) : undefined;
return message;
},
};
function createBaseOptionsResponse(): OptionsResponse {
return { instruments: [] };
}
export const OptionsResponse = {
encode(message: OptionsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
for (const v of message.instruments) {
Option.encode(v!, writer.uint32(10).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): OptionsResponse {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseOptionsResponse();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.instruments.push(Option.decode(reader, reader.uint32()));
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): OptionsResponse {
return {
instruments: Array.isArray(object?.instruments) ? object.instruments.map((e: any) => Option.fromJSON(e)) : [],
};
},
toJSON(message: OptionsResponse): unknown {
const obj: any = {};
if (message.instruments) {
obj.instruments = message.instruments.map(e => (e ? Option.toJSON(e) : undefined));
} else {
obj.instruments = [];
}
return obj;
},
fromPartial(object: DeepPartial): OptionsResponse {
const message = createBaseOptionsResponse();
message.instruments = object.instruments?.map(e => Option.fromPartial(e)) || [];
return message;
},
};
function createBaseOption(): Option {
return {
uid: '',
positionUid: '',
ticker: '',
classCode: '',
basicAssetPositionUid: '',
tradingStatus: 0,
realExchange: 0,
direction: 0,
paymentType: 0,
style: 0,
settlementType: 0,
name: '',
currency: '',
settlementCurrency: '',
assetType: '',
basicAsset: '',
exchange: '',
countryOfRisk: '',
countryOfRiskName: '',
sector: '',
brand: undefined,
lot: 0,
basicAssetSize: undefined,
klong: undefined,
kshort: undefined,
dlong: undefined,
dshort: undefined,
dlongMin: undefined,
dshortMin: undefined,
minPriceIncrement: undefined,
strikePrice: undefined,
dlongClient: undefined,
dshortClient: undefined,
expirationDate: undefined,
firstTradeDate: undefined,
lastTradeDate: undefined,
first1minCandleDate: undefined,
first1dayCandleDate: undefined,
shortEnabledFlag: false,
forIisFlag: false,
otcFlag: false,
buyAvailableFlag: false,
sellAvailableFlag: false,
forQualInvestorFlag: false,
weekendFlag: false,
blockedTcaFlag: false,
apiTradeAvailableFlag: false,
requiredTests: [],
};
}
export const Option = {
encode(message: Option, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.uid !== '') {
writer.uint32(10).string(message.uid);
}
if (message.positionUid !== '') {
writer.uint32(18).string(message.positionUid);
}
if (message.ticker !== '') {
writer.uint32(26).string(message.ticker);
}
if (message.classCode !== '') {
writer.uint32(34).string(message.classCode);
}
if (message.basicAssetPositionUid !== '') {
writer.uint32(42).string(message.basicAssetPositionUid);
}
if (message.tradingStatus !== 0) {
writer.uint32(168).int32(message.tradingStatus);
}
if (message.realExchange !== 0) {
writer.uint32(248).int32(message.realExchange);
}
if (message.direction !== 0) {
writer.uint32(328).int32(message.direction);
}
if (message.paymentType !== 0) {
writer.uint32(336).int32(message.paymentType);
}
if (message.style !== 0) {
writer.uint32(344).int32(message.style);
}
if (message.settlementType !== 0) {
writer.uint32(352).int32(message.settlementType);
}
if (message.name !== '') {
writer.uint32(810).string(message.name);
}
if (message.currency !== '') {
writer.uint32(890).string(message.currency);
}
if (message.settlementCurrency !== '') {
writer.uint32(898).string(message.settlementCurrency);
}
if (message.assetType !== '') {
writer.uint32(1050).string(message.assetType);
}
if (message.basicAsset !== '') {
writer.uint32(1058).string(message.basicAsset);
}
if (message.exchange !== '') {
writer.uint32(1130).string(message.exchange);
}
if (message.countryOfRisk !== '') {
writer.uint32(1210).string(message.countryOfRisk);
}
if (message.countryOfRiskName !== '') {
writer.uint32(1218).string(message.countryOfRiskName);
}
if (message.sector !== '') {
writer.uint32(1290).string(message.sector);
}
if (message.brand !== undefined) {
BrandData.encode(message.brand, writer.uint32(1298).fork()).ldelim();
}
if (message.lot !== 0) {
writer.uint32(1608).int32(message.lot);
}
if (message.basicAssetSize !== undefined) {
Quotation.encode(message.basicAssetSize, writer.uint32(1690).fork()).ldelim();
}
if (message.klong !== undefined) {
Quotation.encode(message.klong, writer.uint32(1770).fork()).ldelim();
}
if (message.kshort !== undefined) {
Quotation.encode(message.kshort, writer.uint32(1778).fork()).ldelim();
}
if (message.dlong !== undefined) {
Quotation.encode(message.dlong, writer.uint32(1786).fork()).ldelim();
}
if (message.dshort !== undefined) {
Quotation.encode(message.dshort, writer.uint32(1794).fork()).ldelim();
}
if (message.dlongMin !== undefined) {
Quotation.encode(message.dlongMin, writer.uint32(1802).fork()).ldelim();
}
if (message.dshortMin !== undefined) {
Quotation.encode(message.dshortMin, writer.uint32(1810).fork()).ldelim();
}
if (message.minPriceIncrement !== undefined) {
Quotation.encode(message.minPriceIncrement, writer.uint32(1850).fork()).ldelim();
}
if (message.strikePrice !== undefined) {
MoneyValue.encode(message.strikePrice, writer.uint32(1930).fork()).ldelim();
}
if (message.dlongClient !== undefined) {
Quotation.encode(message.dlongClient, writer.uint32(2322).fork()).ldelim();
}
if (message.dshortClient !== undefined) {
Quotation.encode(message.dshortClient, writer.uint32(2330).fork()).ldelim();
}
if (message.expirationDate !== undefined) {
Timestamp.encode(toTimestamp(message.expirationDate), writer.uint32(2410).fork()).ldelim();
}
if (message.firstTradeDate !== undefined) {
Timestamp.encode(toTimestamp(message.firstTradeDate), writer.uint32(2490).fork()).ldelim();
}
if (message.lastTradeDate !== undefined) {
Timestamp.encode(toTimestamp(message.lastTradeDate), writer.uint32(2498).fork()).ldelim();
}
if (message.first1minCandleDate !== undefined) {
Timestamp.encode(toTimestamp(message.first1minCandleDate), writer.uint32(2570).fork()).ldelim();
}
if (message.first1dayCandleDate !== undefined) {
Timestamp.encode(toTimestamp(message.first1dayCandleDate), writer.uint32(2578).fork()).ldelim();
}
if (message.shortEnabledFlag === true) {
writer.uint32(3208).bool(message.shortEnabledFlag);
}
if (message.forIisFlag === true) {
writer.uint32(3216).bool(message.forIisFlag);
}
if (message.otcFlag === true) {
writer.uint32(3224).bool(message.otcFlag);
}
if (message.buyAvailableFlag === true) {
writer.uint32(3232).bool(message.buyAvailableFlag);
}
if (message.sellAvailableFlag === true) {
writer.uint32(3240).bool(message.sellAvailableFlag);
}
if (message.forQualInvestorFlag === true) {
writer.uint32(3248).bool(message.forQualInvestorFlag);
}
if (message.weekendFlag === true) {
writer.uint32(3256).bool(message.weekendFlag);
}
if (message.blockedTcaFlag === true) {
writer.uint32(3264).bool(message.blockedTcaFlag);
}
if (message.apiTradeAvailableFlag === true) {
writer.uint32(3272).bool(message.apiTradeAvailableFlag);
}
for (const v of message.requiredTests) {
writer.uint32(3282).string(v!);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): Option {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseOption();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.uid = reader.string();
break;
case 2:
message.positionUid = reader.string();
break;
case 3:
message.ticker = reader.string();
break;
case 4:
message.classCode = reader.string();
break;
case 5:
message.basicAssetPositionUid = reader.string();
break;
case 21:
message.tradingStatus = reader.int32() as any;
break;
case 31:
message.realExchange = reader.int32() as any;
break;
case 41:
message.direction = reader.int32() as any;
break;
case 42:
message.paymentType = reader.int32() as any;
break;
case 43:
message.style = reader.int32() as any;
break;
case 44:
message.settlementType = reader.int32() as any;
break;
case 101:
message.name = reader.string();
break;
case 111:
message.currency = reader.string();
break;
case 112:
message.settlementCurrency = reader.string();
break;
case 131:
message.assetType = reader.string();
break;
case 132:
message.basicAsset = reader.string();
break;
case 141:
message.exchange = reader.string();
break;
case 151:
message.countryOfRisk = reader.string();
break;
case 152:
message.countryOfRiskName = reader.string();
break;
case 161:
message.sector = reader.string();
break;
case 162:
message.brand = BrandData.decode(reader, reader.uint32());
break;
case 201:
message.lot = reader.int32();
break;
case 211:
message.basicAssetSize = Quotation.decode(reader, reader.uint32());
break;
case 221:
message.klong = Quotation.decode(reader, reader.uint32());
break;
case 222:
message.kshort = Quotation.decode(reader, reader.uint32());
break;
case 223:
message.dlong = Quotation.decode(reader, reader.uint32());
break;
case 224:
message.dshort = Quotation.decode(reader, reader.uint32());
break;
case 225:
message.dlongMin = Quotation.decode(reader, reader.uint32());
break;
case 226:
message.dshortMin = Quotation.decode(reader, reader.uint32());
break;
case 231:
message.minPriceIncrement = Quotation.decode(reader, reader.uint32());
break;
case 241:
message.strikePrice = MoneyValue.decode(reader, reader.uint32());
break;
case 290:
message.dlongClient = Quotation.decode(reader, reader.uint32());
break;
case 291:
message.dshortClient = Quotation.decode(reader, reader.uint32());
break;
case 301:
message.expirationDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 311:
message.firstTradeDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 312:
message.lastTradeDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 321:
message.first1minCandleDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 322:
message.first1dayCandleDate = fromTimestamp(Timestamp.decode(reader, reader.uint32()));
break;
case 401:
message.shortEnabledFlag = reader.bool();
break;
case 402:
message.forIisFlag = reader.bool();
break;
case 403:
message.otcFlag = reader.bool();
break;
case 404:
message.buyAvailableFlag = reader.bool();
break;
case 405:
message.sellAvailableFlag = reader.bool();
break;
case 406:
message.forQualInvestorFlag = reader.bool();
break;
case 407:
message.weekendFlag = reader.bool();
break;
case 408:
message.blockedTcaFlag = reader.bool();
break;
case 409:
message.apiTradeAvailableFlag = reader.bool();
break;
case 410:
message.requiredTests.push(reader.string());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): Option {
return {
uid: isSet(object.uid) ? String(object.uid) : '',
positionUid: isSet(object.positionUid) ? String(object.positionUid) : '',
ticker: isSet(object.ticker) ? String(object.ticker) : '',
classCode: isSet(object.classCode) ? String(object.classCode) : '',
basicAssetPositionUid: isSet(object.basicAssetPositionUid) ? String(object.basicAssetPositionUid) : '',
tradingStatus: isSet(object.tradingStatus) ? securityTradingStatusFromJSON(object.tradingStatus) : 0,
realExchange: isSet(object.realExchange) ? realExchangeFromJSON(object.realExchange) : 0,
direction: isSet(object.direction) ? optionDirectionFromJSON(object.direction) : 0,
paymentType: isSet(object.paymentType) ? optionPaymentTypeFromJSON(object.paymentType) : 0,
style: isSet(object.style) ? optionStyleFromJSON(object.style) : 0,
settlementType: isSet(object.settlementType) ? optionSettlementTypeFromJSON(object.settlementType) : 0,
name: isSet(object.name) ? String(object.name) : '',
currency: isSet(object.currency) ? String(object.currency) : '',
settlementCurrency: isSet(object.settlementCurrency) ? String(object.settlementCurrency) : '',
assetType: isSet(object.assetType) ? String(object.assetType) : '',
basicAsset: isSet(object.basicAsset) ? String(object.basicAsset) : '',
exchange: isSet(object.exchange) ? String(object.exchange) : '',
countryOfRisk: isSet(object.countryOfRisk) ? String(object.countryOfRisk) : '',
countryOfRiskName: isSet(object.countryOfRiskName) ? String(object.countryOfRiskName) : '',
sector: isSet(object.sector) ? String(object.sector) : '',
brand: isSet(object.brand) ? BrandData.fromJSON(object.brand) : undefined,
lot: isSet(object.lot) ? Number(object.lot) : 0,
basicAssetSize: isSet(object.basicAssetSize) ? Quotation.fromJSON(object.basicAssetSize) : undefined,
klong: isSet(object.klong) ? Quotation.fromJSON(object.klong) : undefined,
kshort: isSet(object.kshort) ? Quotation.fromJSON(object.kshort) : undefined,
dlong: isSet(object.dlong) ? Quotation.fromJSON(object.dlong) : undefined,
dshort: isSet(object.dshort) ? Quotation.fromJSON(object.dshort) : undefined,
dlongMin: isSet(object.dlongMin) ? Quotation.fromJSON(object.dlongMin) : undefined,
dshortMin: isSet(object.dshortMin) ? Quotation.fromJSON(object.dshortMin) : undefined,
minPriceIncrement: isSet(object.minPriceIncrement) ? Quotation.fromJSON(object.minPriceIncrement) : undefined,
strikePrice: isSet(object.strikePrice) ? MoneyValue.fromJSON(object.strikePrice) : undefined,
dlongClient: isSet(object.dlongClient) ? Quotation.fromJSON(object.dlongClient) : undefined,
dshortClient: isSet(object.dshortClient) ? Quotation.fromJSON(object.dshortClient) : undefined,
expirationDate: isSet(object.expirationDate) ? fromJsonTimestamp(object.expirationDate) : undefined,
firstTradeDate: isSet(object.firstTradeDate) ? fromJsonTimestamp(object.firstTradeDate) : undefined,
lastTradeDate: isSet(object.lastTradeDate) ? fromJsonTimestamp(object.lastTradeDate) : undefined,
first1minCandleDate: isSet(object.first1minCandleDate)
? fromJsonTimestamp(object.first1minCandleDate)
: undefined,
first1dayCandleDate: isSet(object.first1dayCandleDate)
? fromJsonTimestamp(object.first1dayCandleDate)
: undefined,
shortEnabledFlag: isSet(object.shortEnabledFlag) ? Boolean(object.shortEnabledFlag) : false,
forIisFlag: isSet(object.forIisFlag) ? Boolean(object.forIisFlag) : false,
otcFlag: isSet(object.otcFlag) ? Boolean(object.otcFlag) : false,
buyAvailableFlag: isSet(object.buyAvailableFlag) ? Boolean(object.buyAvailableFlag) : false,
sellAvailableFlag: isSet(object.sellAvailableFlag) ? Boolean(object.sellAvailableFlag) : false,
forQualInvestorFlag: isSet(object.forQualInvestorFlag) ? Boolean(object.forQualInvestorFlag) : false,
weekendFlag: isSet(object.weekendFlag) ? Boolean(object.weekendFlag) : false,
blockedTcaFlag: isSet(object.blockedTcaFlag) ? Boolean(object.blockedTcaFlag) : false,
apiTradeAvailableFlag: isSet(object.apiTradeAvailableFlag) ? Boolean(object.apiTradeAvailableFlag) : false,
requiredTests: Array.isArray(object?.requiredTests) ? object.requiredTests.map((e: any) => String(e)) : [],
};
},
toJSON(message: Option): unknown {
const obj: any = {};
message.uid !== undefined && (obj.uid = message.uid);
message.positionUid !== undefined && (obj.positionUid = message.positionUid);
message.ticker !== undefined && (obj.ticker = message.ticker);
message.classCode !== undefined && (obj.classCode = message.classCode);
message.basicAssetPositionUid !== undefined && (obj.basicAssetPositionUid = message.basicAssetPositionUid);
message.tradingStatus !== undefined && (obj.tradingStatus = securityTradingStatusToJSON(message.tradingStatus));
message.realExchange !== undefined && (obj.realExchange = realExchangeToJSON(message.realExchange));
message.direction !== undefined && (obj.direction = optionDirectionToJSON(message.direction));
message.paymentType !== undefined && (obj.paymentType = optionPaymentTypeToJSON(message.paymentType));
message.style !== undefined && (obj.style = optionStyleToJSON(message.style));
message.settlementType !== undefined && (obj.settlementType = optionSettlementTypeToJSON(message.settlementType));
message.name !== undefined && (obj.name = message.name);
message.currency !== undefined && (obj.currency = message.currency);
message.settlementCurrency !== undefined && (obj.settlementCurrency = message.settlementCurrency);
message.assetType !== undefined && (obj.assetType = message.assetType);
message.basicAsset !== undefined && (obj.basicAsset = message.basicAsset);
message.exchange !== undefined && (obj.exchange = message.exchange);
message.countryOfRisk !== undefined && (obj.countryOfRisk = message.countryOfRisk);
message.countryOfRiskName !== undefined && (obj.countryOfRiskName = message.countryOfRiskName);
message.sector !== undefined && (obj.sector = message.sector);
message.brand !== undefined && (obj.brand = message.brand ? BrandData.toJSON(message.brand) : undefined);
message.lot !== undefined && (obj.lot = Math.round(message.lot));
message.basicAssetSize !== undefined &&
(obj.basicAssetSize = message.basicAssetSize ? Quotation.toJSON(message.basicAssetSize) : undefined);
message.klong !== undefined && (obj.klong = message.klong ? Quotation.toJSON(message.klong) : undefined);
message.kshort !== undefined && (obj.kshort = message.kshort ? Quotation.toJSON(message.kshort) : undefined);
message.dlong !== undefined && (obj.dlong = message.dlong ? Quotation.toJSON(message.dlong) : undefined);
message.dshort !== undefined && (obj.dshort = message.dshort ? Quotation.toJSON(message.dshort) : undefined);
message.dlongMin !== undefined &&
(obj.dlongMin = message.dlongMin ? Quotation.toJSON(message.dlongMin) : undefined);
message.dshortMin !== undefined &&
(obj.dshortMin = message.dshortMin ? Quotation.toJSON(message.dshortMin) : undefined);
message.minPriceIncrement !== undefined &&
(obj.minPriceIncrement = message.minPriceIncrement ? Quotation.toJSON(message.minPriceIncrement) : undefined);
message.strikePrice !== undefined &&
(obj.strikePrice = message.strikePrice ? MoneyValue.toJSON(message.strikePrice) : undefined);
message.dlongClient !== undefined &&
(obj.dlongClient = message.dlongClient ? Quotation.toJSON(message.dlongClient) : undefined);
message.dshortClient !== undefined &&
(obj.dshortClient = message.dshortClient ? Quotation.toJSON(message.dshortClient) : undefined);
message.expirationDate !== undefined && (obj.expirationDate = message.expirationDate.toISOString());
message.firstTradeDate !== undefined && (obj.firstTradeDate = message.firstTradeDate.toISOString());
message.lastTradeDate !== undefined && (obj.lastTradeDate = message.lastTradeDate.toISOString());
message.first1minCandleDate !== undefined && (obj.first1minCandleDate = message.first1minCandleDate.toISOString());
message.first1dayCandleDate !== undefined && (obj.first1dayCandleDate = message.first1dayCandleDate.toISOString());
message.shortEnabledFlag !== undefined && (obj.shortEnabledFlag = message.shortEnabledFlag);
message.forIisFlag !== undefined && (obj.forIisFlag = message.forIisFlag);
message.otcFlag !== undefined && (obj.otcFlag = message.otcFlag);
message.buyAvailableFlag !== undefined && (obj.buyAvailableFlag = message.buyAvailableFlag);
message.sellAvailableFlag !== undefined && (obj.sellAvailableFlag = message.sellAvailableFlag);
message.forQualInvestorFlag !== undefined && (obj.forQualInvestorFlag = message.forQualInvestorFlag);
message.weekendFlag !== undefined && (obj.weekendFlag = message.weekendFlag);
message.blockedTcaFlag !== undefined && (obj.blockedTcaFlag = message.blockedTcaFlag);
message.apiTradeAvailableFlag !== undefined && (obj.apiTradeAvailableFlag = message.apiTradeAvailableFlag);
if (message.requiredTests) {
obj.requiredTests = message.requiredTests.map(e => e);
} else {
obj.requiredTests = [];
}
return obj;
},
fromPartial(object: DeepPartial