# pylint:disable=too-many-lines # pylint:disable=too-many-instance-attributes from dataclasses import dataclass from datetime import datetime from typing import List, Optional, SupportsAbs from . import _grpc_helpers class SecurityTradingStatus(_grpc_helpers.Enum): SECURITY_TRADING_STATUS_UNSPECIFIED = 0 SECURITY_TRADING_STATUS_NOT_AVAILABLE_FOR_TRADING = 1 SECURITY_TRADING_STATUS_OPENING_PERIOD = 2 SECURITY_TRADING_STATUS_CLOSING_PERIOD = 3 SECURITY_TRADING_STATUS_BREAK_IN_TRADING = 4 SECURITY_TRADING_STATUS_NORMAL_TRADING = 5 SECURITY_TRADING_STATUS_CLOSING_AUCTION = 6 SECURITY_TRADING_STATUS_DARK_POOL_AUCTION = 7 SECURITY_TRADING_STATUS_DISCRETE_AUCTION = 8 SECURITY_TRADING_STATUS_OPENING_AUCTION_PERIOD = 9 SECURITY_TRADING_STATUS_TRADING_AT_CLOSING_AUCTION_PRICE = 10 SECURITY_TRADING_STATUS_SESSION_ASSIGNED = 11 SECURITY_TRADING_STATUS_SESSION_CLOSE = 12 SECURITY_TRADING_STATUS_SESSION_OPEN = 13 SECURITY_TRADING_STATUS_DEALER_NORMAL_TRADING = 14 SECURITY_TRADING_STATUS_DEALER_BREAK_IN_TRADING = 15 SECURITY_TRADING_STATUS_DEALER_NOT_AVAILABLE_FOR_TRADING = 16 SECURITY_TRADING_STATUS_STABILIZATION_AUCTION = 17 class InstrumentIdType(_grpc_helpers.Enum): INSTRUMENT_ID_UNSPECIFIED = 0 INSTRUMENT_ID_TYPE_FIGI = 1 INSTRUMENT_ID_TYPE_TICKER = 2 INSTRUMENT_ID_TYPE_UID = 3 INSTRUMENT_ID_TYPE_POSITION_UID = 4 INSTRUMENT_ID_TYPE_ID = 5 class InstrumentStatus(_grpc_helpers.Enum): INSTRUMENT_STATUS_UNSPECIFIED = 0 INSTRUMENT_STATUS_BASE = 1 INSTRUMENT_STATUS_ALL = 2 class ShareType(_grpc_helpers.Enum): SHARE_TYPE_UNSPECIFIED = 0 SHARE_TYPE_COMMON = 1 SHARE_TYPE_PREFERRED = 2 SHARE_TYPE_ADR = 3 SHARE_TYPE_GDR = 4 SHARE_TYPE_MLP = 5 SHARE_TYPE_NY_REG_SHRS = 6 SHARE_TYPE_CLOSED_END_FUND = 7 SHARE_TYPE_REIT = 8 class SubscriptionAction(_grpc_helpers.Enum): SUBSCRIPTION_ACTION_UNSPECIFIED = 0 SUBSCRIPTION_ACTION_SUBSCRIBE = 1 SUBSCRIPTION_ACTION_UNSUBSCRIBE = 2 class SubscriptionInterval(_grpc_helpers.Enum): SUBSCRIPTION_INTERVAL_UNSPECIFIED = 0 SUBSCRIPTION_INTERVAL_ONE_MINUTE = 1 SUBSCRIPTION_INTERVAL_FIVE_MINUTES = 2 SUBSCRIPTION_INTERVAL_FIFTEEN_MINUTES = 3 SUBSCRIPTION_INTERVAL_ONE_HOUR = 4 SUBSCRIPTION_INTERVAL_ONE_DAY = 5 SUBSCRIPTION_INTERVAL_2_MIN = 6 SUBSCRIPTION_INTERVAL_3_MIN = 7 SUBSCRIPTION_INTERVAL_10_MIN = 8 SUBSCRIPTION_INTERVAL_30_MIN = 9 SUBSCRIPTION_INTERVAL_2_HOUR = 10 SUBSCRIPTION_INTERVAL_4_HOUR = 11 SUBSCRIPTION_INTERVAL_WEEK = 12 SUBSCRIPTION_INTERVAL_MONTH = 13 class SubscriptionStatus(_grpc_helpers.Enum): SUBSCRIPTION_STATUS_UNSPECIFIED = 0 SUBSCRIPTION_STATUS_SUCCESS = 1 SUBSCRIPTION_STATUS_INSTRUMENT_NOT_FOUND = 2 SUBSCRIPTION_STATUS_SUBSCRIPTION_ACTION_IS_INVALID = 3 SUBSCRIPTION_STATUS_DEPTH_IS_INVALID = 4 SUBSCRIPTION_STATUS_INTERVAL_IS_INVALID = 5 SUBSCRIPTION_STATUS_LIMIT_IS_EXCEEDED = 6 SUBSCRIPTION_STATUS_INTERNAL_ERROR = 7 SUBSCRIPTION_STATUS_TOO_MANY_REQUESTS = 8 SUBSCRIPTION_STATUS_SUBSCRIPTION_NOT_FOUND = 9 SUBSCRIPTION_STATUS_SOURCE_IS_INVALID = 10 class TradeDirection(_grpc_helpers.Enum): TRADE_DIRECTION_UNSPECIFIED = 0 TRADE_DIRECTION_BUY = 1 TRADE_DIRECTION_SELL = 2 class CandleInterval(_grpc_helpers.Enum): CANDLE_INTERVAL_UNSPECIFIED = 0 CANDLE_INTERVAL_5_SEC = 14 CANDLE_INTERVAL_10_SEC = 15 CANDLE_INTERVAL_30_SEC = 16 CANDLE_INTERVAL_1_MIN = 1 CANDLE_INTERVAL_2_MIN = 6 CANDLE_INTERVAL_3_MIN = 7 CANDLE_INTERVAL_5_MIN = 2 CANDLE_INTERVAL_10_MIN = 8 CANDLE_INTERVAL_15_MIN = 3 CANDLE_INTERVAL_30_MIN = 9 CANDLE_INTERVAL_HOUR = 4 CANDLE_INTERVAL_2_HOUR = 10 CANDLE_INTERVAL_4_HOUR = 11 CANDLE_INTERVAL_DAY = 5 CANDLE_INTERVAL_WEEK = 12 CANDLE_INTERVAL_MONTH = 13 class CandleSource(_grpc_helpers.Enum): CANDLE_SOURCE_UNSPECIFIED = 0 CANDLE_SOURCE_EXCHANGE = 1 CANDLE_SOURCE_DEALER_WEEKEND = 2 CANDLE_SOURCE_INCLUDE_WEEKEND = 3 class OperationState(_grpc_helpers.Enum): OPERATION_STATE_UNSPECIFIED = 0 OPERATION_STATE_EXECUTED = 1 OPERATION_STATE_CANCELED = 2 OPERATION_STATE_PROGRESS = 3 class OrderDirection(_grpc_helpers.Enum): ORDER_DIRECTION_UNSPECIFIED = 0 ORDER_DIRECTION_BUY = 1 ORDER_DIRECTION_SELL = 2 class OrderType(_grpc_helpers.Enum): ORDER_TYPE_UNSPECIFIED = 0 ORDER_TYPE_LIMIT = 1 ORDER_TYPE_MARKET = 2 ORDER_TYPE_BESTPRICE = 3 class OrderExecutionReportStatus(_grpc_helpers.Enum): EXECUTION_REPORT_STATUS_UNSPECIFIED = 0 EXECUTION_REPORT_STATUS_FILL = 1 EXECUTION_REPORT_STATUS_REJECTED = 2 EXECUTION_REPORT_STATUS_CANCELLED = 3 EXECUTION_REPORT_STATUS_NEW = 4 EXECUTION_REPORT_STATUS_PARTIALLYFILL = 5 class AccountType(_grpc_helpers.Enum): ACCOUNT_TYPE_UNSPECIFIED = 0 ACCOUNT_TYPE_TINKOFF = 1 ACCOUNT_TYPE_TINKOFF_IIS = 2 ACCOUNT_TYPE_INVEST_BOX = 3 ACCOUNT_TYPE_INVEST_FUND = 4 ACCOUNT_TYPE_DEBIT = 5 ACCOUNT_TYPE_SAVING = 6 ACCOUNT_TYPE_DFA = 7 class AccountStatus(_grpc_helpers.Enum): ACCOUNT_STATUS_UNSPECIFIED = 0 ACCOUNT_STATUS_NEW = 1 ACCOUNT_STATUS_OPEN = 2 ACCOUNT_STATUS_CLOSED = 3 class StopOrderDirection(_grpc_helpers.Enum): STOP_ORDER_DIRECTION_UNSPECIFIED = 0 STOP_ORDER_DIRECTION_BUY = 1 STOP_ORDER_DIRECTION_SELL = 2 class StopOrderExpirationType(_grpc_helpers.Enum): STOP_ORDER_EXPIRATION_TYPE_UNSPECIFIED = 0 STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_CANCEL = 1 STOP_ORDER_EXPIRATION_TYPE_GOOD_TILL_DATE = 2 class StopOrderType(_grpc_helpers.Enum): STOP_ORDER_TYPE_UNSPECIFIED = 0 STOP_ORDER_TYPE_TAKE_PROFIT = 1 STOP_ORDER_TYPE_STOP_LOSS = 2 STOP_ORDER_TYPE_STOP_LIMIT = 3 class OperationType(_grpc_helpers.Enum): OPERATION_TYPE_UNSPECIFIED = 0 OPERATION_TYPE_INPUT = 1 OPERATION_TYPE_BOND_TAX = 2 OPERATION_TYPE_OUTPUT_SECURITIES = 3 OPERATION_TYPE_OVERNIGHT = 4 OPERATION_TYPE_TAX = 5 OPERATION_TYPE_BOND_REPAYMENT_FULL = 6 OPERATION_TYPE_SELL_CARD = 7 OPERATION_TYPE_DIVIDEND_TAX = 8 OPERATION_TYPE_OUTPUT = 9 OPERATION_TYPE_BOND_REPAYMENT = 10 OPERATION_TYPE_TAX_CORRECTION = 11 OPERATION_TYPE_SERVICE_FEE = 12 OPERATION_TYPE_BENEFIT_TAX = 13 OPERATION_TYPE_MARGIN_FEE = 14 OPERATION_TYPE_BUY = 15 OPERATION_TYPE_BUY_CARD = 16 OPERATION_TYPE_INPUT_SECURITIES = 17 OPERATION_TYPE_SELL_MARGIN = 18 OPERATION_TYPE_BROKER_FEE = 19 OPERATION_TYPE_BUY_MARGIN = 20 OPERATION_TYPE_DIVIDEND = 21 OPERATION_TYPE_SELL = 22 OPERATION_TYPE_COUPON = 23 OPERATION_TYPE_SUCCESS_FEE = 24 OPERATION_TYPE_DIVIDEND_TRANSFER = 25 OPERATION_TYPE_ACCRUING_VARMARGIN = 26 OPERATION_TYPE_WRITING_OFF_VARMARGIN = 27 OPERATION_TYPE_DELIVERY_BUY = 28 OPERATION_TYPE_DELIVERY_SELL = 29 OPERATION_TYPE_TRACK_MFEE = 30 OPERATION_TYPE_TRACK_PFEE = 31 OPERATION_TYPE_TAX_PROGRESSIVE = 32 OPERATION_TYPE_BOND_TAX_PROGRESSIVE = 33 OPERATION_TYPE_DIVIDEND_TAX_PROGRESSIVE = 34 OPERATION_TYPE_BENEFIT_TAX_PROGRESSIVE = 35 OPERATION_TYPE_TAX_CORRECTION_PROGRESSIVE = 36 OPERATION_TYPE_TAX_REPO_PROGRESSIVE = 37 OPERATION_TYPE_TAX_REPO = 38 OPERATION_TYPE_TAX_REPO_HOLD = 39 OPERATION_TYPE_TAX_REPO_REFUND = 40 OPERATION_TYPE_TAX_REPO_HOLD_PROGRESSIVE = 41 OPERATION_TYPE_TAX_REPO_REFUND_PROGRESSIVE = 42 OPERATION_TYPE_DIV_EXT = 43 OPERATION_TYPE_TAX_CORRECTION_COUPON = 44 OPERATION_TYPE_CASH_FEE = 45 OPERATION_TYPE_OUT_FEE = 46 OPERATION_TYPE_OUT_STAMP_DUTY = 47 OPERATION_TYPE_OUTPUT_SWIFT = 50 OPERATION_TYPE_INPUT_SWIFT = 51 OPERATION_TYPE_OUTPUT_ACQUIRING = 53 OPERATION_TYPE_INPUT_ACQUIRING = 54 OPERATION_TYPE_OUTPUT_PENALTY = 55 OPERATION_TYPE_ADVICE_FEE = 56 OPERATION_TYPE_TRANS_IIS_BS = 57 OPERATION_TYPE_TRANS_BS_BS = 58 OPERATION_TYPE_OUT_MULTI = 59 OPERATION_TYPE_INP_MULTI = 60 OPERATION_TYPE_OVER_PLACEMENT = 61 OPERATION_TYPE_OVER_COM = 62 OPERATION_TYPE_OVER_INCOME = 63 OPERATION_TYPE_OPTION_EXPIRATION = 64 OPERATION_TYPE_FUTURE_EXPIRATION = 65 OPERATION_TYPE_OTHER_FEE = 66 OPERATION_TYPE_OTHER = 67 OPERATION_TYPE_DFA_REDEMPTION = 68 OPERATION_TYPE_PRIMARY_ORDER = 69 class AccessLevel(_grpc_helpers.Enum): ACCOUNT_ACCESS_LEVEL_UNSPECIFIED = 0 ACCOUNT_ACCESS_LEVEL_FULL_ACCESS = 1 ACCOUNT_ACCESS_LEVEL_READ_ONLY = 2 ACCOUNT_ACCESS_LEVEL_NO_ACCESS = 3 class CouponType(_grpc_helpers.Enum): COUPON_TYPE_UNSPECIFIED = 0 COUPON_TYPE_CONSTANT = 1 COUPON_TYPE_FLOATING = 2 COUPON_TYPE_DISCOUNT = 3 COUPON_TYPE_MORTGAGE = 4 COUPON_TYPE_FIX = 5 COUPON_TYPE_VARIABLE = 6 COUPON_TYPE_OTHER = 7 class AssetType(_grpc_helpers.Enum): ASSET_TYPE_UNSPECIFIED = 0 ASSET_TYPE_CURRENCY = 1 ASSET_TYPE_COMMODITY = 2 ASSET_TYPE_INDEX = 3 ASSET_TYPE_SECURITY = 4 class StructuredProductType(_grpc_helpers.Enum): SP_TYPE_UNSPECIFIED = 0 SP_TYPE_DELIVERABLE = 1 SP_TYPE_NON_DELIVERABLE = 2 class EditFavoritesActionType(_grpc_helpers.Enum): EDIT_FAVORITES_ACTION_TYPE_UNSPECIFIED = 0 EDIT_FAVORITES_ACTION_TYPE_ADD = 1 EDIT_FAVORITES_ACTION_TYPE_DEL = 2 class RealExchange(_grpc_helpers.Enum): REAL_EXCHANGE_UNSPECIFIED = 0 REAL_EXCHANGE_MOEX = 1 REAL_EXCHANGE_RTS = 2 REAL_EXCHANGE_OTC = 3 REAL_EXCHANGE_DEALER = 4 class PortfolioSubscriptionStatus(_grpc_helpers.Enum): PORTFOLIO_SUBSCRIPTION_STATUS_UNSPECIFIED = 0 PORTFOLIO_SUBSCRIPTION_STATUS_SUCCESS = 1 PORTFOLIO_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND = 2 PORTFOLIO_SUBSCRIPTION_STATUS_INTERNAL_ERROR = 3 class InstrumentType(_grpc_helpers.Enum): INSTRUMENT_TYPE_UNSPECIFIED = 0 INSTRUMENT_TYPE_BOND = 1 INSTRUMENT_TYPE_SHARE = 2 INSTRUMENT_TYPE_CURRENCY = 3 INSTRUMENT_TYPE_ETF = 4 INSTRUMENT_TYPE_FUTURES = 5 INSTRUMENT_TYPE_SP = 6 INSTRUMENT_TYPE_OPTION = 7 INSTRUMENT_TYPE_CLEARING_CERTIFICATE = 8 INSTRUMENT_TYPE_INDEX = 9 INSTRUMENT_TYPE_COMMODITY = 10 INSTRUMENT_TYPE_DFA = 11 class OptionDirection(_grpc_helpers.Enum): OPTION_DIRECTION_UNSPECIFIED = 0 OPTION_DIRECTION_PUT = 1 OPTION_DIRECTION_CALL = 2 class OptionPaymentType(_grpc_helpers.Enum): OPTION_PAYMENT_TYPE_UNSPECIFIED = 0 OPTION_PAYMENT_TYPE_PREMIUM = 1 OPTION_PAYMENT_TYPE_MARGINAL = 2 class OptionStyle(_grpc_helpers.Enum): OPTION_STYLE_UNSPECIFIED = 0 OPTION_STYLE_AMERICAN = 1 OPTION_STYLE_EUROPEAN = 2 class OptionSettlementType(_grpc_helpers.Enum): OPTION_EXECUTION_TYPE_UNSPECIFIED = 0 OPTION_EXECUTION_TYPE_PHYSICAL_DELIVERY = 1 OPTION_EXECUTION_TYPE_CASH_SETTLEMENT = 2 class PositionsAccountSubscriptionStatus(_grpc_helpers.Enum): POSITIONS_SUBSCRIPTION_STATUS_UNSPECIFIED = 0 POSITIONS_SUBSCRIPTION_STATUS_SUCCESS = 1 POSITIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND = 2 POSITIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR = 3 class RiskLevel(_grpc_helpers.Enum): RISK_LEVEL_UNSPECIFIED = 0 RISK_LEVEL_LOW = 1 RISK_LEVEL_MODERATE = 2 RISK_LEVEL_HIGH = 3 class StopOrderStatusOption(_grpc_helpers.Enum): STOP_ORDER_STATUS_UNSPECIFIED = 0 STOP_ORDER_STATUS_ALL = 1 STOP_ORDER_STATUS_ACTIVE = 2 STOP_ORDER_STATUS_EXECUTED = 3 STOP_ORDER_STATUS_CANCELED = 4 STOP_ORDER_STATUS_EXPIRED = 5 class ExchangeOrderType(_grpc_helpers.Enum): EXCHANGE_ORDER_TYPE_UNSPECIFIED = 0 EXCHANGE_ORDER_TYPE_MARKET = 1 EXCHANGE_ORDER_TYPE_LIMIT = 2 class TakeProfitType(_grpc_helpers.Enum): TAKE_PROFIT_TYPE_UNSPECIFIED = 0 TAKE_PROFIT_TYPE_REGULAR = 1 TAKE_PROFIT_TYPE_TRAILING = 2 class TrailingValueType(_grpc_helpers.Enum): TRAILING_VALUE_UNSPECIFIED = 0 TRAILING_VALUE_ABSOLUTE = 1 TRAILING_VALUE_RELATIVE = 2 class TrailingStopStatus(_grpc_helpers.Enum): TRAILING_STOP_UNSPECIFIED = 0 TRAILING_STOP_ACTIVE = 1 TRAILING_STOP_ACTIVATED = 2 class PriceType(_grpc_helpers.Enum): PRICE_TYPE_UNSPECIFIED = 0 PRICE_TYPE_POINT = 1 PRICE_TYPE_CURRENCY = 2 class TimeInForceType(_grpc_helpers.Enum): TIME_IN_FORCE_UNSPECIFIED = 0 TIME_IN_FORCE_DAY = 1 TIME_IN_FORCE_FILL_AND_KILL = 2 TIME_IN_FORCE_FILL_OR_KILL = 3 class OrderIdType(_grpc_helpers.Enum): ORDER_ID_TYPE_UNSPECIFIED = 0 ORDER_ID_TYPE_EXCHANGE = 1 ORDER_ID_TYPE_REQUEST = 2 class EventType(_grpc_helpers.Enum): EVENT_TYPE_UNSPECIFIED = 0 EVENT_TYPE_CPN = 1 EVENT_TYPE_CALL = 2 EVENT_TYPE_MTY = 3 EVENT_TYPE_CONV = 4 class AssetReportPeriodType(_grpc_helpers.Enum): PERIOD_TYPE_UNSPECIFIED = 0 PERIOD_TYPE_QUARTER = 1 PERIOD_TYPE_SEMIANNUAL = 2 PERIOD_TYPE_ANNUAL = 3 class Recommendation(_grpc_helpers.Enum): RECOMMENDATION_UNSPECIFIED = 0 RECOMMENDATION_BUY = 1 RECOMMENDATION_HOLD = 2 RECOMMENDATION_SELL = 3 class OrderBookType(_grpc_helpers.Enum): ORDERBOOK_TYPE_UNSPECIFIED = 0 ORDERBOOK_TYPE_EXCHANGE = 1 ORDERBOOK_TYPE_DEALER = 2 ORDERBOOK_TYPE_ALL = 3 class BondType(_grpc_helpers.Enum): BOND_TYPE_UNSPECIFIED = 0 BOND_TYPE_REPLACED = 1 class InstrumentExchangeType(_grpc_helpers.Enum): INSTRUMENT_EXCHANGE_UNSPECIFIED = 0 INSTRUMENT_EXCHANGE_DEALER = 1 class TradeSourceType(_grpc_helpers.Enum): TRADE_SOURCE_UNSPECIFIED = 0 TRADE_SOURCE_EXCHANGE = 1 TRADE_SOURCE_DEALER = 2 TRADE_SOURCE_ALL = 3 class ResultSubscriptionStatus(_grpc_helpers.Enum): RESULT_SUBSCRIPTION_STATUS_UNSPECIFIED = 0 RESULT_SUBSCRIPTION_STATUS_OK = 1 RESULT_SUBSCRIPTION_STATUS_ERROR = 13 class MarkerType(_grpc_helpers.Enum): MARKER_UNKNOWN = 0 MARKER_BROKER = 1 MARKER_CHAT = 2 MARKER_PAPER = 3 MARKER_MARGIN = 4 MARKER_TKBNM = 5 MARKER_SHORT = 6 MARKER_SPECMM = 7 MARKER_PO = 8 class StatusCauseInfo(_grpc_helpers.Enum): CAUSE_UNSPECIFIED = 0 CAUSE_CANCELLED_BY_CLIENT = 15 CAUSE_CANCELLED_BY_EXCHANGE = 1 CAUSE_CANCELLED_NOT_ENOUGH_POSITION = 2 CAUSE_CANCELLED_BY_CLIENT_BLOCK = 3 CAUSE_REJECTED_BY_BROKER = 4 CAUSE_REJECTED_BY_EXCHANGE = 5 CAUSE_CANCELLED_BY_BROKER = 6 class LastPriceType(_grpc_helpers.Enum): LAST_PRICE_UNSPECIFIED = 0 LAST_PRICE_EXCHANGE = 1 LAST_PRICE_DEALER = 2 class StrategyType(_grpc_helpers.Enum): STRATEGY_TYPE_UNSPECIFIED = 0 STRATEGY_TYPE_TECHNICAL = 1 STRATEGY_TYPE_FUNDAMENTAL = 2 class SignalDirection(_grpc_helpers.Enum): SIGNAL_DIRECTION_UNSPECIFIED = 0 SIGNAL_DIRECTION_BUY = 1 SIGNAL_DIRECTION_SELL = 2 class SignalState(_grpc_helpers.Enum): SIGNAL_STATE_UNSPECIFIED = 0 SIGNAL_STATE_ACTIVE = 1 SIGNAL_STATE_CLOSED = 2 SIGNAL_STATE_ALL = 3 @dataclass(eq=False, repr=True) class MoneyValue(_grpc_helpers.Message): currency: str = _grpc_helpers.string_field(1) units: int = _grpc_helpers.int64_field(2) nano: int = _grpc_helpers.int32_field(3) @dataclass(eq=False, repr=True) class Quotation(_grpc_helpers.Message, SupportsAbs): units: int = _grpc_helpers.int64_field(1) nano: int = _grpc_helpers.int32_field(2) def __init__(self, units: int, nano: int): max_quotation_nano = 1_000_000_000 self.units = units + nano // max_quotation_nano self.nano = nano % max_quotation_nano def __add__(self, other: "Quotation") -> "Quotation": return Quotation( units=self.units + other.units, nano=self.nano + other.nano, ) def __sub__(self, other: "Quotation") -> "Quotation": return Quotation( units=self.units - other.units, nano=self.nano - other.nano, ) def __hash__(self) -> int: return hash((self.units, self.nano)) def __eq__(self, other: object) -> bool: if not isinstance(other, Quotation): return NotImplemented return self.units == other.units and self.nano == other.nano def __lt__(self, other: "Quotation") -> bool: return self.units < other.units or ( self.units == other.units and self.nano < other.nano ) def __le__(self, other: "Quotation") -> bool: return self.units < other.units or ( self.units == other.units and self.nano <= other.nano ) def __gt__(self, other: "Quotation") -> bool: return self.units > other.units or ( self.units == other.units and self.nano > other.nano ) def __ge__(self, other: "Quotation") -> bool: return self.units > other.units or ( self.units == other.units and self.nano >= other.nano ) def __abs__(self) -> "Quotation": return Quotation(units=abs(self.units), nano=abs(self.nano)) @dataclass(eq=False, repr=True) class PingRequest(_grpc_helpers.Message): time: Optional[datetime] = _grpc_helpers.message_field(1, optional=True) @dataclass(eq=False, repr=True) class PingDelaySettings(_grpc_helpers.Message): ping_delay_ms: Optional[int] = _grpc_helpers.int32_field(1, optional=True) @dataclass(eq=False, repr=True) class Ping(_grpc_helpers.Message): time: datetime = _grpc_helpers.int64_field(1) stream_id: str = _grpc_helpers.string_field(2) ping_request_time: Optional[datetime] = _grpc_helpers.message_field( 4, optional=True ) @dataclass(eq=False, repr=True) class TradingSchedulesRequest(_grpc_helpers.Message): exchange: Optional[str] = _grpc_helpers.string_field(1) from_: Optional[datetime] = _grpc_helpers.message_field(2) to: Optional[datetime] = _grpc_helpers.message_field(3) @dataclass(eq=False, repr=True) class TradingSchedulesResponse(_grpc_helpers.Message): exchanges: List["TradingSchedule"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class TradingSchedule(_grpc_helpers.Message): exchange: str = _grpc_helpers.string_field(1) days: List["TradingDay"] = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class TradingDay(_grpc_helpers.Message): # pylint:disable=too-many-instance-attributes date: datetime = _grpc_helpers.message_field(1) is_trading_day: bool = _grpc_helpers.bool_field(2) start_time: datetime = _grpc_helpers.message_field(3) end_time: datetime = _grpc_helpers.message_field(4) # reserved 5,6 opening_auction_start_time: datetime = _grpc_helpers.message_field(7) closing_auction_end_time: datetime = _grpc_helpers.message_field(8) evening_opening_auction_start_time: datetime = _grpc_helpers.message_field(9) evening_start_time: datetime = _grpc_helpers.message_field(10) evening_end_time: datetime = _grpc_helpers.message_field(11) clearing_start_time: datetime = _grpc_helpers.message_field(12) clearing_end_time: datetime = _grpc_helpers.message_field(13) premarket_start_time: datetime = _grpc_helpers.message_field(14) premarket_end_time: datetime = _grpc_helpers.message_field(15) closing_auction_start_time: datetime = _grpc_helpers.message_field(16) opening_auction_end_time: datetime = _grpc_helpers.message_field(17) intervals: List["TradingInterval"] = _grpc_helpers.message_field(18) @dataclass(eq=False, repr=True) class InstrumentRequest(_grpc_helpers.Message): id_type: "InstrumentIdType" = _grpc_helpers.enum_field(1) class_code: Optional[str] = _grpc_helpers.string_field(2) id: str = _grpc_helpers.string_field(3) @dataclass(eq=False, repr=True) class InstrumentsRequest(_grpc_helpers.Message): instrument_status: Optional["InstrumentStatus"] = _grpc_helpers.enum_field(1) instrument_exchange: Optional["InstrumentExchangeType"] = _grpc_helpers.enum_field( 2 ) @dataclass(eq=False, repr=True) class FilterOptionsRequest(_grpc_helpers.Message): basic_asset_uid: Optional[str] = _grpc_helpers.string_field(1) basic_asset_position_uid: Optional[str] = _grpc_helpers.string_field(2) @dataclass(eq=False, repr=True) class BondResponse(_grpc_helpers.Message): instrument: "Bond" = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class BondsResponse(_grpc_helpers.Message): instruments: List["Bond"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class GetBondCouponsRequest(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) from_: Optional[datetime] = _grpc_helpers.message_field(2) to: Optional[datetime] = _grpc_helpers.message_field(3) instrument_id: str = _grpc_helpers.string_field(4) @dataclass(eq=False, repr=True) class GetBondCouponsResponse(_grpc_helpers.Message): events: List["Coupon"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class GetBondEventsRequest(_grpc_helpers.Message): from_: Optional[datetime] = _grpc_helpers.message_field(2) to: Optional[datetime] = _grpc_helpers.message_field(3) instrument_id: str = _grpc_helpers.string_field(4) type: "EventType" = _grpc_helpers.enum_field(5) @dataclass(eq=False, repr=True) class BondEvent(_grpc_helpers.Message): instrument_id: str = _grpc_helpers.string_field(2) event_number: int = _grpc_helpers.int32_field(3) event_date: datetime = _grpc_helpers.message_field(4) event_type: "EventType" = _grpc_helpers.enum_field(5) event_total_vol: "Quotation" = _grpc_helpers.message_field(6) fix_date: datetime = _grpc_helpers.message_field(7) rate_date: datetime = _grpc_helpers.message_field(8) default_date: datetime = _grpc_helpers.message_field(9) real_pay_date: datetime = _grpc_helpers.message_field(10) pay_date: datetime = _grpc_helpers.message_field(11) pay_one_bond: "MoneyValue" = _grpc_helpers.message_field(12) money_flow_val: "MoneyValue" = _grpc_helpers.message_field(13) execution: str = _grpc_helpers.string_field(14) operation_type: str = _grpc_helpers.string_field(15) value: "Quotation" = _grpc_helpers.message_field(16) note: str = _grpc_helpers.string_field(17) convert_to_fin_tool_id: str = _grpc_helpers.string_field(18) coupon_start_date: datetime = _grpc_helpers.message_field(19) coupon_end_date: datetime = _grpc_helpers.message_field(20) coupon_period: int = _grpc_helpers.int32_field(21) coupon_interest_rate: "Quotation" = _grpc_helpers.message_field(22) @dataclass(eq=False, repr=True) class GetBondEventsResponse(_grpc_helpers.Message): events: List["BondEvent"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class Coupon(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) coupon_date: datetime = _grpc_helpers.message_field(2) coupon_number: int = _grpc_helpers.int64_field(3) fix_date: datetime = _grpc_helpers.message_field(4) pay_one_bond: "MoneyValue" = _grpc_helpers.message_field(5) coupon_type: "CouponType" = _grpc_helpers.enum_field(6) coupon_start_date: datetime = _grpc_helpers.message_field(7) coupon_end_date: datetime = _grpc_helpers.message_field(8) coupon_period: int = _grpc_helpers.int32_field(9) @dataclass(eq=False, repr=True) class CurrencyResponse(_grpc_helpers.Message): instrument: "Currency" = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class CurrenciesResponse(_grpc_helpers.Message): instruments: List["Currency"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class EtfResponse(_grpc_helpers.Message): instrument: "Etf" = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class EtfsResponse(_grpc_helpers.Message): instruments: List["Etf"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class FutureResponse(_grpc_helpers.Message): instrument: "Future" = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class FuturesResponse(_grpc_helpers.Message): instruments: List["Future"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class OptionResponse(_grpc_helpers.Message): instrument: "Option" = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class OptionsResponse(_grpc_helpers.Message): instruments: List["Option"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class Option(_grpc_helpers.Message): uid: str = _grpc_helpers.string_field(1) position_uid: str = _grpc_helpers.string_field(2) ticker: str = _grpc_helpers.string_field(3) class_code: str = _grpc_helpers.string_field(4) basic_asset_position_uid: str = _grpc_helpers.string_field(5) trading_status: "SecurityTradingStatus" = _grpc_helpers.message_field(21) real_exchange: "RealExchange" = _grpc_helpers.message_field(31) direction: "OptionDirection" = _grpc_helpers.message_field(41) payment_type: "OptionPaymentType" = _grpc_helpers.message_field(42) style: "OptionStyle" = _grpc_helpers.message_field(43) settlement_type: "OptionSettlementType" = _grpc_helpers.message_field(44) name: str = _grpc_helpers.string_field(101) currency: str = _grpc_helpers.string_field(111) settlement_currency: str = _grpc_helpers.string_field(112) asset_type: str = _grpc_helpers.string_field(131) basic_asset: str = _grpc_helpers.string_field(132) exchange: str = _grpc_helpers.string_field(141) country_of_risk: str = _grpc_helpers.string_field(151) country_of_risk_name: str = _grpc_helpers.string_field(152) sector: str = _grpc_helpers.string_field(161) brand: "BrandData" = _grpc_helpers.message_field(162) lot: int = _grpc_helpers.int32_field(201) basic_asset_size: "Quotation" = _grpc_helpers.message_field(211) klong: "Quotation" = _grpc_helpers.message_field(221) kshort: "Quotation" = _grpc_helpers.message_field(222) dlong: "Quotation" = _grpc_helpers.message_field(223) dshort: "Quotation" = _grpc_helpers.message_field(224) dlong_min: "Quotation" = _grpc_helpers.message_field(225) dshort_min: "Quotation" = _grpc_helpers.message_field(226) min_price_increment: "Quotation" = _grpc_helpers.message_field(231) strike_price: "MoneyValue" = _grpc_helpers.message_field(241) dlong_client: "Quotation" = _grpc_helpers.message_field(290) dshort_client: "Quotation" = _grpc_helpers.message_field(291) expiration_date: datetime = _grpc_helpers.message_field(301) first_trade_date: datetime = _grpc_helpers.message_field(311) last_trade_date: datetime = _grpc_helpers.message_field(312) first_1min_candle_date: datetime = _grpc_helpers.message_field(321) first_1day_candle_date: datetime = _grpc_helpers.message_field(322) short_enabled_flag: bool = _grpc_helpers.bool_field(401) for_iis_flag: bool = _grpc_helpers.bool_field(402) otc_flag: bool = _grpc_helpers.bool_field(403) buy_available_flag: bool = _grpc_helpers.bool_field(404) sell_available_flag: bool = _grpc_helpers.bool_field(405) for_qual_investor_flag: bool = _grpc_helpers.bool_field(406) weekend_flag: bool = _grpc_helpers.bool_field(407) blocked_tca_flag: bool = _grpc_helpers.bool_field(408) api_trade_available_flag: bool = _grpc_helpers.bool_field(409) required_tests: List[str] = _grpc_helpers.string_field(410) @dataclass(eq=False, repr=True) class ShareResponse(_grpc_helpers.Message): instrument: "Share" = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class SharesResponse(_grpc_helpers.Message): instruments: List["Share"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class Bond(_grpc_helpers.Message): # pylint:disable=too-many-instance-attributes figi: str = _grpc_helpers.string_field(1) ticker: str = _grpc_helpers.string_field(2) class_code: str = _grpc_helpers.string_field(3) isin: str = _grpc_helpers.string_field(4) lot: int = _grpc_helpers.int32_field(5) currency: str = _grpc_helpers.string_field(6) klong: "Quotation" = _grpc_helpers.message_field(7) kshort: "Quotation" = _grpc_helpers.message_field(8) dlong: "Quotation" = _grpc_helpers.message_field(9) dshort: "Quotation" = _grpc_helpers.message_field(10) dlong_min: "Quotation" = _grpc_helpers.message_field(11) dshort_min: "Quotation" = _grpc_helpers.message_field(12) short_enabled_flag: bool = _grpc_helpers.bool_field(13) name: str = _grpc_helpers.string_field(15) exchange: str = _grpc_helpers.string_field(16) coupon_quantity_per_year: int = _grpc_helpers.int32_field(17) maturity_date: datetime = _grpc_helpers.message_field(18) nominal: "MoneyValue" = _grpc_helpers.message_field(19) initial_nominal: "MoneyValue" = _grpc_helpers.message_field(20) state_reg_date: datetime = _grpc_helpers.message_field(21) placement_date: datetime = _grpc_helpers.message_field(22) placement_price: "MoneyValue" = _grpc_helpers.message_field(23) aci_value: "MoneyValue" = _grpc_helpers.message_field(24) country_of_risk: str = _grpc_helpers.string_field(25) country_of_risk_name: str = _grpc_helpers.string_field(26) sector: str = _grpc_helpers.string_field(27) issue_kind: str = _grpc_helpers.string_field(28) issue_size: int = _grpc_helpers.int64_field(29) issue_size_plan: int = _grpc_helpers.int64_field(30) trading_status: "SecurityTradingStatus" = _grpc_helpers.enum_field(31) otc_flag: bool = _grpc_helpers.bool_field(32) buy_available_flag: bool = _grpc_helpers.bool_field(33) sell_available_flag: bool = _grpc_helpers.bool_field(34) floating_coupon_flag: bool = _grpc_helpers.bool_field(35) perpetual_flag: bool = _grpc_helpers.bool_field(36) amortization_flag: bool = _grpc_helpers.bool_field(37) min_price_increment: "Quotation" = _grpc_helpers.message_field(38) api_trade_available_flag: bool = _grpc_helpers.bool_field(39) uid: str = _grpc_helpers.string_field(40) real_exchange: "RealExchange" = _grpc_helpers.message_field(41) position_uid: str = _grpc_helpers.string_field(42) asset_uid: str = _grpc_helpers.string_field(43) for_iis_flag: bool = _grpc_helpers.bool_field(51) for_qual_investor_flag: bool = _grpc_helpers.bool_field(52) weekend_flag: bool = _grpc_helpers.bool_field(53) blocked_tca_flag: bool = _grpc_helpers.bool_field(54) subordinated_flag: bool = _grpc_helpers.bool_field(55) liquidity_flag: bool = _grpc_helpers.bool_field(56) first_1min_candle_date: datetime = _grpc_helpers.message_field(61) first_1day_candle_date: datetime = _grpc_helpers.message_field(62) risk_level: "RiskLevel" = _grpc_helpers.enum_field(63) brand: "BrandData" = _grpc_helpers.message_field(64) bond_type: "BondType" = _grpc_helpers.message_field(65) call_date: datetime = _grpc_helpers.message_field(69) dlong_client: "Quotation" = _grpc_helpers.message_field(90) dshort_client: "Quotation" = _grpc_helpers.message_field(91) required_tests: List[str] = _grpc_helpers.string_field(44) @dataclass(eq=False, repr=True) class Currency(_grpc_helpers.Message): # pylint:disable=too-many-instance-attributes figi: str = _grpc_helpers.string_field(1) ticker: str = _grpc_helpers.string_field(2) class_code: str = _grpc_helpers.string_field(3) isin: str = _grpc_helpers.string_field(4) lot: int = _grpc_helpers.int32_field(5) currency: str = _grpc_helpers.string_field(6) klong: "Quotation" = _grpc_helpers.message_field(7) kshort: "Quotation" = _grpc_helpers.message_field(8) dlong: "Quotation" = _grpc_helpers.message_field(9) dshort: "Quotation" = _grpc_helpers.message_field(10) dlong_min: "Quotation" = _grpc_helpers.message_field(11) dshort_min: "Quotation" = _grpc_helpers.message_field(12) short_enabled_flag: bool = _grpc_helpers.bool_field(13) name: str = _grpc_helpers.string_field(15) exchange: str = _grpc_helpers.string_field(16) nominal: "MoneyValue" = _grpc_helpers.message_field(17) country_of_risk: str = _grpc_helpers.string_field(18) country_of_risk_name: str = _grpc_helpers.string_field(19) trading_status: "SecurityTradingStatus" = _grpc_helpers.enum_field(20) otc_flag: bool = _grpc_helpers.bool_field(21) buy_available_flag: bool = _grpc_helpers.bool_field(22) sell_available_flag: bool = _grpc_helpers.bool_field(23) iso_currency_name: str = _grpc_helpers.string_field(24) min_price_increment: "Quotation" = _grpc_helpers.message_field(25) api_trade_available_flag: bool = _grpc_helpers.bool_field(26) uid: str = _grpc_helpers.string_field(27) real_exchange: "RealExchange" = _grpc_helpers.message_field(28) position_uid: str = _grpc_helpers.string_field(29) required_tests: List[str] = _grpc_helpers.string_field(30) asset_uid: str = _grpc_helpers.string_field(31) for_iis_flag: bool = _grpc_helpers.bool_field(41) for_qual_investor_flag: bool = _grpc_helpers.bool_field(52) weekend_flag: bool = _grpc_helpers.bool_field(53) blocked_tca_flag: bool = _grpc_helpers.bool_field(54) first_1min_candle_date: datetime = _grpc_helpers.message_field(56) first_1day_candle_date: datetime = _grpc_helpers.message_field(57) brand: "BrandData" = _grpc_helpers.message_field(60) dlong_client: "Quotation" = _grpc_helpers.message_field(90) dshort_client: "Quotation" = _grpc_helpers.message_field(91) @dataclass(eq=False, repr=True) class Etf(_grpc_helpers.Message): # pylint:disable=too-many-instance-attributes figi: str = _grpc_helpers.string_field(1) ticker: str = _grpc_helpers.string_field(2) class_code: str = _grpc_helpers.string_field(3) isin: str = _grpc_helpers.string_field(4) lot: int = _grpc_helpers.int32_field(5) currency: str = _grpc_helpers.string_field(6) klong: "Quotation" = _grpc_helpers.message_field(7) kshort: "Quotation" = _grpc_helpers.message_field(8) dlong: "Quotation" = _grpc_helpers.message_field(9) dshort: "Quotation" = _grpc_helpers.message_field(10) dlong_min: "Quotation" = _grpc_helpers.message_field(11) dshort_min: "Quotation" = _grpc_helpers.message_field(12) short_enabled_flag: bool = _grpc_helpers.bool_field(13) name: str = _grpc_helpers.string_field(15) exchange: str = _grpc_helpers.string_field(16) fixed_commission: "Quotation" = _grpc_helpers.message_field(17) focus_type: str = _grpc_helpers.string_field(18) released_date: datetime = _grpc_helpers.message_field(19) num_shares: "Quotation" = _grpc_helpers.message_field(20) country_of_risk: str = _grpc_helpers.string_field(21) country_of_risk_name: str = _grpc_helpers.string_field(22) sector: str = _grpc_helpers.string_field(23) rebalancing_freq: str = _grpc_helpers.string_field(24) trading_status: "SecurityTradingStatus" = _grpc_helpers.enum_field(25) otc_flag: bool = _grpc_helpers.bool_field(26) buy_available_flag: bool = _grpc_helpers.bool_field(27) sell_available_flag: bool = _grpc_helpers.bool_field(28) min_price_increment: "Quotation" = _grpc_helpers.message_field(29) api_trade_available_flag: bool = _grpc_helpers.bool_field(30) uid: str = _grpc_helpers.string_field(31) real_exchange: "RealExchange" = _grpc_helpers.message_field(32) position_uid: str = _grpc_helpers.string_field(33) asset_uid: str = _grpc_helpers.string_field(34) instrument_exchange: "InstrumentExchangeType" = _grpc_helpers.message_field(35) required_tests: List[str] = _grpc_helpers.string_field(36) for_iis_flag: bool = _grpc_helpers.bool_field(41) for_qual_investor_flag: bool = _grpc_helpers.bool_field(42) weekend_flag: bool = _grpc_helpers.bool_field(43) blocked_tca_flag: bool = _grpc_helpers.bool_field(44) liquidity_flag: bool = _grpc_helpers.bool_field(45) first_1min_candle_date: datetime = _grpc_helpers.message_field(56) first_1day_candle_date: datetime = _grpc_helpers.message_field(57) brand: "BrandData" = _grpc_helpers.message_field(60) dlong_client: "Quotation" = _grpc_helpers.message_field(90) dshort_client: "Quotation" = _grpc_helpers.message_field(91) @dataclass(eq=False, repr=True) class Future(_grpc_helpers.Message): # pylint:disable=too-many-instance-attributes figi: str = _grpc_helpers.string_field(1) ticker: str = _grpc_helpers.string_field(2) class_code: str = _grpc_helpers.string_field(3) lot: int = _grpc_helpers.int32_field(4) currency: str = _grpc_helpers.string_field(5) klong: "Quotation" = _grpc_helpers.message_field(6) kshort: "Quotation" = _grpc_helpers.message_field(7) dlong: "Quotation" = _grpc_helpers.message_field(8) dshort: "Quotation" = _grpc_helpers.message_field(9) dlong_min: "Quotation" = _grpc_helpers.message_field(10) dshort_min: "Quotation" = _grpc_helpers.message_field(11) short_enabled_flag: bool = _grpc_helpers.bool_field(12) name: str = _grpc_helpers.string_field(13) exchange: str = _grpc_helpers.string_field(14) first_trade_date: datetime = _grpc_helpers.message_field(15) last_trade_date: datetime = _grpc_helpers.message_field(16) futures_type: str = _grpc_helpers.string_field(17) asset_type: str = _grpc_helpers.string_field(18) basic_asset: str = _grpc_helpers.string_field(19) basic_asset_size: "Quotation" = _grpc_helpers.message_field(20) country_of_risk: str = _grpc_helpers.string_field(21) country_of_risk_name: str = _grpc_helpers.string_field(22) sector: str = _grpc_helpers.string_field(23) expiration_date: datetime = _grpc_helpers.message_field(24) trading_status: "SecurityTradingStatus" = _grpc_helpers.enum_field(25) otc_flag: bool = _grpc_helpers.bool_field(26) buy_available_flag: bool = _grpc_helpers.bool_field(27) sell_available_flag: bool = _grpc_helpers.bool_field(28) min_price_increment: "Quotation" = _grpc_helpers.message_field(29) api_trade_available_flag: bool = _grpc_helpers.bool_field(30) uid: str = _grpc_helpers.string_field(31) real_exchange: "RealExchange" = _grpc_helpers.message_field(32) position_uid: str = _grpc_helpers.string_field(33) basic_asset_position_uid: str = _grpc_helpers.string_field(34) required_tests: List[str] = _grpc_helpers.string_field(35) for_iis_flag: bool = _grpc_helpers.bool_field(41) for_qual_investor_flag: bool = _grpc_helpers.bool_field(42) weekend_flag: bool = _grpc_helpers.bool_field(43) blocked_tca_flag: bool = _grpc_helpers.bool_field(44) first_1min_candle_date: datetime = _grpc_helpers.message_field(56) first_1day_candle_date: datetime = _grpc_helpers.message_field(57) initial_margin_on_buy: "MoneyValue" = _grpc_helpers.message_field(61) initial_margin_on_sell: "MoneyValue" = _grpc_helpers.message_field(62) min_price_increment_amount: "Quotation" = _grpc_helpers.message_field(63) brand: "BrandData" = _grpc_helpers.message_field(64) dlong_client: "Quotation" = _grpc_helpers.message_field(90) dshort_client: "Quotation" = _grpc_helpers.message_field(91) @dataclass(eq=False, repr=True) class Share(_grpc_helpers.Message): # pylint:disable=too-many-instance-attributes figi: str = _grpc_helpers.string_field(1) ticker: str = _grpc_helpers.string_field(2) class_code: str = _grpc_helpers.string_field(3) isin: str = _grpc_helpers.string_field(4) lot: int = _grpc_helpers.int32_field(5) currency: str = _grpc_helpers.string_field(6) klong: "Quotation" = _grpc_helpers.message_field(7) kshort: "Quotation" = _grpc_helpers.message_field(8) dlong: "Quotation" = _grpc_helpers.message_field(9) dshort: "Quotation" = _grpc_helpers.message_field(10) dlong_min: "Quotation" = _grpc_helpers.message_field(11) dshort_min: "Quotation" = _grpc_helpers.message_field(12) short_enabled_flag: bool = _grpc_helpers.bool_field(13) name: str = _grpc_helpers.string_field(15) exchange: str = _grpc_helpers.string_field(16) ipo_date: datetime = _grpc_helpers.message_field(17) issue_size: int = _grpc_helpers.int64_field(18) country_of_risk: str = _grpc_helpers.string_field(19) country_of_risk_name: str = _grpc_helpers.string_field(20) sector: str = _grpc_helpers.string_field(21) issue_size_plan: int = _grpc_helpers.int64_field(22) nominal: "MoneyValue" = _grpc_helpers.message_field(23) trading_status: "SecurityTradingStatus" = _grpc_helpers.enum_field(25) otc_flag: bool = _grpc_helpers.bool_field(26) buy_available_flag: bool = _grpc_helpers.bool_field(27) sell_available_flag: bool = _grpc_helpers.bool_field(28) div_yield_flag: bool = _grpc_helpers.bool_field(29) share_type: "ShareType" = _grpc_helpers.enum_field(30) min_price_increment: "Quotation" = _grpc_helpers.message_field(31) api_trade_available_flag: bool = _grpc_helpers.bool_field(32) uid: str = _grpc_helpers.string_field(33) real_exchange: "RealExchange" = _grpc_helpers.message_field(34) position_uid: str = _grpc_helpers.string_field(35) asset_uid: str = _grpc_helpers.string_field(36) instrument_exchange: "InstrumentExchangeType" = _grpc_helpers.message_field(37) required_tests: List[str] = _grpc_helpers.string_field(38) for_iis_flag: bool = _grpc_helpers.bool_field(46) for_qual_investor_flag: bool = _grpc_helpers.bool_field(47) weekend_flag: bool = _grpc_helpers.bool_field(48) blocked_tca_flag: bool = _grpc_helpers.bool_field(49) liquidity_flag: bool = _grpc_helpers.bool_field(50) first_1min_candle_date: datetime = _grpc_helpers.message_field(56) first_1day_candle_date: datetime = _grpc_helpers.message_field(57) brand: "BrandData" = _grpc_helpers.message_field(60) dlong_client: "Quotation" = _grpc_helpers.message_field(90) dshort_client: "Quotation" = _grpc_helpers.message_field(91) @dataclass(eq=False, repr=True) class GetAccruedInterestsRequest(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) from_: datetime = _grpc_helpers.message_field(2) to: datetime = _grpc_helpers.message_field(3) instrument_id: str = _grpc_helpers.string_field(4) @dataclass(eq=False, repr=True) class GetAccruedInterestsResponse(_grpc_helpers.Message): accrued_interests: List["AccruedInterest"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class AccruedInterest(_grpc_helpers.Message): date: datetime = _grpc_helpers.message_field(1) value: "Quotation" = _grpc_helpers.message_field(2) value_percent: "Quotation" = _grpc_helpers.message_field(3) nominal: "Quotation" = _grpc_helpers.message_field(4) @dataclass(eq=False, repr=True) class GetFuturesMarginRequest(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) instrument_id: str = _grpc_helpers.string_field(4) @dataclass(eq=False, repr=True) class GetFuturesMarginResponse(_grpc_helpers.Message): initial_margin_on_buy: "MoneyValue" = _grpc_helpers.message_field(1) initial_margin_on_sell: "MoneyValue" = _grpc_helpers.message_field(2) min_price_increment: "Quotation" = _grpc_helpers.message_field(3) min_price_increment_amount: "Quotation" = _grpc_helpers.message_field(4) @dataclass(eq=False, repr=True) class InstrumentResponse(_grpc_helpers.Message): instrument: "Instrument" = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class Instrument(_grpc_helpers.Message): # pylint:disable=too-many-instance-attributes figi: str = _grpc_helpers.string_field(1) ticker: str = _grpc_helpers.string_field(2) class_code: str = _grpc_helpers.string_field(3) isin: str = _grpc_helpers.string_field(4) lot: int = _grpc_helpers.int32_field(5) currency: str = _grpc_helpers.string_field(6) klong: "Quotation" = _grpc_helpers.message_field(7) kshort: "Quotation" = _grpc_helpers.message_field(8) dlong: "Quotation" = _grpc_helpers.message_field(9) dshort: "Quotation" = _grpc_helpers.message_field(10) dlong_min: "Quotation" = _grpc_helpers.message_field(11) dshort_min: "Quotation" = _grpc_helpers.message_field(12) short_enabled_flag: bool = _grpc_helpers.bool_field(13) name: str = _grpc_helpers.string_field(14) exchange: str = _grpc_helpers.string_field(15) country_of_risk: str = _grpc_helpers.string_field(16) country_of_risk_name: str = _grpc_helpers.string_field(17) instrument_type: str = _grpc_helpers.string_field(18) trading_status: "SecurityTradingStatus" = _grpc_helpers.enum_field(19) otc_flag: bool = _grpc_helpers.bool_field(20) buy_available_flag: bool = _grpc_helpers.bool_field(21) sell_available_flag: bool = _grpc_helpers.bool_field(22) min_price_increment: "Quotation" = _grpc_helpers.message_field(23) api_trade_available_flag: bool = _grpc_helpers.bool_field(24) uid: str = _grpc_helpers.string_field(25) real_exchange: "RealExchange" = _grpc_helpers.message_field(26) position_uid: str = _grpc_helpers.string_field(27) asset_uid: str = _grpc_helpers.string_field(28) required_tests: List[str] = _grpc_helpers.string_field(29) for_iis_flag: bool = _grpc_helpers.bool_field(36) for_qual_investor_flag: bool = _grpc_helpers.bool_field(37) weekend_flag: bool = _grpc_helpers.bool_field(38) blocked_tca_flag: bool = _grpc_helpers.bool_field(39) instrument_kind: "InstrumentType" = _grpc_helpers.enum_field(40) first_1min_candle_date: datetime = _grpc_helpers.message_field(56) first_1day_candle_date: datetime = _grpc_helpers.message_field(57) brand: "BrandData" = _grpc_helpers.message_field(60) dlong_client: "Quotation" = _grpc_helpers.message_field(490) dshort_client: "Quotation" = _grpc_helpers.message_field(491) @dataclass(eq=False, repr=True) class GetDividendsRequest(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) from_: Optional[datetime] = _grpc_helpers.message_field(2) to: Optional[datetime] = _grpc_helpers.message_field(3) instrument_id: str = _grpc_helpers.string_field(4) @dataclass(eq=False, repr=True) class GetDividendsResponse(_grpc_helpers.Message): dividends: List["Dividend"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class Dividend(_grpc_helpers.Message): dividend_net: "MoneyValue" = _grpc_helpers.message_field(1) payment_date: datetime = _grpc_helpers.message_field(2) declared_date: datetime = _grpc_helpers.message_field(3) last_buy_date: datetime = _grpc_helpers.message_field(4) dividend_type: str = _grpc_helpers.string_field(5) record_date: datetime = _grpc_helpers.message_field(6) regularity: str = _grpc_helpers.string_field(7) close_price: "MoneyValue" = _grpc_helpers.message_field(8) yield_value: "Quotation" = _grpc_helpers.message_field(9) created_at: datetime = _grpc_helpers.message_field(10) @dataclass(eq=False, repr=True) class AssetRequest(_grpc_helpers.Message): id: str = _grpc_helpers.string_field(1) @dataclass(eq=False, repr=True) class AssetResponse(_grpc_helpers.Message): asset: "AssetFull" = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class AssetsRequest(_grpc_helpers.Message): instrument_type: Optional["InstrumentType"] = _grpc_helpers.enum_field(1) instrument_status: Optional["InstrumentStatus"] = _grpc_helpers.enum_field(2) @dataclass(eq=False, repr=True) class AssetsResponse(_grpc_helpers.Message): assets: List["Asset"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class AssetFull(_grpc_helpers.Message): uid: str = _grpc_helpers.string_field(1) type: "AssetType" = _grpc_helpers.enum_field(2) name: str = _grpc_helpers.string_field(3) name_brief: str = _grpc_helpers.string_field(4) description: str = _grpc_helpers.string_field(5) deleted_at: datetime = _grpc_helpers.message_field(6) required_tests: List[str] = _grpc_helpers.message_field(7) currency: "AssetCurrency" = _grpc_helpers.message_field(8, group="ext") security: "AssetSecurity" = _grpc_helpers.message_field(9, group="ext") gos_reg_code: str = _grpc_helpers.string_field(10) cfi: str = _grpc_helpers.string_field(11) code_nsd: str = _grpc_helpers.string_field(12) status: str = _grpc_helpers.string_field(13) brand: "Brand" = _grpc_helpers.message_field(14) updated_at: datetime = _grpc_helpers.message_field(15) br_code: str = _grpc_helpers.string_field(16) br_code_name: str = _grpc_helpers.string_field(17) instruments: List["AssetInstrument"] = _grpc_helpers.message_field(18) @dataclass(eq=False, repr=True) class Asset(_grpc_helpers.Message): uid: str = _grpc_helpers.string_field(1) type: "AssetType" = _grpc_helpers.enum_field(2) name: str = _grpc_helpers.string_field(3) instruments: List["AssetInstrument"] = _grpc_helpers.message_field(4) @dataclass(eq=False, repr=True) class AssetCurrency(_grpc_helpers.Message): base_currency: str = _grpc_helpers.string_field(1) @dataclass(eq=False, repr=True) class AssetSecurity(_grpc_helpers.Message): isin: str = _grpc_helpers.string_field(1) type: str = _grpc_helpers.string_field(2) instrument_kind: "InstrumentType" = _grpc_helpers.enum_field(10) share: "AssetShare" = _grpc_helpers.message_field(3, group="ext") bond: "AssetBond" = _grpc_helpers.message_field(4, group="ext") sp: "AssetStructuredProduct" = _grpc_helpers.message_field(5, group="ext") etf: "AssetEtf" = _grpc_helpers.message_field(6, group="ext") clearing_certificate: "AssetClearingCertificate" = _grpc_helpers.message_field( 7, group="ext" ) @dataclass(eq=False, repr=True) class AssetShare(_grpc_helpers.Message): type: "ShareType" = _grpc_helpers.enum_field(1) issue_size: "Quotation" = _grpc_helpers.message_field(2) nominal: "Quotation" = _grpc_helpers.message_field(3) nominal_currency: str = _grpc_helpers.string_field(4) primary_index: str = _grpc_helpers.string_field(5) dividend_rate: "Quotation" = _grpc_helpers.message_field(6) preferred_share_type: str = _grpc_helpers.string_field(7) ipo_date: datetime = _grpc_helpers.message_field(8) registry_date: datetime = _grpc_helpers.message_field(9) div_yield_flag: bool = _grpc_helpers.bool_field(10) issue_kind: str = _grpc_helpers.string_field(11) placement_date: datetime = _grpc_helpers.message_field(12) repres_isin: str = _grpc_helpers.string_field(13) issue_size_plan: "Quotation" = _grpc_helpers.message_field(14) total_float: "Quotation" = _grpc_helpers.message_field(15) @dataclass(eq=False, repr=True) class AssetBond(_grpc_helpers.Message): current_nominal: "Quotation" = _grpc_helpers.message_field(1) borrow_name: str = _grpc_helpers.string_field(2) issue_size: "Quotation" = _grpc_helpers.message_field(3) nominal: "Quotation" = _grpc_helpers.message_field(4) nominal_currency: str = _grpc_helpers.string_field(5) issue_kind: str = _grpc_helpers.string_field(6) interest_kind: str = _grpc_helpers.string_field(7) coupon_quantity_per_year: int = _grpc_helpers.int32_field(8) indexed_nominal_flag: bool = _grpc_helpers.bool_field(9) subordinated_flag: bool = _grpc_helpers.bool_field(10) collateral_flag: bool = _grpc_helpers.bool_field(11) tax_free_flag: bool = _grpc_helpers.bool_field(12) amortization_flag: bool = _grpc_helpers.bool_field(13) floating_coupon_flag: bool = _grpc_helpers.bool_field(14) perpetual_flag: bool = _grpc_helpers.bool_field(15) maturity_date: datetime = _grpc_helpers.message_field(16) return_condition: str = _grpc_helpers.string_field(17) state_reg_date: datetime = _grpc_helpers.message_field(18) placement_date: datetime = _grpc_helpers.message_field(19) placement_price: "Quotation" = _grpc_helpers.message_field(20) issue_size_plan: "Quotation" = _grpc_helpers.message_field(21) @dataclass(eq=False, repr=True) class AssetStructuredProduct(_grpc_helpers.Message): borrow_name: str = _grpc_helpers.string_field(1) nominal: "Quotation" = _grpc_helpers.message_field(2) nominal_currency: str = _grpc_helpers.string_field(3) type: "StructuredProductType" = _grpc_helpers.enum_field(4) logic_portfolio: str = _grpc_helpers.string_field(5) asset_type: "AssetType" = _grpc_helpers.enum_field(6) basic_asset: str = _grpc_helpers.string_field(7) safety_barrier: "Quotation" = _grpc_helpers.message_field(8) maturity_date: datetime = _grpc_helpers.message_field(9) issue_size_plan: "Quotation" = _grpc_helpers.message_field(10) issue_size: "Quotation" = _grpc_helpers.message_field(11) placement_date: datetime = _grpc_helpers.message_field(12) issue_kind: str = _grpc_helpers.string_field(13) @dataclass(eq=False, repr=True) class AssetEtf(_grpc_helpers.Message): total_expense: "Quotation" = _grpc_helpers.message_field(1) hurdle_rate: "Quotation" = _grpc_helpers.message_field(2) performance_fee: "Quotation" = _grpc_helpers.message_field(3) fixed_commission: "Quotation" = _grpc_helpers.message_field(4) payment_type: str = _grpc_helpers.string_field(5) watermark_flag: bool = _grpc_helpers.bool_field(6) buy_premium: "Quotation" = _grpc_helpers.message_field(7) sell_discount: "Quotation" = _grpc_helpers.message_field(8) rebalancing_flag: bool = _grpc_helpers.bool_field(9) rebalancing_freq: str = _grpc_helpers.string_field(10) management_type: str = _grpc_helpers.string_field(11) primary_index: str = _grpc_helpers.string_field(12) focus_type: str = _grpc_helpers.string_field(13) leveraged_flag: bool = _grpc_helpers.bool_field(14) num_share: "Quotation" = _grpc_helpers.message_field(15) ucits_flag: bool = _grpc_helpers.bool_field(16) released_date: datetime = _grpc_helpers.message_field(17) description: str = _grpc_helpers.string_field(18) primary_index_description: str = _grpc_helpers.string_field(19) primary_index_company: str = _grpc_helpers.string_field(20) index_recovery_period: "Quotation" = _grpc_helpers.message_field(21) inav_code: str = _grpc_helpers.string_field(22) div_yield_flag: bool = _grpc_helpers.bool_field(23) expense_commission: "Quotation" = _grpc_helpers.message_field(24) primary_index_tracking_error: "Quotation" = _grpc_helpers.message_field(25) rebalancing_plan: str = _grpc_helpers.string_field(26) tax_rate: str = _grpc_helpers.string_field(27) rebalancing_dates: List[datetime] = _grpc_helpers.message_field(28) issue_kind: str = _grpc_helpers.string_field(29) nominal: "Quotation" = _grpc_helpers.message_field(30) nominal_currency: str = _grpc_helpers.string_field(31) @dataclass(eq=False, repr=True) class AssetClearingCertificate(_grpc_helpers.Message): nominal: "Quotation" = _grpc_helpers.message_field(1) nominal_currency: str = _grpc_helpers.string_field(2) @dataclass(eq=False, repr=True) class Brand(_grpc_helpers.Message): uid: str = _grpc_helpers.string_field(1) name: str = _grpc_helpers.string_field(2) description: str = _grpc_helpers.string_field(3) info: str = _grpc_helpers.string_field(4) company: str = _grpc_helpers.string_field(5) sector: str = _grpc_helpers.string_field(6) country_of_risk: str = _grpc_helpers.string_field(7) country_of_risk_name: str = _grpc_helpers.string_field(8) @dataclass(eq=False, repr=True) class AssetInstrument(_grpc_helpers.Message): uid: str = _grpc_helpers.string_field(1) figi: str = _grpc_helpers.string_field(2) instrument_type: str = _grpc_helpers.string_field(3) ticker: str = _grpc_helpers.string_field(4) class_code: str = _grpc_helpers.string_field(5) links: List["InstrumentLink"] = _grpc_helpers.message_field(6) instrument_kind: "InstrumentType" = _grpc_helpers.enum_field(10) position_uid: str = _grpc_helpers.string_field(11) @dataclass(eq=False, repr=True) class InstrumentLink(_grpc_helpers.Message): type: str = _grpc_helpers.string_field(1) instrument_uid: str = _grpc_helpers.string_field(2) @dataclass(eq=False, repr=True) class GetFavoritesRequest(_grpc_helpers.Message): group_id: Optional[str] = _grpc_helpers.string_field(1) @dataclass(eq=False, repr=True) class GetFavoritesResponse(_grpc_helpers.Message): favorite_instruments: List["FavoriteInstrument"] = _grpc_helpers.message_field(1) group_id: Optional[str] = _grpc_helpers.string_field(2) @dataclass(eq=False, repr=True) class FavoriteInstrument(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) ticker: str = _grpc_helpers.string_field(2) class_code: str = _grpc_helpers.string_field(3) isin: str = _grpc_helpers.string_field(4) instrument_type: str = _grpc_helpers.string_field(11) name: str = _grpc_helpers.string_field(12) uid: str = _grpc_helpers.string_field(13) otc_flag: bool = _grpc_helpers.bool_field(16) api_trade_available_flag: bool = _grpc_helpers.bool_field(17) instrument_kind: "InstrumentType" = _grpc_helpers.enum_field(18) @dataclass(eq=False, repr=True) class EditFavoritesRequest(_grpc_helpers.Message): instruments: List["EditFavoritesRequestInstrument"] = _grpc_helpers.message_field(1) action_type: "EditFavoritesActionType" = _grpc_helpers.enum_field(6) group_id: Optional[str] = _grpc_helpers.string_field(7) @dataclass(eq=False, repr=True) class EditFavoritesRequestInstrument(_grpc_helpers.Message): figi: Optional[str] = _grpc_helpers.string_field(1) instrument_id: str = _grpc_helpers.string_field(2) @dataclass(eq=False, repr=True) class EditFavoritesResponse(_grpc_helpers.Message): favorite_instruments: List["FavoriteInstrument"] = _grpc_helpers.message_field(1) group_id: Optional[str] = _grpc_helpers.string_field(2) @dataclass(eq=False, repr=True) class CreateFavoriteGroupRequest(_grpc_helpers.Message): group_name: str = _grpc_helpers.string_field(1) group_color: str = _grpc_helpers.string_field(2) note: Optional[str] = _grpc_helpers.string_field(3) @dataclass(eq=False, repr=True) class CreateFavoriteGroupResponse(_grpc_helpers.Message): group_id: str = _grpc_helpers.string_field(1) group_name: str = _grpc_helpers.string_field(2) @dataclass(eq=False, repr=True) class DeleteFavoriteGroupRequest(_grpc_helpers.Message): group_id: str = _grpc_helpers.string_field(1) @dataclass(eq=False, repr=True) class DeleteFavoriteGroupResponse(_grpc_helpers.Message): pass @dataclass(eq=False, repr=True) class GetFavoriteGroupsRequest(_grpc_helpers.Message): instrument_id: List[str] = _grpc_helpers.string_field(1) excluded_group_id: List[str] = _grpc_helpers.string_field(2) @dataclass(eq=False, repr=True) class GetFavoriteGroupsResponse(_grpc_helpers.Message): groups: List["FavoriteGroup"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class FavoriteGroup(_grpc_helpers.Message): group_id: str = _grpc_helpers.string_field(1) group_name: str = _grpc_helpers.string_field(2) color: str = _grpc_helpers.string_field(3) size: int = _grpc_helpers.int32_field(4) contains_instrument: Optional[bool] = _grpc_helpers.message_field(5) @dataclass(eq=False, repr=True) class GetCountriesRequest(_grpc_helpers.Message): pass @dataclass(eq=False, repr=True) class GetCountriesResponse(_grpc_helpers.Message): countries: List["CountryResponse"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class IndicativesRequest(_grpc_helpers.Message): pass @dataclass(eq=False, repr=True) class IndicativeResponse(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) ticker: str = _grpc_helpers.string_field(2) class_code: str = _grpc_helpers.string_field(3) currency: str = _grpc_helpers.string_field(4) instrument_kind: "InstrumentType" = _grpc_helpers.enum_field(10) name: str = _grpc_helpers.string_field(12) exchange: str = _grpc_helpers.string_field(13) uid: str = _grpc_helpers.string_field(14) buy_available_flag: bool = _grpc_helpers.bool_field(404) sell_available_flag: bool = _grpc_helpers.bool_field(405) @dataclass(eq=False, repr=True) class IndicativesResponse(_grpc_helpers.Message): instruments: List["IndicativeResponse"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class CountryResponse(_grpc_helpers.Message): alfa_two: str = _grpc_helpers.string_field(1) alfa_three: str = _grpc_helpers.string_field(2) name: str = _grpc_helpers.string_field(3) name_brief: str = _grpc_helpers.string_field(4) @dataclass(eq=False, repr=True) class FindInstrumentRequest(_grpc_helpers.Message): query: str = _grpc_helpers.string_field(1) instrument_kind: Optional["InstrumentType"] = _grpc_helpers.enum_field(2) api_trade_available_flag: Optional[bool] = _grpc_helpers.bool_field(3) @dataclass(eq=False, repr=True) class FindInstrumentResponse(_grpc_helpers.Message): instruments: List["InstrumentShort"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class InstrumentShort(_grpc_helpers.Message): isin: str = _grpc_helpers.string_field(1) figi: str = _grpc_helpers.string_field(2) ticker: str = _grpc_helpers.string_field(3) class_code: str = _grpc_helpers.string_field(4) instrument_type: str = _grpc_helpers.string_field(5) name: str = _grpc_helpers.string_field(6) uid: str = _grpc_helpers.string_field(7) position_uid: str = _grpc_helpers.string_field(8) instrument_kind: "InstrumentType" = _grpc_helpers.enum_field(10) api_trade_available_flag: str = _grpc_helpers.string_field(11) for_iis_flag: bool = _grpc_helpers.bool_field(12) first_1min_candle_date: datetime = _grpc_helpers.message_field(26) first_1day_candle_date: datetime = _grpc_helpers.message_field(27) for_qual_investor_flag: bool = _grpc_helpers.bool_field(28) weekend_flag: bool = _grpc_helpers.bool_field(29) blocked_tca_flag: bool = _grpc_helpers.bool_field(30) lot: int = _grpc_helpers.int32_field(31) @dataclass(eq=False, repr=True) class GetBrandsRequest(_grpc_helpers.Message): paging: "Page" = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class GetBrandRequest(_grpc_helpers.Message): id: str = _grpc_helpers.string_field(1) @dataclass(eq=False, repr=True) class GetBrandsResponse(_grpc_helpers.Message): brands: List["Brand"] = _grpc_helpers.message_field(1) paging: "PageResponse" = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class MarketDataRequest(_grpc_helpers.Message): subscribe_candles_request: "SubscribeCandlesRequest" = _grpc_helpers.message_field( 1, group="payload" ) subscribe_order_book_request: "SubscribeOrderBookRequest" = ( _grpc_helpers.message_field(2, group="payload") ) subscribe_trades_request: "SubscribeTradesRequest" = _grpc_helpers.message_field( 3, group="payload" ) subscribe_info_request: "SubscribeInfoRequest" = _grpc_helpers.message_field( 4, group="payload" ) subscribe_last_price_request: "SubscribeLastPriceRequest" = ( _grpc_helpers.message_field(5, group="payload") ) get_my_subscriptions: "GetMySubscriptions" = _grpc_helpers.message_field( 6, group="payload" ) ping: "PingRequest" = _grpc_helpers.message_field(7, group="payload") ping_settings: "PingDelaySettings" = _grpc_helpers.message_field( 15, group="payload" ) @dataclass(eq=False, repr=True) class MarketDataServerSideStreamRequest(_grpc_helpers.Message): subscribe_candles_request: "SubscribeCandlesRequest" = _grpc_helpers.message_field( 1 ) subscribe_order_book_request: "SubscribeOrderBookRequest" = ( _grpc_helpers.message_field(2) ) subscribe_trades_request: "SubscribeTradesRequest" = _grpc_helpers.message_field(3) subscribe_info_request: "SubscribeInfoRequest" = _grpc_helpers.message_field(4) subscribe_last_price_request: "SubscribeLastPriceRequest" = ( _grpc_helpers.message_field(5) ) ping_settings: "PingDelaySettings" = _grpc_helpers.message_field(15) @dataclass(eq=False, repr=True) class MarketDataResponse( _grpc_helpers.Message ): # pylint:disable=too-many-instance-attributes subscribe_candles_response: "SubscribeCandlesResponse" = ( _grpc_helpers.message_field(1, group="payload") ) subscribe_order_book_response: "SubscribeOrderBookResponse" = ( _grpc_helpers.message_field(2, group="payload") ) subscribe_trades_response: "SubscribeTradesResponse" = _grpc_helpers.message_field( 3, group="payload" ) subscribe_info_response: "SubscribeInfoResponse" = _grpc_helpers.message_field( 4, group="payload" ) candle: "Candle" = _grpc_helpers.message_field(5, group="payload") trade: "Trade" = _grpc_helpers.message_field(6, group="payload") orderbook: "OrderBook" = _grpc_helpers.message_field(7, group="payload") trading_status: "TradingStatus" = _grpc_helpers.message_field(8, group="payload") ping: "Ping" = _grpc_helpers.message_field(9, group="payload") subscribe_last_price_response: "SubscribeLastPriceResponse" = ( _grpc_helpers.message_field(10, group="payload") ) last_price: "LastPrice" = _grpc_helpers.message_field(11, group="payload") open_interest: "OpenInterest" = _grpc_helpers.message_field(12, group="payload") @dataclass(eq=False, repr=True) class SubscribeCandlesRequest(_grpc_helpers.Message): subscription_action: "SubscriptionAction" = _grpc_helpers.enum_field(1) instruments: List["CandleInstrument"] = _grpc_helpers.message_field(2) waiting_close: bool = _grpc_helpers.bool_field(3) candle_source_type: "CandleSource" = _grpc_helpers.enum_field(9) @dataclass(eq=False, repr=True) class CandleInstrument(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) interval: "SubscriptionInterval" = _grpc_helpers.enum_field(2) instrument_id: str = _grpc_helpers.string_field(3) @dataclass(eq=False, repr=True) class SubscribeCandlesResponse(_grpc_helpers.Message): tracking_id: str = _grpc_helpers.string_field(1) candles_subscriptions: List["CandleSubscription"] = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class CandleSubscription(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) interval: "SubscriptionInterval" = _grpc_helpers.enum_field(2) subscription_status: "SubscriptionStatus" = _grpc_helpers.enum_field(3) instrument_uid: str = _grpc_helpers.string_field(4) waiting_close: bool = _grpc_helpers.bool_field(5) stream_id: str = _grpc_helpers.string_field(6) subscription_id: str = _grpc_helpers.string_field(7) subscription_action: "SubscriptionAction" = _grpc_helpers.enum_field(8) candle_source_type: Optional["CandleSource"] = _grpc_helpers.enum_field( 9, optional=True ) @dataclass(eq=False, repr=True) class SubscribeOrderBookRequest(_grpc_helpers.Message): subscription_action: "SubscriptionAction" = _grpc_helpers.enum_field(1) instruments: List["OrderBookInstrument"] = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class OrderBookInstrument(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) depth: int = _grpc_helpers.int32_field(2) instrument_id: str = _grpc_helpers.string_field(3) order_book_type: "OrderBookType" = _grpc_helpers.message_field(4) @dataclass(eq=False, repr=True) class SubscribeOrderBookResponse(_grpc_helpers.Message): tracking_id: str = _grpc_helpers.string_field(1) order_book_subscriptions: List[ "OrderBookSubscription" ] = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class OrderBookSubscription(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) depth: int = _grpc_helpers.int32_field(2) subscription_status: "SubscriptionStatus" = _grpc_helpers.enum_field(3) instrument_uid: str = _grpc_helpers.string_field(4) stream_id: str = _grpc_helpers.string_field(5) subscription_id: str = _grpc_helpers.string_field(6) order_book_type: "OrderBookType" = _grpc_helpers.message_field(7) subscription_action: "SubscriptionAction" = _grpc_helpers.enum_field(8) @dataclass(eq=False, repr=True) class SubscribeTradesRequest(_grpc_helpers.Message): subscription_action: "SubscriptionAction" = _grpc_helpers.enum_field(1) instruments: List["TradeInstrument"] = _grpc_helpers.message_field(2) trade_source: "TradeSourceType" = _grpc_helpers.message_field(3) with_open_interest: bool = _grpc_helpers.bool_field(4) @dataclass(eq=False, repr=True) class SubscribeLastPriceRequest(_grpc_helpers.Message): subscription_action: "SubscriptionAction" = _grpc_helpers.message_field(1) instruments: List["LastPriceInstrument"] = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class LastPriceInstrument(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) instrument_id: str = _grpc_helpers.string_field(2) @dataclass(eq=False, repr=True) class SubscribeLastPriceResponse(_grpc_helpers.Message): tracking_id: str = _grpc_helpers.string_field(1) last_price_subscriptions: List[ "LastPriceSubscription" ] = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class LastPriceSubscription(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) subscription_status: "SubscriptionStatus" = _grpc_helpers.message_field(2) instrument_uid: str = _grpc_helpers.string_field(3) stream_id: str = _grpc_helpers.string_field(4) subscription_id: str = _grpc_helpers.string_field(5) subscription_action: "SubscriptionAction" = _grpc_helpers.message_field(6) @dataclass(eq=False, repr=True) class TradeInstrument(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) instrument_id: str = _grpc_helpers.string_field(2) @dataclass(eq=False, repr=True) class SubscribeTradesResponse(_grpc_helpers.Message): tracking_id: str = _grpc_helpers.string_field(1) trade_subscriptions: List["TradeSubscription"] = _grpc_helpers.message_field(2) trade_source: "TradeSourceType" = _grpc_helpers.message_field(3) @dataclass(eq=False, repr=True) class TradeSubscription(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) subscription_status: "SubscriptionStatus" = _grpc_helpers.enum_field(2) instrument_uid: str = _grpc_helpers.string_field(3) stream_id: str = _grpc_helpers.string_field(4) subscription_id: str = _grpc_helpers.string_field(5) with_open_interest: bool = _grpc_helpers.bool_field(6) subscription_action: "SubscriptionAction" = _grpc_helpers.enum_field(7) @dataclass(eq=False, repr=True) class SubscribeInfoRequest(_grpc_helpers.Message): subscription_action: "SubscriptionAction" = _grpc_helpers.enum_field(1) instruments: List["InfoInstrument"] = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class InfoInstrument(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) instrument_id: str = _grpc_helpers.string_field(2) @dataclass(eq=False, repr=True) class SubscribeInfoResponse(_grpc_helpers.Message): tracking_id: str = _grpc_helpers.string_field(1) info_subscriptions: List["InfoSubscription"] = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class InfoSubscription(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) subscription_status: "SubscriptionStatus" = _grpc_helpers.enum_field(2) instrument_uid: str = _grpc_helpers.string_field(3) stream_id: str = _grpc_helpers.string_field(4) subscription_id: str = _grpc_helpers.string_field(5) subscription_action: "SubscriptionAction" = _grpc_helpers.enum_field(6) @dataclass(eq=False, repr=True) class Candle(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) interval: "SubscriptionInterval" = _grpc_helpers.enum_field(2) open: "Quotation" = _grpc_helpers.message_field(3) high: "Quotation" = _grpc_helpers.message_field(4) low: "Quotation" = _grpc_helpers.message_field(5) close: "Quotation" = _grpc_helpers.message_field(6) volume: int = _grpc_helpers.int64_field(7) time: datetime = _grpc_helpers.message_field(8) last_trade_ts: datetime = _grpc_helpers.message_field(9) instrument_uid: str = _grpc_helpers.string_field(10) ticker: str = _grpc_helpers.string_field(11) class_code: str = _grpc_helpers.string_field(12) volume_buy: int = _grpc_helpers.int64_field(13) volume_sell: int = _grpc_helpers.int64_field(14) candle_source_type: "CandleSource" = _grpc_helpers.enum_field(19) @dataclass(eq=False, repr=True) class OrderBook(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) depth: int = _grpc_helpers.int32_field(2) is_consistent: bool = _grpc_helpers.bool_field(3) bids: List["Order"] = _grpc_helpers.message_field(4) asks: List["Order"] = _grpc_helpers.message_field(5) time: datetime = _grpc_helpers.message_field(6) limit_up: "Quotation" = _grpc_helpers.message_field(7) limit_down: "Quotation" = _grpc_helpers.message_field(8) instrument_uid: str = _grpc_helpers.string_field(9) order_book_type: "OrderBookType" = _grpc_helpers.message_field(10) @dataclass(eq=False, repr=True) class Order(_grpc_helpers.Message): price: "Quotation" = _grpc_helpers.message_field(1) quantity: int = _grpc_helpers.int64_field(2) @dataclass(eq=False, repr=True) class Trade(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) direction: "TradeDirection" = _grpc_helpers.enum_field(2) price: "Quotation" = _grpc_helpers.message_field(3) quantity: int = _grpc_helpers.int64_field(4) time: datetime = _grpc_helpers.message_field(5) instrument_uid: str = _grpc_helpers.string_field(6) trade_source: TradeSourceType = _grpc_helpers.message_field(7) @dataclass(eq=False, repr=True) class TradingStatus(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) trading_status: "SecurityTradingStatus" = _grpc_helpers.enum_field(2) time: datetime = _grpc_helpers.enum_field(3) limit_order_available_flag: bool = _grpc_helpers.bool_field(4) market_order_available_flag: bool = _grpc_helpers.bool_field(5) instrument_uid: str = _grpc_helpers.string_field(6) @dataclass(eq=False, repr=True) class GetCandlesRequest(_grpc_helpers.Message): figi: Optional[str] = _grpc_helpers.string_field(1) from_: datetime = _grpc_helpers.message_field(2) to: datetime = _grpc_helpers.message_field(3) interval: "CandleInterval" = _grpc_helpers.enum_field(4) instrument_id: Optional[str] = _grpc_helpers.string_field(5) candle_source_type: Optional[CandleSource] = _grpc_helpers.string_field(7) limit: Optional[int] = _grpc_helpers.int32_field(10) @dataclass(eq=False, repr=True) class GetCandlesResponse(_grpc_helpers.Message): candles: List["HistoricCandle"] = _grpc_helpers.message_field(1) @dataclass(eq=True, repr=True, frozen=True) class HistoricCandle(_grpc_helpers.Message): open: Quotation = _grpc_helpers.message_field(1) high: Quotation = _grpc_helpers.message_field(2) low: Quotation = _grpc_helpers.message_field(3) close: Quotation = _grpc_helpers.message_field(4) volume: int = _grpc_helpers.int64_field(5) time: datetime = _grpc_helpers.message_field(6) is_complete: bool = _grpc_helpers.bool_field(7) candle_source: CandleSource = _grpc_helpers.message_field(9) volume_buy: int = _grpc_helpers.int64_field(10) volume_sell: int = _grpc_helpers.int64_field(11) @dataclass(eq=False, repr=True) class GetLastPricesRequest(_grpc_helpers.Message): figi: List[str] = _grpc_helpers.string_field(1) instrument_id: List[str] = _grpc_helpers.string_field(2) last_price_type: LastPriceType = _grpc_helpers.message_field(3) instrument_status: Optional["InstrumentStatus"] = _grpc_helpers.enum_field(9) @dataclass(eq=False, repr=True) class GetLastPricesResponse(_grpc_helpers.Message): last_prices: List["LastPrice"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class LastPrice(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) price: "Quotation" = _grpc_helpers.message_field(2) time: datetime = _grpc_helpers.message_field(3) instrument_uid: str = _grpc_helpers.string_field(11) last_price_type: LastPriceType = _grpc_helpers.message_field(12) @dataclass(eq=False, repr=True) class OpenInterest(_grpc_helpers.Message): instrument_uid: str = _grpc_helpers.string_field(1) time: datetime = _grpc_helpers.message_field(2) open_interest: int = _grpc_helpers.int64_field(3) @dataclass(eq=False, repr=True) class GetOrderBookRequest(_grpc_helpers.Message): figi: Optional[str] = _grpc_helpers.string_field(1) depth: int = _grpc_helpers.int32_field(2) instrument_id: Optional[str] = _grpc_helpers.string_field(3) @dataclass(eq=False, repr=True) class GetOrderBookResponse(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) depth: int = _grpc_helpers.int32_field(2) bids: List["Order"] = _grpc_helpers.message_field(3) asks: List["Order"] = _grpc_helpers.message_field(4) last_price: "Quotation" = _grpc_helpers.message_field(5) close_price: "Quotation" = _grpc_helpers.message_field(6) limit_up: "Quotation" = _grpc_helpers.message_field(7) limit_down: "Quotation" = _grpc_helpers.message_field(8) last_price_ts: datetime = _grpc_helpers.message_field(21) close_price_ts: datetime = _grpc_helpers.message_field(22) orderbook_ts: datetime = _grpc_helpers.message_field(23) instrument_uid: str = _grpc_helpers.string_field(9) @dataclass(eq=False, repr=True) class GetTradingStatusRequest(_grpc_helpers.Message): figi: Optional[str] = _grpc_helpers.string_field(1) instrument_id: Optional[str] = _grpc_helpers.string_field(2) @dataclass(eq=False, repr=True) class GetTradingStatusesRequest(_grpc_helpers.Message): instrument_id: List[str] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class GetTradingStatusesResponse(_grpc_helpers.Message): trading_statuses: List["GetTradingStatusResponse"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class GetTradingStatusResponse(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) trading_status: "SecurityTradingStatus" = _grpc_helpers.enum_field(2) limit_order_available_flag: bool = _grpc_helpers.bool_field(3) market_order_available_flag: bool = _grpc_helpers.bool_field(4) api_trade_available_flag: bool = _grpc_helpers.bool_field(5) instrument_uid: str = _grpc_helpers.string_field(6) bestprice_order_available_flag: bool = _grpc_helpers.bool_field(8) only_best_price: bool = _grpc_helpers.bool_field(9) @dataclass(eq=False, repr=True) class GetLastTradesRequest(_grpc_helpers.Message): figi: Optional[str] = _grpc_helpers.string_field(1) from_: datetime = _grpc_helpers.message_field(2) to: datetime = _grpc_helpers.message_field(3) instrument_id: Optional[str] = _grpc_helpers.string_field(4) trade_source: TradeSourceType = _grpc_helpers.enum_field(5) @dataclass(eq=False, repr=True) class GetLastTradesResponse(_grpc_helpers.Message): trades: List["Trade"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class GetMySubscriptions(_grpc_helpers.Message): pass @dataclass(eq=False, repr=True) class GetClosePricesRequest(_grpc_helpers.Message): instruments: List["InstrumentClosePriceRequest"] = _grpc_helpers.message_field(1) instrument_status: Optional["InstrumentStatus"] = _grpc_helpers.enum_field(9) @dataclass(eq=False, repr=True) class InstrumentClosePriceRequest(_grpc_helpers.Message): instrument_id: str = _grpc_helpers.string_field(1) @dataclass(eq=False, repr=True) class GetClosePricesResponse(_grpc_helpers.Message): close_prices: List["InstrumentClosePriceResponse"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class InstrumentClosePriceResponse(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) instrument_uid: str = _grpc_helpers.string_field(2) price: "Quotation" = _grpc_helpers.message_field(11) evening_session_price: "Quotation" = _grpc_helpers.message_field(12) time: datetime = _grpc_helpers.message_field(21) evening_session_price_time: datetime = _grpc_helpers.message_field(23) @dataclass(eq=False, repr=True) class GetMarketValuesRequest(_grpc_helpers.Message): instrument_id: List[str] = _grpc_helpers.message_field(1) values: List["MarketValueType"] = _grpc_helpers.message_field(2) class MarketValueType(_grpc_helpers.Enum): INSTRUMENT_VALUE_UNSPECIFIED = 0 INSTRUMENT_VALUE_LAST_PRICE = 1 INSTRUMENT_VALUE_LAST_PRICE_DEALER = 2 INSTRUMENT_VALUE_CLOSE_PRICE = 3 INSTRUMENT_VALUE_EVENING_SESSION_PRICE = 4 INSTRUMENT_VALUE_OPEN_INTEREST = 5 INSTRUMENT_VALUE_THEOR_PRICE = 6 @dataclass(eq=False, repr=True) class GetMarketValuesResponse(_grpc_helpers.Message): instruments: List["MarketValueInstrument"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class MarketValueInstrument(_grpc_helpers.Message): instrument_uid: str = _grpc_helpers.string_field(1) values: List["MarketValue"] = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class MarketValue(_grpc_helpers.Message): type: "MarketValueType" = _grpc_helpers.enum_field(1) value: "Quotation" = _grpc_helpers.message_field(2) time: datetime = _grpc_helpers.message_field(3) @dataclass(eq=False, repr=True) class Smoothing(_grpc_helpers.Message): fast_length: int = _grpc_helpers.int32_field(1) slow_length: int = _grpc_helpers.int32_field(2) signal_smoothing: int = _grpc_helpers.int32_field(3) @dataclass(eq=False, repr=True) class Deviation(_grpc_helpers.Message): deviation_multiplier: "Quotation" = _grpc_helpers.message_field(1) class IndicatorInterval(_grpc_helpers.Enum): INDICATOR_INTERVAL_UNSPECIFIED = 0 INDICATOR_INTERVAL_ONE_MINUTE = 1 INDICATOR_INTERVAL_FIVE_MINUTES = 2 INDICATOR_INTERVAL_FIFTEEN_MINUTES = 3 INDICATOR_INTERVAL_ONE_HOUR = 4 INDICATOR_INTERVAL_ONE_DAY = 5 INDICATOR_INTERVAL_2_MIN = 6 INDICATOR_INTERVAL_3_MIN = 7 INDICATOR_INTERVAL_10_MIN = 8 INDICATOR_INTERVAL_30_MIN = 9 INDICATOR_INTERVAL_2_HOUR = 10 INDICATOR_INTERVAL_4_HOUR = 11 INDICATOR_INTERVAL_WEEK = 12 INDICATOR_INTERVAL_MONTH = 13 class TypeOfPrice(_grpc_helpers.Enum): TYPE_OF_PRICE_UNSPECIFIED = 0 TYPE_OF_PRICE_CLOSE = 1 TYPE_OF_PRICE_OPEN = 2 TYPE_OF_PRICE_HIGH = 3 TYPE_OF_PRICE_LOW = 4 TYPE_OF_PRICE_AVG = 5 class IndicatorType(_grpc_helpers.Enum): INDICATOR_TYPE_UNSPECIFIED = 0 INDICATOR_TYPE_BB = 1 INDICATOR_TYPE_EMA = 2 INDICATOR_TYPE_RSI = 3 INDICATOR_TYPE_MACD = 4 INDICATOR_TYPE_SMA = 5 @dataclass(eq=False, repr=True) class GetTechAnalysisRequest(_grpc_helpers.Message): indicator_type: "IndicatorType" = _grpc_helpers.enum_field(1) instrument_uid: str = _grpc_helpers.string_field(2) from_: datetime = _grpc_helpers.message_field(3) to: datetime = _grpc_helpers.message_field(4) interval: "IndicatorInterval" = _grpc_helpers.enum_field(5) type_of_price: "TypeOfPrice" = _grpc_helpers.enum_field(6) length: int = _grpc_helpers.int32_field(7) deviation: "Deviation" = _grpc_helpers.message_field(8) smoothing: "Smoothing" = _grpc_helpers.message_field(9) @dataclass(eq=False, repr=True) class TechAnalysisItem(_grpc_helpers.Message): timestamp: datetime = _grpc_helpers.message_field(1) middle_band: Optional["Quotation"] = _grpc_helpers.message_field(2, optional=True) upper_band: Optional["Quotation"] = _grpc_helpers.message_field(3, optional=True) lower_band: Optional["Quotation"] = _grpc_helpers.message_field(4, optional=True) signal: Optional["Quotation"] = _grpc_helpers.message_field(5, optional=True) macd: Optional["Quotation"] = _grpc_helpers.message_field(6, optional=True) @dataclass(eq=False, repr=True) class GetTechAnalysisResponse(_grpc_helpers.Message): technical_indicators: List["TechAnalysisItem"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class OperationsRequest(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) from_: Optional[datetime] = _grpc_helpers.message_field(2) to: Optional[datetime] = _grpc_helpers.message_field(3) state: Optional["OperationState"] = _grpc_helpers.enum_field(4) figi: Optional[str] = _grpc_helpers.string_field(5) @dataclass(eq=False, repr=True) class OperationsResponse(_grpc_helpers.Message): operations: List["Operation"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class OperationTrade(_grpc_helpers.Message): trade_id: str = _grpc_helpers.string_field(1) date_time: datetime = _grpc_helpers.message_field(2) quantity: int = _grpc_helpers.int64_field(3) price: "MoneyValue" = _grpc_helpers.message_field(4) @dataclass(eq=False, repr=True) class ChildOperationItem(_grpc_helpers.Message): instrument_uid: str = _grpc_helpers.string_field(1) payment: "MoneyValue" = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class OperationsStreamRequest(_grpc_helpers.Message): accounts: List[str] = _grpc_helpers.message_field(1) ping_settings: "PingDelaySettings" = _grpc_helpers.message_field(15) @dataclass(eq=False, repr=True) class OperationsStreamResponse(_grpc_helpers.Message): subscriptions: "OperationsSubscriptionResult" = _grpc_helpers.message_field( 1, group="payload" ) operation: "OperationData" = _grpc_helpers.message_field(2, group="payload") ping: "Ping" = _grpc_helpers.message_field(3, group="payload") @dataclass(eq=False, repr=True) class OperationsSubscriptionResult(_grpc_helpers.Message): accounts: List[str] = _grpc_helpers.message_field(1) subscription_status: "OperationsAccountSubscriptionStatus" = ( _grpc_helpers.enum_field(2) ) tracking_id: str = _grpc_helpers.string_field(7) stream_id: str = _grpc_helpers.string_field(8) class OperationsAccountSubscriptionStatus(_grpc_helpers.Enum): OPERATIONS_SUBSCRIPTION_STATUS_UNSPECIFIED = 0 OPERATIONS_SUBSCRIPTION_STATUS_SUCCESS = 1 OPERATIONS_SUBSCRIPTION_STATUS_ACCOUNT_NOT_FOUND = 2 OPERATIONS_SUBSCRIPTION_STATUS_INTERNAL_ERROR = 3 @dataclass(eq=False, repr=True) class OperationData(_grpc_helpers.Message): broker_account_id: str = _grpc_helpers.string_field(1) id: str = _grpc_helpers.string_field(2) parent_operation_id: str = _grpc_helpers.string_field(3) name: str = _grpc_helpers.string_field(4) date: datetime = _grpc_helpers.message_field(5) type: "OperationType" = _grpc_helpers.enum_field(6) state: "OperationState" = _grpc_helpers.enum_field(7) instrument_uid: str = _grpc_helpers.string_field(8) figi: str = _grpc_helpers.string_field(9) instrument_type: str = _grpc_helpers.string_field(10) instrument_kind: InstrumentType = _grpc_helpers.enum_field(11) position_uid: str = _grpc_helpers.string_field(12) ticker: str = _grpc_helpers.string_field(13) class_code: str = _grpc_helpers.string_field(14) payment: MoneyValue = _grpc_helpers.message_field(15) @dataclass(eq=False, repr=True) class Operation(_grpc_helpers.Message): # pylint:disable=too-many-instance-attributes id: str = _grpc_helpers.string_field(1) parent_operation_id: str = _grpc_helpers.string_field(2) currency: str = _grpc_helpers.string_field(3) payment: "MoneyValue" = _grpc_helpers.message_field(4) price: "MoneyValue" = _grpc_helpers.message_field(5) state: "OperationState" = _grpc_helpers.enum_field(6) quantity: int = _grpc_helpers.int64_field(7) quantity_rest: int = _grpc_helpers.int64_field(8) figi: str = _grpc_helpers.string_field(9) instrument_type: str = _grpc_helpers.string_field(10) date: datetime = _grpc_helpers.message_field(11) type: str = _grpc_helpers.string_field(12) operation_type: "OperationType" = _grpc_helpers.enum_field(13) trades: List["OperationTrade"] = _grpc_helpers.message_field(14) asset_uid: str = _grpc_helpers.string_field(16) position_uid: str = _grpc_helpers.string_field(17) instrument_uid: str = _grpc_helpers.string_field(18) child_operations: List["ChildOperationItem"] = _grpc_helpers.message_field(19) class CurrencyRequest(_grpc_helpers.Enum): RUB = 0 USD = 1 EUR = 2 @dataclass(eq=False, repr=True) class PortfolioRequest(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) currency: Optional[CurrencyRequest] = _grpc_helpers.enum_field(2) @dataclass(eq=False, repr=True) class VirtualPortfolioPosition(_grpc_helpers.Message): position_uid: str = _grpc_helpers.string_field(1) instrument_uid: str = _grpc_helpers.string_field(2) figi: str = _grpc_helpers.string_field(3) instrument_type: str = _grpc_helpers.string_field(4) quantity: "Quotation" = _grpc_helpers.message_field(5) average_position_price: "MoneyValue" = _grpc_helpers.message_field(6) expected_yield: "Quotation" = _grpc_helpers.message_field(7) expected_yield_fifo: "Quotation" = _grpc_helpers.message_field(8) expire_date: datetime = _grpc_helpers.message_field(9) current_price: "MoneyValue" = _grpc_helpers.message_field(10) average_position_price_fifo: "MoneyValue" = _grpc_helpers.message_field(11) daily_yield: "MoneyValue" = _grpc_helpers.message_field(31) ticker: str = _grpc_helpers.string_field(32) @dataclass(eq=False, repr=True) class PortfolioResponse(_grpc_helpers.Message): total_amount_shares: "MoneyValue" = _grpc_helpers.message_field(1) total_amount_bonds: "MoneyValue" = _grpc_helpers.message_field(2) total_amount_etf: "MoneyValue" = _grpc_helpers.message_field(3) total_amount_currencies: "MoneyValue" = _grpc_helpers.message_field(4) total_amount_futures: "MoneyValue" = _grpc_helpers.message_field(5) expected_yield: "Quotation" = _grpc_helpers.message_field(6) positions: List["PortfolioPosition"] = _grpc_helpers.message_field(7) account_id: str = _grpc_helpers.string_field(8) total_amount_options: MoneyValue = _grpc_helpers.message_field(9) total_amount_sp: MoneyValue = _grpc_helpers.message_field(10) total_amount_portfolio: MoneyValue = _grpc_helpers.message_field(11) virtual_positions: List["VirtualPortfolioPosition"] = _grpc_helpers.message_field( 12 ) daily_yield: MoneyValue = _grpc_helpers.message_field(15) daily_yield_relative: Quotation = _grpc_helpers.message_field(16) total_amount_dfa: MoneyValue = _grpc_helpers.message_field(17) @dataclass(eq=False, repr=True) class PositionsRequest(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) @dataclass(eq=False, repr=True) class PositionsResponse(_grpc_helpers.Message): money: List["MoneyValue"] = _grpc_helpers.message_field(1) blocked: List["MoneyValue"] = _grpc_helpers.message_field(2) securities: List["PositionsSecurities"] = _grpc_helpers.message_field(3) limits_loading_in_progress: bool = _grpc_helpers.bool_field(4) futures: List["PositionsFutures"] = _grpc_helpers.bool_field(5) options: List["PositionsOptions"] = _grpc_helpers.bool_field(6) account_id: str = _grpc_helpers.string_field(15) @dataclass(eq=False, repr=True) class WithdrawLimitsRequest(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) @dataclass(eq=False, repr=True) class WithdrawLimitsResponse(_grpc_helpers.Message): money: List["MoneyValue"] = _grpc_helpers.message_field(1) blocked: List["MoneyValue"] = _grpc_helpers.message_field(2) blocked_guarantee: List["MoneyValue"] = _grpc_helpers.message_field(3) @dataclass(eq=False, repr=True) class PortfolioPosition(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) instrument_type: str = _grpc_helpers.string_field(2) quantity: "Quotation" = _grpc_helpers.message_field(3) average_position_price: "MoneyValue" = _grpc_helpers.message_field(4) expected_yield: "Quotation" = _grpc_helpers.message_field(5) current_nkd: "MoneyValue" = _grpc_helpers.message_field(6) average_position_price_pt: "Quotation" = _grpc_helpers.message_field(7) current_price: "MoneyValue" = _grpc_helpers.message_field(8) average_position_price_fifo: "MoneyValue" = _grpc_helpers.message_field(9) quantity_lots: "Quotation" = _grpc_helpers.message_field(10) blocked: bool = _grpc_helpers.bool_field(21) blocked_lots: "Quotation" = _grpc_helpers.message_field(22) position_uid: str = _grpc_helpers.string_field(24) instrument_uid: str = _grpc_helpers.string_field(25) var_margin: "MoneyValue" = _grpc_helpers.message_field(26) expected_yield_fifo: "Quotation" = _grpc_helpers.message_field(27) daily_yield: "MoneyValue" = _grpc_helpers.message_field(31) ticker: str = _grpc_helpers.string_field(32) @dataclass(eq=False, repr=True) class PositionsSecurities(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) blocked: int = _grpc_helpers.int64_field(2) balance: int = _grpc_helpers.int64_field(3) position_uid: str = _grpc_helpers.string_field(4) instrument_uid: str = _grpc_helpers.string_field(5) exchange_blocked: bool = _grpc_helpers.bool_field(11) instrument_type: str = _grpc_helpers.string_field(16) ticker: str = _grpc_helpers.string_field(6) @dataclass(eq=False, repr=True) class TradesStreamRequest(_grpc_helpers.Message): accounts: List[str] = _grpc_helpers.string_field(1) ping_delay_ms: Optional[int] = _grpc_helpers.int32_field(15) @dataclass(eq=False, repr=True) class TradesStreamResponse(_grpc_helpers.Message): order_trades: "OrderTrades" = _grpc_helpers.message_field(1, group="payload") ping: "Ping" = _grpc_helpers.message_field(2, group="payload") subscription: "SubscriptionResponse" = _grpc_helpers.message_field( 3, group="payload" ) @dataclass(eq=False, repr=True) class OrderTrades(_grpc_helpers.Message): order_id: str = _grpc_helpers.string_field(1) created_at: datetime = _grpc_helpers.message_field(2) direction: "OrderDirection" = _grpc_helpers.enum_field(3) figi: str = _grpc_helpers.string_field(4) trades: List["OrderTrade"] = _grpc_helpers.message_field(5) account_id: str = _grpc_helpers.string_field(6) instrument_uid: str = _grpc_helpers.string_field(7) @dataclass(eq=False, repr=True) class OrderTrade(_grpc_helpers.Message): date_time: datetime = _grpc_helpers.message_field(1) price: "Quotation" = _grpc_helpers.message_field(2) quantity: int = _grpc_helpers.int64_field(3) trade_id: str = _grpc_helpers.string_field(4) @dataclass(eq=False, repr=True) class PostOrderRequest(_grpc_helpers.Message): figi: Optional[str] = _grpc_helpers.string_field(1) quantity: int = _grpc_helpers.int64_field(2) price: Optional["Quotation"] = _grpc_helpers.message_field(3) direction: "OrderDirection" = _grpc_helpers.enum_field(4) account_id: str = _grpc_helpers.string_field(5) order_type: "OrderType" = _grpc_helpers.enum_field(6) order_id: str = _grpc_helpers.string_field(7) instrument_id: str = _grpc_helpers.string_field(8) time_in_force: "TimeInForceType" = _grpc_helpers.message_field(9) price_type: "PriceType" = _grpc_helpers.message_field(10) confirm_margin_trade: bool = _grpc_helpers.bool_field(11) @dataclass(eq=False, repr=True) class PostOrderResponse( # pylint:disable=too-many-instance-attributes _grpc_helpers.Message ): order_id: str = _grpc_helpers.string_field(1) execution_report_status: "OrderExecutionReportStatus" = _grpc_helpers.enum_field(2) lots_requested: int = _grpc_helpers.int64_field(3) lots_executed: int = _grpc_helpers.int64_field(4) initial_order_price: "MoneyValue" = _grpc_helpers.message_field(5) executed_order_price: "MoneyValue" = _grpc_helpers.message_field(6) total_order_amount: "MoneyValue" = _grpc_helpers.message_field(7) initial_commission: "MoneyValue" = _grpc_helpers.message_field(8) executed_commission: "MoneyValue" = _grpc_helpers.message_field(9) aci_value: "MoneyValue" = _grpc_helpers.message_field(10) figi: str = _grpc_helpers.string_field(11) direction: "OrderDirection" = _grpc_helpers.enum_field(12) initial_security_price: "MoneyValue" = _grpc_helpers.message_field(13) order_type: "OrderType" = _grpc_helpers.enum_field(14) message: str = _grpc_helpers.string_field(15) initial_order_price_pt: "Quotation" = _grpc_helpers.message_field(16) instrument_uid: str = _grpc_helpers.string_field(17) order_request_id: str = _grpc_helpers.string_field(20) response_metadata: "ResponseMetadata" = _grpc_helpers.message_field(254) @dataclass(eq=False, repr=True) class PostOrderAsyncRequest(_grpc_helpers.Message): instrument_id: str = _grpc_helpers.string_field(1) quantity: int = _grpc_helpers.int64_field(2) price: "Quotation" = _grpc_helpers.message_field(3) direction: "OrderDirection" = _grpc_helpers.message_field(4) account_id: str = _grpc_helpers.string_field(5) order_type: "OrderType" = _grpc_helpers.message_field(6) order_id: str = _grpc_helpers.string_field(7) time_in_force: TimeInForceType = _grpc_helpers.string_field(8) price_type: PriceType = _grpc_helpers.string_field(9) confirm_margin_trade: bool = _grpc_helpers.bool_field(10) @dataclass(eq=False, repr=True) class PostOrderAsyncResponse(_grpc_helpers.Message): order_request_id: str = _grpc_helpers.string_field(1) execution_report_status: "OrderExecutionReportStatus" = _grpc_helpers.message_field( 2 ) trade_intent_id: str = _grpc_helpers.string_field(3) @dataclass(eq=False, repr=True) class CancelOrderRequest(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) order_id: str = _grpc_helpers.string_field(2) order_id_type: Optional["OrderIdType"] = _grpc_helpers.message_field(3) @dataclass(eq=False, repr=True) class CancelOrderResponse(_grpc_helpers.Message): time: datetime = _grpc_helpers.message_field(1) response_metadata: "ResponseMetadata" = _grpc_helpers.message_field(254) @dataclass(eq=False, repr=True) class GetOrderStateRequest(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) order_id: str = _grpc_helpers.string_field(2) price_type: "PriceType" = _grpc_helpers.message_field(3) order_id_type: Optional["OrderIdType"] = _grpc_helpers.message_field(4) @dataclass(eq=False, repr=True) class GetOrdersRequest(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) advanced_filters: Optional["GetOrdersRequestFilters"] = _grpc_helpers.message_field( 2 ) @dataclass(eq=False, repr=True) class GetOrdersRequestFilters(_grpc_helpers.Message): from_: Optional[datetime] = _grpc_helpers.message_field(1) to: Optional[datetime] = _grpc_helpers.message_field(2) execution_status: List["OrderExecutionReportStatus"] = _grpc_helpers.message_field( 3 ) @dataclass(eq=False, repr=True) class GetOrdersResponse(_grpc_helpers.Message): orders: List["OrderState"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class OrderState(_grpc_helpers.Message): # pylint:disable=too-many-instance-attributes order_id: str = _grpc_helpers.string_field(1) execution_report_status: "OrderExecutionReportStatus" = _grpc_helpers.enum_field(2) lots_requested: int = _grpc_helpers.int64_field(3) lots_executed: int = _grpc_helpers.int64_field(4) initial_order_price: "MoneyValue" = _grpc_helpers.message_field(5) executed_order_price: "MoneyValue" = _grpc_helpers.message_field(6) total_order_amount: "MoneyValue" = _grpc_helpers.message_field(7) average_position_price: "MoneyValue" = _grpc_helpers.message_field(8) initial_commission: "MoneyValue" = _grpc_helpers.message_field(9) executed_commission: "MoneyValue" = _grpc_helpers.message_field(10) figi: str = _grpc_helpers.string_field(11) direction: "OrderDirection" = _grpc_helpers.enum_field(12) initial_security_price: "MoneyValue" = _grpc_helpers.message_field(13) stages: List["OrderStage"] = _grpc_helpers.message_field(14) service_commission: "MoneyValue" = _grpc_helpers.message_field(15) currency: str = _grpc_helpers.string_field(16) order_type: "OrderType" = _grpc_helpers.enum_field(17) order_date: datetime = _grpc_helpers.message_field(18) instrument_uid: str = _grpc_helpers.string_field(19) order_request_id: str = _grpc_helpers.string_field(20) @dataclass(eq=False, repr=True) class OrderStage(_grpc_helpers.Message): price: "MoneyValue" = _grpc_helpers.message_field(1) quantity: int = _grpc_helpers.int64_field(2) trade_id: str = _grpc_helpers.string_field(3) execution_time: datetime = _grpc_helpers.message_field(5) @dataclass(eq=False, repr=True) class ReplaceOrderRequest(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) order_id_type: "OrderIdType" = _grpc_helpers.message_field(5) order_id: str = _grpc_helpers.string_field(6) idempotency_key: str = _grpc_helpers.string_field(7) quantity: int = _grpc_helpers.int64_field(11) price: Optional["Quotation"] = _grpc_helpers.message_field(12) price_type: Optional["PriceType"] = _grpc_helpers.enum_field(13) confirm_margin_trade: bool = _grpc_helpers.bool_field(14) @dataclass(eq=False, repr=True) class GetAccountsRequest(_grpc_helpers.Message): status: Optional["AccountStatus"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class GetAccountsResponse(_grpc_helpers.Message): accounts: List["Account"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class Account(_grpc_helpers.Message): id: str = _grpc_helpers.string_field(1) type: "AccountType" = _grpc_helpers.enum_field(2) name: str = _grpc_helpers.string_field(3) status: "AccountStatus" = _grpc_helpers.enum_field(4) opened_date: datetime = _grpc_helpers.message_field(5) closed_date: datetime = _grpc_helpers.message_field(6) access_level: "AccessLevel" = _grpc_helpers.message_field(7) @classmethod def loads(cls, obj) -> "Account": return cls( id=obj.id, type=AccountType(obj.type), name=obj.name, status=AccountStatus(obj.type), opened_date=_grpc_helpers.ts_to_datetime(obj.opened_date), closed_date=_grpc_helpers.ts_to_datetime(obj.closed_date), ) @dataclass(eq=False, repr=True) class GetMarginAttributesRequest(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) @dataclass(eq=False, repr=True) class GetMarginAttributesResponse(_grpc_helpers.Message): liquid_portfolio: "MoneyValue" = _grpc_helpers.message_field(1) starting_margin: "MoneyValue" = _grpc_helpers.message_field(2) minimal_margin: "MoneyValue" = _grpc_helpers.message_field(3) funds_sufficiency_level: "Quotation" = _grpc_helpers.message_field(4) amount_of_missing_funds: "MoneyValue" = _grpc_helpers.message_field(5) corrected_margin: "MoneyValue" = _grpc_helpers.message_field(6) guarantee_for_futures: "MoneyValue" = _grpc_helpers.message_field(7) @dataclass(eq=False, repr=True) class GetUserTariffRequest(_grpc_helpers.Message): pass @dataclass(eq=False, repr=True) class GetUserTariffResponse(_grpc_helpers.Message): unary_limits: List["UnaryLimit"] = _grpc_helpers.message_field(1) stream_limits: List["StreamLimit"] = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class UnaryLimit(_grpc_helpers.Message): limit_per_minute: int = _grpc_helpers.int32_field(1) methods: List[str] = _grpc_helpers.string_field(2) @dataclass(eq=False, repr=True) class StreamLimit(_grpc_helpers.Message): limit: int = _grpc_helpers.int32_field(1) streams: List[str] = _grpc_helpers.string_field(2) open: int = _grpc_helpers.int32_field(3) @dataclass(eq=False, repr=True) class GetInfoRequest(_grpc_helpers.Message): pass @dataclass(eq=False, repr=True) class GetInfoResponse(_grpc_helpers.Message): prem_status: bool = _grpc_helpers.bool_field(1) qual_status: bool = _grpc_helpers.bool_field(2) qualified_for_work_with: List[str] = _grpc_helpers.string_field(3) tariff: str = _grpc_helpers.string_field(4) user_id: str = _grpc_helpers.string_field(9) risk_level_code: str = _grpc_helpers.string_field(12) @dataclass(eq=False, repr=True) class OpenSandboxAccountRequest(_grpc_helpers.Message): name: Optional[str] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class OpenSandboxAccountResponse(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) @dataclass(eq=False, repr=True) class CloseSandboxAccountRequest(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) @dataclass(eq=False, repr=True) class CloseSandboxAccountResponse(_grpc_helpers.Message): pass @dataclass(eq=False, repr=True) class SandboxPayInRequest(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) amount: "MoneyValue" = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class SandboxPayInResponse(_grpc_helpers.Message): balance: "MoneyValue" = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class PostStopOrderRequest(_grpc_helpers.Message): figi: Optional[str] = _grpc_helpers.string_field(1) quantity: int = _grpc_helpers.int64_field(2) price: Optional["Quotation"] = _grpc_helpers.message_field(3) stop_price: Optional["Quotation"] = _grpc_helpers.message_field(4) direction: "StopOrderDirection" = _grpc_helpers.enum_field(5) account_id: str = _grpc_helpers.string_field(6) expiration_type: "StopOrderExpirationType" = _grpc_helpers.enum_field(7) stop_order_type: "StopOrderType" = _grpc_helpers.enum_field(8) expire_date: Optional[datetime] = _grpc_helpers.message_field(9) instrument_id: str = _grpc_helpers.string_field(10) exchange_order_type: "ExchangeOrderType" = _grpc_helpers.message_field(11) take_profit_type: "TakeProfitType" = _grpc_helpers.message_field(12) trailing_data: "PostStopOrderRequestTrailingData" = _grpc_helpers.message_field(13) price_type: "PriceType" = _grpc_helpers.message_field(14) order_id: str = _grpc_helpers.string_field(15) confirm_margin_trade: bool = _grpc_helpers.bool_field(16) instant_execution: Optional[bool] = _grpc_helpers.bool_field(17) @dataclass(eq=False, repr=True) class PostStopOrderRequestTrailingData(_grpc_helpers.Message): indent: "Quotation" = _grpc_helpers.message_field(1) indent_type: "TrailingValueType" = _grpc_helpers.message_field(2) spread: "Quotation" = _grpc_helpers.message_field(3) spread_type: "TrailingValueType" = _grpc_helpers.message_field(4) @dataclass(eq=False, repr=True) class PostStopOrderResponse(_grpc_helpers.Message): stop_order_id: str = _grpc_helpers.string_field(1) order_request_id: str = _grpc_helpers.string_field(2) response_metadata: "ResponseMetadata" = _grpc_helpers.message_field(254) @dataclass(eq=False, repr=True) class GetStopOrdersRequest(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) status: "StopOrderStatusOption" = _grpc_helpers.message_field(2) from_: datetime = _grpc_helpers.message_field(3) to: datetime = _grpc_helpers.message_field(4) @dataclass(eq=False, repr=True) class GetStopOrdersResponse(_grpc_helpers.Message): stop_orders: List["StopOrder"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class CancelStopOrderRequest(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) stop_order_id: str = _grpc_helpers.string_field(2) @dataclass(eq=False, repr=True) class CancelStopOrderResponse(_grpc_helpers.Message): time: datetime = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class StopOrder(_grpc_helpers.Message): # pylint:disable=too-many-instance-attributes stop_order_id: str = _grpc_helpers.string_field(1) lots_requested: int = _grpc_helpers.int64_field(2) figi: str = _grpc_helpers.string_field(3) direction: "StopOrderDirection" = _grpc_helpers.enum_field(4) currency: str = _grpc_helpers.string_field(5) order_type: "StopOrderType" = _grpc_helpers.enum_field(6) create_date: datetime = _grpc_helpers.message_field(7) activation_date_time: datetime = _grpc_helpers.message_field(8) expiration_time: datetime = _grpc_helpers.message_field(9) price: "MoneyValue" = _grpc_helpers.message_field(10) stop_price: "MoneyValue" = _grpc_helpers.message_field(11) instrument_uid: str = _grpc_helpers.string_field(12) take_profit_type: "TakeProfitType" = _grpc_helpers.message_field(13) trailing_data: "StopOrderTrailingData" = _grpc_helpers.message_field(14) status: "StopOrderStatusOption" = _grpc_helpers.message_field(15) exchange_order_type: "ExchangeOrderType" = _grpc_helpers.message_field(16) exchange_order_id: Optional[str] = _grpc_helpers.string_field(17) ticker: str = _grpc_helpers.string_field(18) class_code: str = _grpc_helpers.string_field(19) instant_execution: bool = _grpc_helpers.bool_field(20) @dataclass(eq=False, repr=True) class StopOrderTrailingData(_grpc_helpers.Message): indent: "Quotation" = _grpc_helpers.message_field(1) indent_type: "TrailingValueType" = _grpc_helpers.message_field(2) spread: "Quotation" = _grpc_helpers.message_field(3) spread_type: "TrailingValueType" = _grpc_helpers.message_field(4) status: "TrailingStopStatus" = _grpc_helpers.message_field(5) price: "Quotation" = _grpc_helpers.message_field(7) extr: "Quotation" = _grpc_helpers.message_field(8) @dataclass(eq=False, repr=True) class BrokerReportRequest(_grpc_helpers.Message): generate_broker_report_request: "GenerateBrokerReportRequest" = ( _grpc_helpers.message_field(1, group="payload") ) get_broker_report_request: "GetBrokerReportRequest" = _grpc_helpers.message_field( 2, group="payload" ) @dataclass(eq=False, repr=True) class BrokerReportResponse(_grpc_helpers.Message): generate_broker_report_response: "GenerateBrokerReportResponse" = ( _grpc_helpers.message_field(1, group="payload") ) get_broker_report_response: "GetBrokerReportResponse" = _grpc_helpers.message_field( 2, group="payload" ) @dataclass(eq=False, repr=True) class GenerateBrokerReportRequest(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) from_: datetime = _grpc_helpers.message_field(2) to: datetime = _grpc_helpers.message_field(3) @dataclass(eq=False, repr=True) class GenerateBrokerReportResponse(_grpc_helpers.Message): task_id: str = _grpc_helpers.string_field(1) @dataclass(eq=False, repr=True) class GetBrokerReportRequest(_grpc_helpers.Message): task_id: str = _grpc_helpers.string_field(1) page: Optional[int] = _grpc_helpers.int32_field(2) @dataclass(eq=False, repr=True) class GetBrokerReportResponse(_grpc_helpers.Message): broker_report: List["BrokerReport"] = _grpc_helpers.message_field(1) itemsCount: int = _grpc_helpers.int32_field(2) pagesCount: int = _grpc_helpers.int32_field(3) page: int = _grpc_helpers.int32_field(4) task_id: str = _grpc_helpers.string_field(5) @dataclass(eq=False, repr=True) class BrokerReport( # pylint:disable=too-many-instance-attributes _grpc_helpers.Message ): trade_id: str = _grpc_helpers.string_field(1) order_id: str = _grpc_helpers.string_field(2) figi: str = _grpc_helpers.string_field(3) execute_sign: str = _grpc_helpers.string_field(4) trade_datetime: datetime = _grpc_helpers.message_field(5) exchange: str = _grpc_helpers.string_field(6) class_code: str = _grpc_helpers.string_field(7) direction: str = _grpc_helpers.string_field(8) name: str = _grpc_helpers.string_field(9) ticker: str = _grpc_helpers.string_field(10) price: "MoneyValue" = _grpc_helpers.message_field(11) quantity: int = _grpc_helpers.int64_field(12) order_amount: "MoneyValue" = _grpc_helpers.message_field(13) aci_value: float = _grpc_helpers.double_field(14) total_order_amount: "MoneyValue" = _grpc_helpers.message_field(15) broker_commission: "MoneyValue" = _grpc_helpers.message_field(16) exchange_commission: "MoneyValue" = _grpc_helpers.message_field(17) exchange_clearing_commission: "MoneyValue" = _grpc_helpers.message_field(18) repo_rate: float = _grpc_helpers.double_field(19) party: str = _grpc_helpers.string_field(20) clear_value_date: datetime = _grpc_helpers.message_field(21) sec_value_date: datetime = _grpc_helpers.message_field(22) broker_status: str = _grpc_helpers.string_field(23) separate_agreement_type: str = _grpc_helpers.string_field(24) separate_agreement_number: str = _grpc_helpers.string_field(25) separate_agreement_date: str = _grpc_helpers.string_field(26) delivery_type: str = _grpc_helpers.string_field(27) @dataclass(eq=False, repr=True) class PositionsFutures(_grpc_helpers.Message): figi: str = _grpc_helpers.string_field(1) blocked: int = _grpc_helpers.int64_field(2) balance: int = _grpc_helpers.int64_field(3) position_uid: str = _grpc_helpers.string_field(4) instrument_uid: str = _grpc_helpers.string_field(5) ticker: str = _grpc_helpers.string_field(6) @dataclass(eq=False, repr=True) class PositionsOptions(_grpc_helpers.Message): position_uid: str = _grpc_helpers.string_field(1) instrument_uid: str = _grpc_helpers.string_field(2) blocked: int = _grpc_helpers.int64_field(11) balance: int = _grpc_helpers.int64_field(21) ticker: str = _grpc_helpers.string_field(3) @dataclass(eq=False, repr=True) class GetDividendsForeignIssuerRequest(_grpc_helpers.Message): generate_div_foreign_issuer_report: "GenerateDividendsForeignIssuerReportRequest" = _grpc_helpers.message_field( # noqa:E501 # pylint:disable=line-too-long 1, group="payload" ) get_div_foreign_issuer_report: "GetDividendsForeignIssuerReportRequest" = ( _grpc_helpers.message_field(2, group="payload") ) @dataclass(eq=False, repr=True) class GetDividendsForeignIssuerResponse(_grpc_helpers.Message): generate_div_foreign_issuer_report_response: "GenerateDividendsForeignIssuerReportResponse" = _grpc_helpers.message_field( # noqa:E501 # pylint:disable=line-too-long 1, group="payload" ) div_foreign_issuer_report: "GetDividendsForeignIssuerReportResponse" = ( _grpc_helpers.message_field(2, group="payload") ) @dataclass(eq=False, repr=True) class GenerateDividendsForeignIssuerReportRequest(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) from_: datetime = _grpc_helpers.message_field(2) to: datetime = _grpc_helpers.message_field(3) @dataclass(eq=False, repr=True) class GetDividendsForeignIssuerReportRequest(_grpc_helpers.Message): task_id: str = _grpc_helpers.string_field(1) page: Optional[int] = _grpc_helpers.int32_field(2) @dataclass(eq=False, repr=True) class GenerateDividendsForeignIssuerReportResponse(_grpc_helpers.Message): task_id: str = _grpc_helpers.string_field(1) @dataclass(eq=False, repr=True) class GetDividendsForeignIssuerReportResponse(_grpc_helpers.Message): dividends_foreign_issuer_report: List[ "DividendsForeignIssuerReport" ] = _grpc_helpers.message_field(1) itemsCount: int = _grpc_helpers.int32_field(2) pagesCount: int = _grpc_helpers.int32_field(3) page: int = _grpc_helpers.int32_field(4) @dataclass(eq=False, repr=True) class DividendsForeignIssuerReport( # pylint:disable=too-many-instance-attributes _grpc_helpers.Message ): record_date: datetime = _grpc_helpers.message_field(1) payment_date: datetime = _grpc_helpers.message_field(2) security_name: str = _grpc_helpers.string_field(3) isin: str = _grpc_helpers.string_field(4) issuer_country: str = _grpc_helpers.string_field(5) quantity: int = _grpc_helpers.int64_field(6) dividend: "Quotation" = _grpc_helpers.message_field(7) external_commission: "Quotation" = _grpc_helpers.message_field(8) dividend_gross: "Quotation" = _grpc_helpers.message_field(9) tax: "Quotation" = _grpc_helpers.message_field(10) dividend_amount: "Quotation" = _grpc_helpers.message_field(11) currency: str = _grpc_helpers.string_field(12) @dataclass(eq=False, repr=True) class PortfolioStreamRequest(_grpc_helpers.Message): accounts: List[str] = _grpc_helpers.message_field(1) ping_settings: "PingDelaySettings" = _grpc_helpers.message_field(15) @dataclass(eq=False, repr=True) class PortfolioStreamResponse(_grpc_helpers.Message): subscriptions: "PortfolioSubscriptionResult" = _grpc_helpers.message_field( 1, group="payload" ) portfolio: "PortfolioResponse" = _grpc_helpers.message_field(2, group="payload") ping: "Ping" = _grpc_helpers.message_field(3, group="payload") @dataclass(eq=False, repr=True) class PortfolioSubscriptionResult(_grpc_helpers.Message): accounts: List["AccountSubscriptionStatus"] = _grpc_helpers.message_field(1) tracking_id: str = _grpc_helpers.string_field(7) stream_id: str = _grpc_helpers.string_field(8) @dataclass(eq=False, repr=True) class AccountSubscriptionStatus(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) subscription_status: "PortfolioSubscriptionStatus" = _grpc_helpers.message_field(6) @dataclass(eq=False, repr=True) class GetOperationsByCursorRequest(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) instrument_id: Optional[str] = _grpc_helpers.string_field(2) from_: Optional[datetime] = _grpc_helpers.message_field(6) to: Optional[datetime] = _grpc_helpers.message_field(7) cursor: Optional[str] = _grpc_helpers.string_field(11) limit: Optional[int] = _grpc_helpers.int32_field(12) operation_types: List["OperationType"] = _grpc_helpers.message_field(13) state: Optional["OperationState"] = _grpc_helpers.message_field(14) without_commissions: Optional[bool] = _grpc_helpers.bool_field(15) without_trades: Optional[bool] = _grpc_helpers.bool_field(16) without_overnights: Optional[bool] = _grpc_helpers.bool_field(17) @dataclass(eq=False, repr=True) class GetOperationsByCursorResponse(_grpc_helpers.Message): has_next: bool = _grpc_helpers.bool_field(1) next_cursor: str = _grpc_helpers.string_field(2) items: List["OperationItem"] = _grpc_helpers.message_field(6) @dataclass(eq=False, repr=True) class OperationItem(_grpc_helpers.Message): cursor: str = _grpc_helpers.string_field(1) broker_account_id: str = _grpc_helpers.string_field(6) id: str = _grpc_helpers.string_field(16) parent_operation_id: str = _grpc_helpers.string_field(17) name: str = _grpc_helpers.string_field(18) date: datetime = _grpc_helpers.message_field(21) type: "OperationType" = _grpc_helpers.enum_field(22) description: str = _grpc_helpers.string_field(23) state: "OperationState" = _grpc_helpers.message_field(24) instrument_uid: str = _grpc_helpers.string_field(31) figi: str = _grpc_helpers.string_field(32) instrument_type: str = _grpc_helpers.string_field(33) instrument_kind: "InstrumentType" = _grpc_helpers.enum_field(34) position_uid: str = _grpc_helpers.string_field(35) payment: "MoneyValue" = _grpc_helpers.message_field(41) price: "MoneyValue" = _grpc_helpers.message_field(42) commission: "MoneyValue" = _grpc_helpers.message_field(43) yield_: "MoneyValue" = _grpc_helpers.message_field(44) yield_relative: "Quotation" = _grpc_helpers.message_field(45) accrued_int: "MoneyValue" = _grpc_helpers.message_field(46) quantity: int = _grpc_helpers.int64_field(51) quantity_rest: int = _grpc_helpers.int64_field(52) quantity_done: int = _grpc_helpers.int64_field(53) cancel_date_time: datetime = _grpc_helpers.message_field(56) cancel_reason: str = _grpc_helpers.string_field(57) trades_info: "OperationItemTrades" = _grpc_helpers.message_field(61) asset_uid: str = _grpc_helpers.string_field(64) child_operations: List["ChildOperationItem"] = _grpc_helpers.message_field(65) @dataclass(eq=False, repr=True) class OperationItemTrades(_grpc_helpers.Message): trades: List["OperationItemTrade"] = _grpc_helpers.message_field(6) @dataclass(eq=False, repr=True) class OperationItemTrade(_grpc_helpers.Message): num: str = _grpc_helpers.string_field(1) date: datetime = _grpc_helpers.message_field(6) quantity: int = _grpc_helpers.int64_field(11) price: "MoneyValue" = _grpc_helpers.message_field(16) yield_: "MoneyValue" = _grpc_helpers.message_field(21) yield_relative: "Quotation" = _grpc_helpers.message_field(22) @dataclass(eq=False, repr=True) class PositionsStreamRequest(_grpc_helpers.Message): accounts: List[str] = _grpc_helpers.string_field(1) ping_settings: "PingDelaySettings" = _grpc_helpers.message_field(15) with_initial_positions: bool = _grpc_helpers.bool_field(3) @dataclass(eq=False, repr=True) class PositionsStreamResponse(_grpc_helpers.Message): subscriptions: "PositionsSubscriptionResult" = _grpc_helpers.message_field( 1, group="payload" ) position: "PositionData" = _grpc_helpers.message_field(2, group="payload") ping: "Ping" = _grpc_helpers.message_field(3, group="payload") initial_positions: "PositionsResponse" = _grpc_helpers.message_field( 5, group="payload" ) @dataclass(eq=False, repr=True) class PositionsSubscriptionResult(_grpc_helpers.Message): accounts: List["PositionsSubscriptionStatus"] = _grpc_helpers.message_field(1) tracking_id: str = _grpc_helpers.string_field(7) stream_id: str = _grpc_helpers.string_field(8) @dataclass(eq=False, repr=True) class PositionsSubscriptionStatus(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) subscription_status: "PositionsAccountSubscriptionStatus" = ( _grpc_helpers.message_field(6) ) @dataclass(eq=False, repr=True) class PositionData(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) money: List["PositionsMoney"] = _grpc_helpers.message_field(2) securities: List["PositionsSecurities"] = _grpc_helpers.message_field(3) futures: List["PositionsFutures"] = _grpc_helpers.message_field(4) options: List["PositionsOptions"] = _grpc_helpers.message_field(5) date: datetime = _grpc_helpers.message_field(6) @dataclass(eq=False, repr=True) class PositionsMoney(_grpc_helpers.Message): available_value: "MoneyValue" = _grpc_helpers.message_field(1) blocked_value: "MoneyValue" = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class Page(_grpc_helpers.Message): limit: int = _grpc_helpers.int32_field(1) page_number: int = _grpc_helpers.int32_field(2) @dataclass(eq=False, repr=True) class PageResponse(_grpc_helpers.Message): limit: int = _grpc_helpers.int32_field(1) page_number: int = _grpc_helpers.int32_field(2) total_count: int = _grpc_helpers.int32_field(3) @dataclass(eq=False, repr=True) class ResponseMetadata(_grpc_helpers.Message): tracking_id: str = _grpc_helpers.string_field(42) server_time: datetime = _grpc_helpers.message_field(43) @dataclass(eq=False, repr=True) class BrandData(_grpc_helpers.Message): logo_name: str = _grpc_helpers.string_field(1) logo_base_color: str = _grpc_helpers.string_field(2) text_color: str = _grpc_helpers.string_field(3) @dataclass(eq=False, repr=True) class GetAssetFundamentalsRequest(_grpc_helpers.Message): assets: List[str] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class GetAssetFundamentalsResponse(_grpc_helpers.Message): fundamentals: List["StatisticResponse"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class StatisticResponse(_grpc_helpers.Message): asset_uid: str = _grpc_helpers.string_field(1) currency: str = _grpc_helpers.string_field(2) market_capitalization: float = _grpc_helpers.double_field(3) high_price_last_52_weeks: float = _grpc_helpers.double_field(4) low_price_last_52_weeks: float = _grpc_helpers.double_field(5) average_daily_volume_last_10_days: float = _grpc_helpers.double_field(6) average_daily_volume_last_4_weeks: float = _grpc_helpers.double_field(7) beta: float = _grpc_helpers.double_field(8) free_float: float = _grpc_helpers.double_field(9) forward_annual_dividend_yield: float = _grpc_helpers.double_field(10) shares_outstanding: float = _grpc_helpers.double_field(11) revenue_ttm: float = _grpc_helpers.double_field(12) ebitda_ttm: float = _grpc_helpers.double_field(13) net_income_ttm: float = _grpc_helpers.double_field(14) eps_ttm: float = _grpc_helpers.double_field(15) diluted_eps_ttm: float = _grpc_helpers.double_field(16) free_cash_flow_ttm: float = _grpc_helpers.double_field(17) five_year_annual_revenue_growth_rate: float = _grpc_helpers.double_field(18) three_year_annual_revenue_growth_rate: float = _grpc_helpers.double_field(19) pe_ratio_ttm: float = _grpc_helpers.double_field(20) price_to_sales_ttm: float = _grpc_helpers.double_field(21) price_to_book_ttm: float = _grpc_helpers.double_field(22) price_to_free_cash_flow_ttm: float = _grpc_helpers.double_field(23) total_enterprise_value_mrq: float = _grpc_helpers.double_field(24) ev_to_ebitda_mrq: float = _grpc_helpers.double_field(25) net_margin_mrq: float = _grpc_helpers.double_field(26) net_interest_margin_mrq: float = _grpc_helpers.double_field(27) roe: float = _grpc_helpers.double_field(28) roa: float = _grpc_helpers.double_field(29) roic: float = _grpc_helpers.double_field(30) total_debt_mrq: float = _grpc_helpers.double_field(31) total_debt_to_equity_mrq: float = _grpc_helpers.double_field(32) total_debt_to_ebitda_mrq: float = _grpc_helpers.double_field(33) free_cash_flow_to_price: float = _grpc_helpers.double_field(34) net_debt_to_ebitda: float = _grpc_helpers.double_field(35) current_ratio_mrq: float = _grpc_helpers.double_field(36) fixed_charge_coverage_ratio_fy: float = _grpc_helpers.double_field(37) dividend_yield_daily_ttm: float = _grpc_helpers.double_field(38) dividend_rate_ttm: float = _grpc_helpers.double_field(39) dividends_per_share: float = _grpc_helpers.double_field(40) five_years_average_dividend_yield: float = _grpc_helpers.double_field(41) five_year_annual_dividend_growth_rate: float = _grpc_helpers.double_field(42) dividend_payout_ratio_fy: float = _grpc_helpers.double_field(43) buy_back_ttm: float = _grpc_helpers.double_field(44) one_year_annual_revenue_growth_rate: float = _grpc_helpers.double_field(45) domicile_indicator_code: str = _grpc_helpers.string_field(46) adr_to_common_share_ratio: float = _grpc_helpers.double_field(47) number_of_employees: float = _grpc_helpers.double_field(48) ex_dividend_date: datetime = _grpc_helpers.message_field(49) fiscal_period_start_date: datetime = _grpc_helpers.message_field(50) fiscal_period_end_date: datetime = _grpc_helpers.message_field(51) revenue_change_five_years: float = _grpc_helpers.double_field(53) eps_change_five_years: float = _grpc_helpers.double_field(54) ebitda_change_five_years: float = _grpc_helpers.double_field(55) total_debt_change_five_years: float = _grpc_helpers.double_field(56) ev_to_sales: float = _grpc_helpers.double_field(57) @dataclass(eq=False, repr=True) class GetAssetReportsRequest(_grpc_helpers.Message): instrument_id: str = _grpc_helpers.string_field(1) from_: datetime = _grpc_helpers.message_field(2) to: datetime = _grpc_helpers.message_field(3) @dataclass(eq=False, repr=True) class GetAssetReportsEvent(_grpc_helpers.Message): instrument_id: str = _grpc_helpers.string_field(1) report_date: datetime = _grpc_helpers.message_field(2) period_year: int = _grpc_helpers.int32_field(3) period_num: int = _grpc_helpers.int32_field(4) period_type: "AssetReportPeriodType" = _grpc_helpers.enum_field(5) created_at: datetime = _grpc_helpers.message_field(6) @dataclass(eq=False, repr=True) class GetAssetReportsResponse(_grpc_helpers.Message): events: List["GetAssetReportsEvent"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class GetConsensusForecastsRequest(_grpc_helpers.Message): paging: Optional["Page"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class ConsensusForecastsItem(_grpc_helpers.Message): uid: str = _grpc_helpers.string_field(1) asset_uid: str = _grpc_helpers.string_field(2) created_at: datetime = _grpc_helpers.message_field(3) best_target_price: "Quotation" = _grpc_helpers.message_field(4) best_target_low: "Quotation" = _grpc_helpers.message_field(5) best_target_high: "Quotation" = _grpc_helpers.message_field(6) total_buy_recommend: int = _grpc_helpers.int32_field(7) total_hold_recommend: int = _grpc_helpers.int32_field(8) total_sell_recommend: int = _grpc_helpers.int32_field(9) currency: str = _grpc_helpers.string_field(10) consensus: "Recommendation" = _grpc_helpers.message_field(11) prognosis_date: datetime = _grpc_helpers.message_field(12) @dataclass(eq=False, repr=True) class GetConsensusForecastsResponse(_grpc_helpers.Message): items: List["ConsensusForecastsItem"] = _grpc_helpers.message_field(1) page: "PageResponse" = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class GetForecastRequest(_grpc_helpers.Message): instrument_id: str = _grpc_helpers.string_field(1) @dataclass(eq=False, repr=True) class TargetItem(_grpc_helpers.Message): uid: str = _grpc_helpers.string_field(1) ticker: str = _grpc_helpers.string_field(2) company: str = _grpc_helpers.string_field(3) recommendation: "Recommendation" = _grpc_helpers.message_field(4) recommendation_date: datetime = _grpc_helpers.message_field(5) currency: str = _grpc_helpers.string_field(6) current_price: "Quotation" = _grpc_helpers.message_field(7) target_price: "Quotation" = _grpc_helpers.message_field(8) price_change: "Quotation" = _grpc_helpers.message_field(9) price_change_rel: "Quotation" = _grpc_helpers.message_field(10) show_name: str = _grpc_helpers.string_field(11) @dataclass(eq=False, repr=True) class ConsensusItem(_grpc_helpers.Message): uid: str = _grpc_helpers.string_field(1) ticker: str = _grpc_helpers.string_field(2) recommendation: "Recommendation" = _grpc_helpers.message_field(3) currency: str = _grpc_helpers.string_field(4) current_price: "Quotation" = _grpc_helpers.message_field(5) consensus: "Quotation" = _grpc_helpers.message_field(6) min_target: "Quotation" = _grpc_helpers.message_field(7) max_target: "Quotation" = _grpc_helpers.message_field(8) price_change: "Quotation" = _grpc_helpers.message_field(9) price_change_rel: "Quotation" = _grpc_helpers.message_field(10) @dataclass(eq=False, repr=True) class GetForecastResponse(_grpc_helpers.Message): targets: List["TargetItem"] = _grpc_helpers.message_field(1) consensus: "ConsensusItem" = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class RiskRatesRequest(_grpc_helpers.Message): instrument_id: List[str] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class RiskRatesResponse(_grpc_helpers.Message): instrument_risk_rates: List["RiskRateResult"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class RiskRateResult(_grpc_helpers.Message): instrument_uid: str = _grpc_helpers.string_field(1) short_risk_rate: Optional["RiskRate"] = _grpc_helpers.message_field(2) long_risk_rate: Optional["RiskRate"] = _grpc_helpers.message_field(3) short_risk_rates: List["RiskRate"] = _grpc_helpers.message_field(5) long_risk_rates: List["RiskRate"] = _grpc_helpers.message_field(6) error: Optional[str] = _grpc_helpers.string_field(9) @dataclass(eq=False, repr=True) class RiskRate(_grpc_helpers.Message): risk_level_code: str = _grpc_helpers.string_field(2) value: Quotation = _grpc_helpers.message_field(5) @dataclass(eq=False, repr=True) class GetInsiderDealsRequest(_grpc_helpers.Message): instrument_id: str = _grpc_helpers.string_field(1) limit: int = _grpc_helpers.int32_field(2) next_cursor: Optional[str] = _grpc_helpers.string_field(3) @dataclass(eq=False, repr=True) class GetInsiderDealsResponse(_grpc_helpers.Message): insider_deals: List["InsiderDeal"] = _grpc_helpers.message_field(1) next_cursor: Optional[str] = _grpc_helpers.string_field(2) @dataclass(eq=False, repr=True) class InsiderDeal(_grpc_helpers.Message): trade_id: int = _grpc_helpers.int64_field(1) direction: TradeDirection = _grpc_helpers.enum_field(2) currency: str = _grpc_helpers.string_field(3) date: datetime = _grpc_helpers.message_field(4) quantity: int = _grpc_helpers.int64_field(5) price: Quotation = _grpc_helpers.message_field(6) instrument_uid: str = _grpc_helpers.string_field(7) ticker: str = _grpc_helpers.string_field(8) investor_name: str = _grpc_helpers.string_field(9) investor_position: str = _grpc_helpers.string_field(10) percentage: float = _grpc_helpers.float_field(11) is_option_execution: bool = _grpc_helpers.bool_field(12) disclosure_date: datetime = _grpc_helpers.message_field(13) @dataclass(eq=False, repr=True) class TimeInterval(_grpc_helpers.Message): start_ts: datetime = _grpc_helpers.message_field(1) end_ts: datetime = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class TradingInterval(_grpc_helpers.Message): type: str = _grpc_helpers.string_field(1) interval: "TimeInterval" = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class GetMaxLotsRequest(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) instrument_id: str = _grpc_helpers.string_field(2) price: Optional["Quotation"] = _grpc_helpers.message_field(3) @dataclass(eq=False, repr=True) class GetMaxLotsResponse(_grpc_helpers.Message): currency: str = _grpc_helpers.string_field(1) buy_limits: "BuyLimitsView" = _grpc_helpers.message_field(2) buy_margin_limits: "BuyLimitsView" = _grpc_helpers.message_field(3) sell_limits: "SellLimitsView" = _grpc_helpers.message_field(4) sell_margin_limits: "SellLimitsView" = _grpc_helpers.message_field(5) @dataclass(eq=False, repr=True) class DfasRequest(_grpc_helpers.Message): pass @dataclass(eq=False, repr=True) class DfaResponse(_grpc_helpers.Message): uid: str = _grpc_helpers.string_field(1) ticker: str = _grpc_helpers.string_field(2) name: str = _grpc_helpers.string_field(3) position_uid: str = _grpc_helpers.string_field(4) min_price_increment: "Quotation" = _grpc_helpers.message_field(5) lot: int = _grpc_helpers.int32_field(6) nominal: "MoneyValue" = _grpc_helpers.message_field(7) currency: str = _grpc_helpers.string_field(8) maturity_date: datetime = _grpc_helpers.message_field(9) short_enabled_flag: bool = _grpc_helpers.bool_field(10) api_trade_available_flag: bool = _grpc_helpers.bool_field(11) buy_available_flag: bool = _grpc_helpers.bool_field(12) sell_available_flag: bool = _grpc_helpers.bool_field(13) limit_order_available_flag: bool = _grpc_helpers.bool_field(14) market_order_available_flag: bool = _grpc_helpers.bool_field(15) bestprice_order_available_flag: bool = _grpc_helpers.bool_field(16) for_iis_flag: bool = _grpc_helpers.bool_field(17) for_qual_investor_flag: bool = _grpc_helpers.bool_field(18) type: str = _grpc_helpers.string_field(19) basic_assets: List["BasicDfaAsset"] = _grpc_helpers.message_field(20) forecast_yield: "ForecastYield" = _grpc_helpers.message_field(21) yield_to_maturity: "Quotation" = _grpc_helpers.message_field(22) coupon_value: "Quotation" = _grpc_helpers.message_field(23) coupon_payment_frequency: int = _grpc_helpers.int32_field(24) coupon_payment_date: datetime = _grpc_helpers.message_field(25) aci_value: "Quotation" = _grpc_helpers.message_field(26) @dataclass(eq=False, repr=True) class BasicDfaAsset(_grpc_helpers.Message): uid: str = _grpc_helpers.string_field(1) @dataclass(eq=False, repr=True) class ForecastYield(_grpc_helpers.Message): min_value: "Quotation" = _grpc_helpers.message_field(1) max_value: "Quotation" = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class DfasResponse(_grpc_helpers.Message): instruments: List["DfaResponse"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class BuyLimitsView(_grpc_helpers.Message): buy_money_amount: "Quotation" = _grpc_helpers.message_field(1) buy_max_lots: int = _grpc_helpers.int64_field(2) buy_max_market_lots: int = _grpc_helpers.int64_field(3) @dataclass(eq=False, repr=True) class SellLimitsView(_grpc_helpers.Message): sell_max_lots: int = _grpc_helpers.int64_field(1) @dataclass(eq=False, repr=True) class GetOrderPriceRequest(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) instrument_id: str = _grpc_helpers.string_field(2) price: "Quotation" = _grpc_helpers.message_field(3) direction: "OrderDirection" = _grpc_helpers.message_field(12) quantity: int = _grpc_helpers.int64_field(13) @dataclass(eq=False, repr=True) class GetOrderPriceResponse(_grpc_helpers.Message): total_order_amount: "MoneyValue" = _grpc_helpers.message_field(1) initial_order_amount: "MoneyValue" = _grpc_helpers.message_field(5) lots_requested: int = _grpc_helpers.int64_field(3) executed_commission: "MoneyValue" = _grpc_helpers.message_field(7) executed_commission_rub: "MoneyValue" = _grpc_helpers.message_field(8) service_commission: "MoneyValue" = _grpc_helpers.message_field(9) deal_commission: "MoneyValue" = _grpc_helpers.message_field(10) extra_bond: "ExtraBond" = _grpc_helpers.message_field(12, group="instrument_extra") extra_future: "ExtraFuture" = _grpc_helpers.message_field( 13, group="instrument_extra" ) @dataclass(eq=False, repr=True) class OrderStateStreamRequest(_grpc_helpers.Message): accounts: List[str] = _grpc_helpers.message_field(1) ping_delay_millis: Optional[int] = _grpc_helpers.int32_field(15) @dataclass(eq=False, repr=True) class ErrorDetail(_grpc_helpers.Message): code: str = _grpc_helpers.string_field(1) message: str = _grpc_helpers.string_field(3) @dataclass(eq=False, repr=True) class SubscriptionResponse(_grpc_helpers.Message): tracking_id: str = _grpc_helpers.string_field(1) status: ResultSubscriptionStatus = _grpc_helpers.message_field(2) stream_id: str = _grpc_helpers.message_field(4) accounts: List[str] = _grpc_helpers.message_field(5) error: Optional[ErrorDetail] = _grpc_helpers.message_field(7) @dataclass(eq=False, repr=True) class OrderStateStreamOrderState(_grpc_helpers.Message): order_id: str = _grpc_helpers.string_field(1) order_request_id: Optional[str] = _grpc_helpers.string_field(2) client_code: str = _grpc_helpers.string_field(3) created_at: datetime = _grpc_helpers.message_field(4) execution_report_status: OrderExecutionReportStatus = _grpc_helpers.message_field(5) status_info: Optional[StatusCauseInfo] = _grpc_helpers.message_field(6) ticker: str = _grpc_helpers.string_field(7) class_code: str = _grpc_helpers.string_field(8) lot_size: int = _grpc_helpers.int32_field(9) direction: OrderDirection = _grpc_helpers.message_field(10) time_in_force: TimeInForceType = _grpc_helpers.message_field(11) order_type: OrderType = _grpc_helpers.message_field(12) account_id: str = _grpc_helpers.string_field(13) trade_order_id: str = _grpc_helpers.string_field(14) initial_order_price: MoneyValue = _grpc_helpers.message_field(22) order_price: MoneyValue = _grpc_helpers.message_field(23) amount: Optional[MoneyValue] = _grpc_helpers.message_field(24) executed_order_price: MoneyValue = _grpc_helpers.message_field(25) currency: str = _grpc_helpers.string_field(26) lots_requested: int = _grpc_helpers.int64_field(27) lots_executed: int = _grpc_helpers.int64_field(28) lots_left: int = _grpc_helpers.int64_field(29) lots_cancelled: int = _grpc_helpers.int64_field(30) marker: Optional[MarkerType] = _grpc_helpers.message_field(31) trades: List[OrderTrade] = _grpc_helpers.message_field(33) completion_time: datetime = _grpc_helpers.message_field(35) exchange: str = _grpc_helpers.string_field(36) instrument_uid: str = _grpc_helpers.string_field(41) @dataclass(eq=False, repr=True) class OrderStateStreamResponse(_grpc_helpers.Message): order_state: "OrderStateStreamOrderState" = _grpc_helpers.message_field( 1, group="payload" ) ping: "Ping" = _grpc_helpers.message_field(2, group="payload") subscription: "SubscriptionResponse" = _grpc_helpers.message_field( 3, group="payload" ) @dataclass(eq=False, repr=True) class ExtraBond(_grpc_helpers.Message): aci_value: "MoneyValue" = _grpc_helpers.message_field(2) nominal_conversion_rate: "Quotation" = _grpc_helpers.message_field(3) @dataclass(eq=False, repr=True) class ExtraFuture(_grpc_helpers.Message): initial_margin: "MoneyValue" = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class GetStrategiesRequest(_grpc_helpers.Message): strategy_id: Optional[str] = _grpc_helpers.string_field(1) @dataclass(eq=False, repr=True) class GetStrategiesResponse(_grpc_helpers.Message): strategies: List["Strategy"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class Strategy(_grpc_helpers.Message): strategy_id: str = _grpc_helpers.string_field(1) strategy_name: str = _grpc_helpers.string_field(2) strategy_description: Optional[str] = _grpc_helpers.string_field(3) strategy_url: Optional[str] = _grpc_helpers.string_field(4) strategy_type: "StrategyType" = _grpc_helpers.message_field(5) active_signals: int = _grpc_helpers.int32_field(6) total_signals: int = _grpc_helpers.int32_field(7) time_in_position: int = _grpc_helpers.int64_field(8) average_signal_yield: "Quotation" = _grpc_helpers.string_field(9) average_signal_yield_year: "Quotation" = _grpc_helpers.string_field(10) yield_: "Quotation" = _grpc_helpers.string_field(11) yield_year: "Quotation" = _grpc_helpers.string_field(12) @dataclass(eq=False, repr=True) class GetSignalsRequest(_grpc_helpers.Message): signal_id: Optional[str] = _grpc_helpers.string_field(1) strategy_id: Optional[str] = _grpc_helpers.string_field(2) strategy_type: Optional["StrategyType"] = _grpc_helpers.message_field(3) instrument_uid: Optional[str] = _grpc_helpers.string_field(4) from_: Optional[datetime] = _grpc_helpers.message_field(5) to: Optional[datetime] = _grpc_helpers.message_field(6) direction: Optional["SignalDirection"] = _grpc_helpers.message_field(7) active: Optional[SignalState] = _grpc_helpers.message_field(8) paging: Optional["Page"] = _grpc_helpers.message_field(9) @dataclass(eq=False, repr=True) class GetSignalsResponse(_grpc_helpers.Message): signals: List["Signal"] = _grpc_helpers.message_field(1) paging: "PageResponse" = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class Signal(_grpc_helpers.Message): signal_id: str = _grpc_helpers.string_field(1) strategy_id: str = _grpc_helpers.string_field(2) strategy_name: str = _grpc_helpers.string_field(3) instrument_uid: str = _grpc_helpers.string_field(4) create_dt: datetime = _grpc_helpers.message_field(5) direction: "SignalDirection" = _grpc_helpers.message_field(6) initial_price: "Quotation" = _grpc_helpers.message_field(7) info: Optional[str] = _grpc_helpers.string_field(8) name: str = _grpc_helpers.string_field(9) target_price: "Quotation" = _grpc_helpers.message_field(10) end_dt: datetime = _grpc_helpers.message_field(11) probability: int = _grpc_helpers.int32_field(12) stoploss: "Quotation" = _grpc_helpers.message_field(13) close_price: "Quotation" = _grpc_helpers.message_field(14) close_dt: Optional[datetime] = _grpc_helpers.message_field(15) @dataclass(eq=False, repr=True) class StructuredNoteResponse(_grpc_helpers.Message): instrument: "StructuredNote" = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class StructuredNotesResponse(_grpc_helpers.Message): instruments: List["StructuredNote"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class StructuredNote(_grpc_helpers.Message): uid: str = _grpc_helpers.string_field(1) figi: str = _grpc_helpers.string_field(2) ticker: str = _grpc_helpers.string_field(3) class_code: str = _grpc_helpers.string_field(4) isin: str = _grpc_helpers.string_field(5) name: str = _grpc_helpers.string_field(6) asset_uid: str = _grpc_helpers.string_field(7) position_uid: str = _grpc_helpers.string_field(8) min_price_increment: "Quotation" = _grpc_helpers.message_field(9) lot: int = _grpc_helpers.int32_field(10) nominal: "MoneyValue" = _grpc_helpers.message_field(11) currency: str = _grpc_helpers.string_field(12) maturity_date: datetime = _grpc_helpers.message_field(13) placement_date: datetime = _grpc_helpers.message_field(14) issue_kind: str = _grpc_helpers.string_field(15) issue_size: int = _grpc_helpers.int32_field(16) issue_size_plan: int = _grpc_helpers.int32_field(17) dlong_client: "Quotation" = _grpc_helpers.message_field(18) dshort_client: "Quotation" = _grpc_helpers.message_field(19) short_enabled_flag: bool = _grpc_helpers.bool_field(20) exchange: str = _grpc_helpers.string_field(21) trading_status: "SecurityTradingStatus" = _grpc_helpers.message_field(22) api_trade_available_flag: bool = _grpc_helpers.bool_field(23) buy_available_flag: bool = _grpc_helpers.bool_field(24) sell_available_flag: bool = _grpc_helpers.bool_field(25) limit_order_available_flag: bool = _grpc_helpers.bool_field(26) market_order_available_flag: bool = _grpc_helpers.bool_field(27) bestprice_order_available_flag: bool = _grpc_helpers.bool_field(28) weekend_flag: bool = _grpc_helpers.bool_field(29) liquidity_flag: bool = _grpc_helpers.bool_field(30) for_iis_flag: bool = _grpc_helpers.bool_field(31) for_qual_investor_flag: bool = _grpc_helpers.bool_field(32) pawnshop_list_flag: bool = _grpc_helpers.bool_field(33) real_exchange: "RealExchange" = _grpc_helpers.message_field(34) first_1min_candle_date: datetime = _grpc_helpers.message_field(35) first_1day_candle_date: datetime = _grpc_helpers.message_field(36) borrow_name: str = _grpc_helpers.string_field(37) type: str = _grpc_helpers.string_field(38) logic_portfolio: "LogicPortfolio" = _grpc_helpers.message_field(39) asset_type: "AssetType" = _grpc_helpers.message_field(40) basic_assets: List["BasicAsset"] = _grpc_helpers.message_field(41) safety_barrier: "Quotation" = _grpc_helpers.message_field(42) coupon_period_base: str = _grpc_helpers.string_field(43) observation_principle: "ObservationPrinciple" = _grpc_helpers.message_field(44) observation_frequency: str = _grpc_helpers.string_field(45) initial_price_fixing_date: datetime = _grpc_helpers.message_field(46) yield_: List["Yield"] = _grpc_helpers.message_field(47) coupon_saving_flag: bool = _grpc_helpers.bool_field(48) sector: str = _grpc_helpers.string_field(49) country_of_risk: str = _grpc_helpers.string_field(50) country_of_risk_name: str = _grpc_helpers.string_field(51) logo_name: str = _grpc_helpers.string_field(52) required_tests: List[str] = _grpc_helpers.message_field(50) @dataclass(eq=False, repr=True) class BasicAsset(_grpc_helpers.Message): uid: str = _grpc_helpers.string_field(1) type: "AssetType" = _grpc_helpers.message_field(2) initial_price: "Quotation" = _grpc_helpers.message_field(3) @dataclass(eq=False, repr=True) class Yield(_grpc_helpers.Message): type: "YieldType" = _grpc_helpers.message_field(1) value: "Quotation" = _grpc_helpers.message_field(2) class LogicPortfolio(_grpc_helpers.Enum): LOGIC_PORTFOLIO_UNSPECIFIED = 0 LOGIC_PORTFOLIO_VOLATILITY = 1 LOGIC_PORTFOLIO_CORRELATION = 2 class ObservationPrinciple(_grpc_helpers.Enum): OBSERVATION_PRINCIPLE_UNSPECIFIED = 0 OBSERVATION_PRINCIPLE_WORST_BASIC_ASSET = 1 OBSERVATION_PRINCIPLE_BEST_BASIC_ASSET = 2 OBSERVATION_PRINCIPLE_AVERAGE_OF_BASIC_ASSETS = 3 OBSERVATION_PRINCIPLE_SINGLE_BASIC_ASSET_PERFORMANCE = 4 class YieldType(_grpc_helpers.Enum): YIELD_TYPE_UNSPECIFIED = 0 YIELD_TYPE_GUARANTED_COUPON = 1 YIELD_TYPE_CONDITIONAL_COUPON = 2 YIELD_TYPE_PARTICIPATION = 3 class AccountValue(_grpc_helpers.Enum): ACCOUNT_VALUE_UNSPECIFIED = 0 ACCOUNT_VALUE_MARGIN_FEE = 1 ACCOUNT_VALUE_AMOUNT_WITHOUT_EXTRA_FEE = 2 @dataclass(eq=False, repr=True) class GetBankAccountsRequest(_grpc_helpers.Message): pass @dataclass(eq=False, repr=True) class GetBankAccountsResponse(_grpc_helpers.Message): bank_accounts: List["BankAccount"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class BankAccount(_grpc_helpers.Message): id: str = _grpc_helpers.string_field(1) name: str = _grpc_helpers.string_field(2) money: List["MoneyValue"] = _grpc_helpers.message_field(3) opened_date: datetime = _grpc_helpers.message_field(4) type: "AccountType" = _grpc_helpers.message_field(5) @dataclass(eq=False, repr=True) class CurrencyTransferRequest(_grpc_helpers.Message): from_account_id: str = _grpc_helpers.string_field(1) to_account_id: str = _grpc_helpers.string_field(2) amount: "MoneyValue" = _grpc_helpers.message_field(3) transaction_id: str = _grpc_helpers.string_field(4) @dataclass(eq=False, repr=True) class CurrencyTransferResponse(_grpc_helpers.Message): pass @dataclass(eq=False, repr=True) class PayInRequest(_grpc_helpers.Message): from_account_id: str = _grpc_helpers.string_field(1) to_account_id: str = _grpc_helpers.string_field(2) amount: "MoneyValue" = _grpc_helpers.message_field(3) @dataclass(eq=False, repr=True) class PayInResponse(_grpc_helpers.Message): pass @dataclass(eq=False, repr=True) class GetAccountValuesRequest(_grpc_helpers.Message): accounts: List[str] = _grpc_helpers.message_field(1) values: List["AccountValue"] = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class GetAccountValuesResponse(_grpc_helpers.Message): accounts: List["AccountValuesWithParameters"] = _grpc_helpers.message_field(1) @dataclass(eq=False, repr=True) class AccountValuesWithParameters(_grpc_helpers.Message): account_id: str = _grpc_helpers.string_field(1) values: List["InstrumentParameter"] = _grpc_helpers.message_field(2) @dataclass(eq=False, repr=True) class InstrumentParameter(_grpc_helpers.Message): name: AccountValue = _grpc_helpers.message_field(1) value: "MoneyValue" = _grpc_helpers.message_field(2)