# auto-generated by Georg Sauthoff's eti2py.py import struct from dataclasses import dataclass, field, is_dataclass from enum import IntEnum def rstrip_dc(x): for k, v in x.__dict__.items(): if type(v) is bytes: x.__setattr__(k, x.__getattribute__(k).rstrip(b'\0')) elif is_dataclass(v): rstrip_dc(v) def enumerize(i, klasse): try: return klasse(i) except ValueError: return i version = '9.0' sub_version = 'D0003' build = '90.370.0.ga-90003070-74' class TemplateID(IntEnum): LogonRequest = 10000 LogonResponse = 10001 LogoutRequest = 10002 LogoutResponse = 10003 SubscribeResponse = 10005 UnsubscribeRequest = 10006 UnsubscribeResponse = 10007 RetransmitRequest = 10008 RetransmitResponse = 10009 Reject = 10010 Heartbeat = 10011 ForcedLogoutNotification = 10012 UserLoginRequest = 10018 UserLoginResponse = 10019 HeartbeatNotification = 10023 UserLogoutResponse = 10024 SubscribeRequest = 10025 RetransmitMEMessageRequest = 10026 RetransmitMEMessageResponse = 10027 ThrottleUpdateNotification = 10028 UserLogoutRequest = 10029 ServiceAvailabilityBroadcast = 10030 NewsBroadcast = 10031 BroadcastErrorNotification = 10032 RiskNotificationBroadcast = 10033 PartyEntitlementsUpdateReport = 10034 InquireSessionListRequest = 10035 InquireSessionListResponse = 10036 LegalNotificationBroadcast = 10037 InquireUserRequest = 10038 InquireUserResponse = 10039 InquireEnrichmentRuleIDListRequest = 10040 InquireEnrichmentRuleIDListResponse = 10041 PartyActionReport = 10042 ForcedUserLogoutNotification = 10043 ServiceAvailabilityMarketBroadcast = 10044 NewOrderSingleRequest = 10100 NewOrderResponse = 10101 NewOrderNRResponse = 10102 OrderExecResponse = 10103 OrderExecNotification = 10104 ModifyOrderSingleRequest = 10106 ModifyOrderResponse = 10107 ModifyOrderNRResponse = 10108 DeleteOrderSingleRequest = 10109 DeleteOrderResponse = 10110 DeleteOrderNRResponse = 10111 DeleteOrderBroadcast = 10112 NewOrderComplexRequest = 10113 ModifyOrderComplexRequest = 10114 OrderExecReportBroadcast = 10117 CrossRequest = 10118 CrossRequestResponse = 10119 DeleteAllOrderRequest = 10120 DeleteAllOrderResponse = 10121 DeleteAllOrderBroadcast = 10122 DeleteOrderComplexRequest = 10123 DeleteAllOrderNRResponse = 10124 NewOrderSingleShortRequest = 10125 ModifyOrderSingleShortRequest = 10126 NewOrderComplexShortRequest = 10129 ModifyOrderComplexShortRequest = 10130 EnterCLIPRequest = 10131 DeleteCLIPRequest = 10132 CLIPResponse = 10133 CLIPDeletionNotification = 10134 CLIPExecutionNotification = 10135 AddComplexInstrumentRequest = 10301 AddComplexInstrumentResponse = 10302 MMParameterDefinitionRequest = 10303 MMParameterDefinitionResponse = 10304 InquireMMParameterRequest = 10305 InquireMMParameterResponse = 10306 TradingSessionStatusBroadcast = 10307 DeleteAllOrderQuoteEventBroadcast = 10308 AddFlexibleInstrumentRequest = 10309 AddFlexibleInstrumentResponse = 10310 InquirePreTradeRiskLimitsRequest = 10311 PreTradeRiskLimitsDefinitionRequest = 10312 PreTradeRiskLimitResponse = 10313 PingRequest = 10320 PingResponse = 10321 RFQRequest = 10401 RFQResponse = 10402 QuoteActivationRequest = 10403 QuoteActivationResponse = 10404 MassQuoteRequest = 10405 MassQuoteResponse = 10406 QuoteExecutionReport = 10407 DeleteAllQuoteRequest = 10408 DeleteAllQuoteResponse = 10409 DeleteAllQuoteBroadcast = 10410 QuoteActivationNotification = 10411 TradeBroadcast = 10500 TMTradingSessionStatusBroadcast = 10501 EnterTESTradeRequest = 10600 ModifyTESTradeRequest = 10601 DeleteTESTradeRequest = 10602 ApproveTESTradeRequest = 10603 TESBroadcast = 10604 TESDeleteBroadcast = 10606 TESApproveBroadcast = 10607 TESExecutionBroadcast = 10610 TESResponse = 10611 UploadTESTradeRequest = 10612 TESUploadBroadcast = 10613 TESTradeBroadcast = 10614 TESTradingSessionStatusBroadcast = 10615 TESCompressionRunStatusRequest = 10616 TESCompressionRunStatusResponse = 10617 TESCompressionRunStatusBroadcast = 10618 EnterBasketTradeRequest = 10620 ModifyBasketTradeRequest = 10621 DeleteBasketTradeRequest = 10622 ApproveBasketTradeRequest = 10623 BasketResponse = 10624 BasketBroadcast = 10625 BasketDeleteBroadcast = 10626 BasketApproveBroadcast = 10627 BasketExecutionBroadcast = 10628 AmendBasketTradeRequest = 10629 ReverseTESTradeRequest = 10630 ApproveReverseTESTradeRequest = 10631 TESReversalBroadcast = 10632 SRQSOpenNegotiationRequest = 10700 SRQSUpdateNegotiationRequest = 10701 SRQSEnterQuoteRequest = 10702 SRQSQuoteResponse = 10703 SRQSHitQuoteRequest = 10704 SRQSDealResponse = 10705 SRQSUpdateDealStatusRequest = 10706 SRQSQuoteNotification = 10707 SRQSCreateDealNotification = 10708 SRQSDealNotification = 10709 SRQSOpenNegotiationRequesterNotification = 10710 SRQSOpenNegotiationNotification = 10711 SRQSNegotiationRequesterNotification = 10712 SRQSNegotiationNotification = 10713 SRQSStatusBroadcast = 10714 SRQSNegotiationStatusNotification = 10715 SRQSQuotingStatusRequest = 10717 SRQSInquireSmartRespondentRequest = 10718 SRQSInquireSmartRespondentResponse = 10719 class ApplID(IntEnum): TRADE = 1 NEWS = 2 SERVICE_AVAILABILITY = 3 SESSION_DATA = 4 LISTENER_DATA = 5 RISKCONTROL = 6 TES_MAINTENANCE = 7 TES_TRADE = 8 SRQS_MAINTENANCE = 9 SERVICE_AVAILABILITY_MARKET = 10 NO_VALUE = 0xFF class ApplIDStatus(IntEnum): OUTBOUND_CONVERSION_ERROR = 105 NO_VALUE = 0xFFFFFFFF class ApplResendFlag(IntEnum): FALSE = 0 TRUE = 1 NO_VALUE = 0xFF class ApplSeqIndicator(IntEnum): NO_RECOVERY_REQUIRED = 0 RECOVERY_REQUIRED = 1 NO_VALUE = 0xFF class ApplSeqStatus(IntEnum): UNAVAILABLE = 0 AVAILABLE = 1 NO_VALUE = 0xFF class ApplUsageOrders(IntEnum): AUTOMATED = ord('A') AUTOSELECT = ord('B') MANUAL = ord('M') NONE = ord('N') NO_VALUE = 0 class ApplUsageQuotes(IntEnum): AUTOMATED = ord('A') AUTOSELECT = ord('B') MANUAL = ord('M') NONE = ord('N') NO_VALUE = 0 class BasketTradeReportType(IntEnum): SUBMIT = 0 ADDENDUM = 4 NO_WAS_SUBSTITUE = 5 NO_VALUE = 0xFF class CompressionAction(IntEnum): START_COMPRESSION = 1 COMMIT_COMPRESSION = 2 CANCEL_COMPRESSION = 3 NO_VALUE = 0xFF class CompressionStatus(IntEnum): OPEN = 1 EXECUTED = 2 CANCELLED_BY_USER = 3 CANCELLED_BY_SYSTEM = 4 NO_VALUE = 0xFF class CrossedIndicator(IntEnum): NO_CROSSING = 0 CROSS_REJECTED = 1 NO_VALUE = 0xFF class CustOrderHandlingInst(IntEnum): C = ord('C') D = ord('D') G = ord('G') H = ord('H') W = ord('W') Y = ord('Y') NO_VALUE = 0 class DeleteReason(IntEnum): NO_SPECIAL_REASON = 100 TAS_CHANGE = 101 INTRADAY_EXPIRATION = 102 RISK_EVENT = 103 STOP_TRADING = 104 INSTRUMENT_DELETION = 105 INSTRUMENT_SUSPENSION = 106 PRETRADE_RISK_EVENT = 107 AMENDMENT_RESET = 108 AMENDMENT_USER_CANCELLED = 109 COMPRESSION_CANCELLED_BY_USER = 110 COMPRESSION_CANCELLED_BY_SYSTEM = 111 NO_VALUE = 0xFF class EffectOnBasket(IntEnum): ADD_VOLUME = 1 REMOVE_VOLUME = 2 NO_VALUE = 0xFF class EnlightRFQAvgRespRateRanking(IntEnum): LOW = 1 MEDIUM = 2 HIGH = 3 NO_VALUE = 0xFF class EnlightRFQAvgRespTimeRanking(IntEnum): LOW = 1 MEDIUM = 2 HIGH = 3 NO_VALUE = 0xFF class EurexVolumeRanking(IntEnum): LOW = 1 MEDIUM = 2 HIGH = 3 NO_VALUE = 0xFF class EventType(IntEnum): SWAP_START_DATE = 8 SWAP_END_DATE = 9 NO_VALUE = 0xFF class ExecInst(IntEnum): H = 1 Q = 2 H_Q = 3 H_6 = 5 Q_6 = 6 NO_VALUE = 0xFF class ExecRestatementReason(IntEnum): ORDER_BOOK_RESTATEMENT = 1 ORDER_ADDED = 101 ORDER_MODIFIED = 102 ORDER_CANCELLED = 103 IOC_ORDER_CANCELLED = 105 BOOK_ORDER_EXECUTED = 108 CHANGED_TO_IOC = 114 INSTRUMENT_STATE_CHANGE = 122 MARKET_ORDER_TRIGGERED = 135 CAO_ORDER_ACTIVATED = 149 CAO_ORDER_INACTIVATED = 150 OCO_ORDER_TRIGGERED = 164 STOP_ORDER_TRIGGERED = 172 OWNERSHIP_CHANGED = 181 ORDER_CANCELLATION_PENDING = 197 PENDING_CANCELLATION_EXECUTED = 199 BOC_ORDER_CANCELLED = 212 PANIC_CANCEL = 261 CLIP_EXECUTION = 340 CLIP_ARRANGEMENT_TIME_OUT = 343 CLIP_ARRANGEMENT_VALIDATION = 344 NO_VALUE = 0xFFFF class ExecType(IntEnum): NEW = ord('0') CANCELED = ord('4') REPLACED = ord('5') PENDING_CANCEL_E = ord('6') SUSPENDED = ord('9') RESTATED = ord('D') TRADE = ord('F') TRIGGERED = ord('L') NO_VALUE = 0 class ExecutingTraderQualifier(IntEnum): ALGO = 22 HUMAN = 24 NO_VALUE = 0xFF class ExerciseStyle(IntEnum): EUROPEAN = 0 AMERICAN = 1 NO_VALUE = 0xFF class FillLiquidityInd(IntEnum): ADDED_LIQUIDITY = 1 REMOVED_LIQUIDITY = 2 AUCTION = 4 TRIGGERED_STOP_ORDER = 5 TRIGGERED_OCO_ORDER = 6 TRIGGERED_MARKET_ORDER = 7 NO_VALUE = 0xFF class FreeText5DisclosureInstruction(IntEnum): NO = 0 YES = 1 NO_VALUE = 0xFF class GatewayStatus(IntEnum): STANDBY = 0 ACTIVE = 1 NO_VALUE = 0xFF class HedgeType(IntEnum): DURATION_HEDGE = 0 NOMINAL_HEDGE = 1 PRICE_FACTOR_HEDGE = 2 NO_VALUE = 0xFF class HedgingInstruction(IntEnum): ON_CLOSE = 1 NO_VALUE = 0xFF class ImpliedMarketIndicator(IntEnum): NOT_IMPLIED = 0 IMPLIED_IN_OUT = 3 NO_VALUE = 0xFF class InputSource(IntEnum): CLIENT_BROKER = 1 PROPRIETARY_BROKER = 2 NO_VALUE = 0xFF class InstrAttribType(IntEnum): VARIABLE_RATE = 5 COUPON_RATE = 100 OFFSET_TO_THE_VARIABLE_COUPON_RATE = 101 SWAP_CUSTOMER_1 = 102 SWAP_CUSTOMER_2 = 103 CASH_BASKET_REFERENCE = 104 NO_VALUE = 0xFF class LastFragment(IntEnum): NOT_LAST_MESSAGE = 0 LAST_MESSAGE = 1 NO_VALUE = 0xFF class LastMkt(IntEnum): XEUR = 1 XEEE = 2 NODX = 12 NO_VALUE = 0xFFFF class LastPxDisclosureInstruction(IntEnum): NO = 0 YES = 1 NO_VALUE = 0xFF class LastQtyDisclosureInstruction(IntEnum): NO = 0 YES = 1 NO_VALUE = 0xFF class LeavesQtyDisclosureInstruction(IntEnum): NO = 0 YES = 1 NO_VALUE = 0xFF class LegInputSource(IntEnum): CLIENT_BROKER = 1 PROPRIETARY_BROKER = 2 NO_VALUE = 0xFF class LegPositionEffect(IntEnum): CLOSE = ord('C') OPEN = ord('O') NO_VALUE = 0 class LegSecurityType(IntEnum): MULTILEG_INSTRUMENT = 1 UNDERLYING_LEG = 2 NO_VALUE = 0xFF class LegSide(IntEnum): BUY = 1 SELL = 2 NO_VALUE = 0xFF class ListUpdateAction(IntEnum): ADD = ord('A') DELETE = ord('D') NO_VALUE = 0 class MDBookType(IntEnum): TOPOFBOOK = 1 PRICEDEPTH = 2 NO_VALUE = 0xFF class MDSubBookType(IntEnum): IMPLIED = 1 VOLUMEWEIGHTEDAVERAGE = 2 NO_VALUE = 0xFF class MarketID(IntEnum): XEUR = 1 XEEE = 2 NODX = 12 NO_VALUE = 0xFFFF class MassActionReason(IntEnum): NO_SPECIAL_REASON = 0 STOP_TRADING = 1 EMERGENCY = 2 MARKET_MAKER_PROTECTION = 3 SESSION_LOSS = 6 DUPLICATE_SESSION_LOGIN = 7 CLEARING_RISK_CONTROL = 8 INTERNAL_CONNECTION_LOSS = 100 PRODUCT_STATE_HALT = 105 PRODUCT_STATE_HOLIDAY = 106 INSTRUMENT_SUSPENDED = 107 COMPLEX_INSTRUMENT_DELETION = 109 VOLATILITY_INTERRUPTION = 110 PRODUCT_TEMPORARILY_NOT_TRADEABLE = 111 MEMBER_DISABLE = 117 NO_VALUE = 0xFF class MassActionSubType(IntEnum): BOOK_OR_CANCEL = 1 NO_VALUE = 0xFF class MassActionType(IntEnum): SUSPEND_QUOTES = 1 RELEASE_QUOTES = 2 NO_VALUE = 0xFF class MatchSubType(IntEnum): OPENING_AUCTION = 1 CLOSING_AUCTION = 2 INTRADAY_AUCTION = 3 CIRCUIT_BREAKER_AUCTION = 4 OUTSIDE_BBO = 6 NO_VALUE = 0xFF class MatchType(IntEnum): CONFIRMED_TRADE_REPORT = 3 AUTO_MATCH_INCOMING = 4 CROSS_AUCTION = 5 CALL_AUCTION = 7 AUTO_MATCH_RESTING = 11 LIQUIDITY_IMPROVEMENT_CROSS = 13 NO_VALUE = 0xFF class MatchingEngineStatus(IntEnum): UNAVAILABLE = 0 AVAILABLE = 1 NO_VALUE = 0xFF class MessageEventSource(IntEnum): BROADCAST_TO_APPROVER = ord('A') BROADCAST_TO_INITIATOR = ord('I') BROADCAST_TO_QUOTE_SUBMITTER = ord('Q') BROADCAST_TO_REQUESTER = ord('R') NO_VALUE = 0 class MultiLegReportingType(IntEnum): SINGLE_SECURITY = 1 INDIVIDUAL_LEG_OF_A_MULTILEG_SECURITY = 2 NO_VALUE = 0xFF class MultilegModel(IntEnum): PREDEFINED_MULTILEG_SECURITY = 0 USER_DEFINED_MULTLEG = 1 NO_VALUE = 0xFF class MultilegPriceModel(IntEnum): STANDARD = 0 USERDEFINED = 1 NO_VALUE = 0xFF class NegotiateUnderlying(IntEnum): NO = 0 YES = 1 NO_VALUE = 0xFF class NumberOfRespDisclosureInstruction(IntEnum): NO = 0 YES = 1 NO_VALUE = 0xFF class OrdStatus(IntEnum): NEW = ord('0') PARTIALLY_FILLED = ord('1') FILLED = ord('2') CANCELED = ord('4') PENDING_CANCEL = ord('6') SUSPENDED = ord('9') NO_VALUE = 0 class OrdType(IntEnum): MARKET = 1 LIMIT = 2 STOP = 3 STOP_LIMIT = 4 NO_VALUE = 0xFF class OrderAttributeLiquidityProvision(IntEnum): N = 0 Y = 1 NO_VALUE = 0xFF class OrderAttributeRiskReduction(IntEnum): N = 0 Y = 1 NO_VALUE = 0xFF class OrderCategory(IntEnum): ORDER = ord('1') QUOTE = ord('2') NO_VALUE = 0 class OrderOrigination(IntEnum): DIRECT_ACCESS_OR_SPONSORED_ACCESS_CUSTOMER = 5 NO_VALUE = 0xFF class OrderQtyDisclosureInstruction(IntEnum): NO = 0 YES = 1 NO_VALUE = 0xFF class OrderRoutingIndicator(IntEnum): NO = ord('N') YES = ord('Y') NO_VALUE = 0 class OrderSide(IntEnum): BUY = 1 SELL = 2 NO_VALUE = 0xFF class OwnershipIndicator(IntEnum): NO_CHANGE_OF_OWNERSHIP = 0 CHANGE_TO_EXECUTING_TRADER = 1 NO_VALUE = 0xFF class PartyActionType(IntEnum): HALT_TRADING = 1 REINSTATE = 2 NO_VALUE = 0xFF class PartyDetailRoleQualifier(IntEnum): TRADER = 10 HEAD_TRADER = 11 SUPERVISOR = 12 NO_VALUE = 0xFF class PartyDetailStatus(IntEnum): ACTIVE = 0 SUSPEND = 1 REJECTED = 2 NO_VALUE = 0xFF class PartyDetailStatusInformation(IntEnum): TRR_THRESHOLD_TOO_BIG = 1 BLOCK_ALL_ANONYMOUS = 2 NO_VALUE = 0xFF class PartyIDEnteringFirm(IntEnum): PARTICIPANT = 1 MARKETSUPERVISION = 2 NO_VALUE = 0xFF class PartyIDOriginationMarket(IntEnum): XKFE = 1 NO_VALUE = 0xFF class PartyIDSettlementLocation(IntEnum): CLEARSTREM_BANKING_FRANKFURT = 1 CLEARSTREM_BANKING_LUXEMBURG = 2 CLS_GROUP = 3 EUROCLEAR = 4 NO_VALUE = 0xFF class PartyIdInvestmentDecisionMakerQualifier(IntEnum): ALGO = 22 HUMAN = 24 NO_VALUE = 0xFF class PartyOrderOriginationDisclosureInstruction(IntEnum): NO = 0 YES = 1 NO_VALUE = 0xFF class PartySubIDType(IntEnum): BUYER = 14001 SELLER = 14002 NO_VALUE = 0xFFFF class PositionEffect(IntEnum): CLOSE = ord('C') OPEN = ord('O') NO_VALUE = 0 class PriceDisclosureInstruction(IntEnum): NO = 0 YES = 1 NO_VALUE = 0xFF class PriceValidityCheckType(IntEnum): NONE = 0 OPTIONAL = 1 MANDATORY = 2 NO_VALUE = 0xFF class ProductComplex(IntEnum): SIMPLE_INSTRUMENT = 1 STANDARD_OPTION_STRATEGY = 2 NON_STANDARD_OPTION_STRATEGY = 3 VOLATILITY_STRATEGY = 4 FUTURES_SPREAD = 5 INTER_PRODUCT_SPREAD = 6 STANDARD_FUTURE_STRATEGY = 7 PACK_AND_BUNDLE = 8 STRIP = 9 FLEXIBLE_SIMPLE_INSTRUMENT = 10 NO_VALUE = 0xFF class PutOrCall(IntEnum): PUT = 0 CALL = 1 NO_VALUE = 0xFF class QuoteCancelType(IntEnum): CANCEL_ALL_QUOTES = 4 NO_VALUE = 0xFF class QuoteEntryRejectReason(IntEnum): UNKNOWN_SECURITY = 1 DUPLICATE_QUOTE = 6 INVALID_PRICE = 8 NO_REFERENCE_PRICE_AVAILABLE = 16 NO_SINGLE_SIDED_QUOTES = 100 INVALID_QUOTING_MODEL = 103 INVALID_SIZE = 106 INVALID_UNDERLYING_PRICE = 107 BID_PRICE_NOT_REASONABLE = 108 ASK_PRICE_NOT_REASONABLE = 109 BID_PRICE_EXCEEDS_RANGE = 110 ASK_PRICE_EXCEEDS_RANGE = 111 INSTRUMENT_STATE_FREEZE = 115 DELETION_ALREADY_PENDING = 116 ENTITLEMENT_NOT_ASSIGNED_FOR_UNDERLYING = 119 CURRENTLY_NOT_TRADEABLE_ON_BOOK = 124 QUANTITY_LIMIT_EXCEEDED = 125 VALUE_LIMIT_EXCEEDED = 126 INVALID_QUOTE_SPREAD = 127 BOOK_OR_CANCEL = 128 CANT_PROC_IN_CURR_INSTR_STATE = 131 INVALID_QUOTE_TYPE = 134 TRADING_INDICATION_RUNNING_FOR_TRADER = 143 ON_BOOK_TRADING_DISABLED_FOR_INSTRUMENT_TYPE = 144 LIQUIDITY_PROVIDER_PROTECTION_BID_SIDE_CANCELLED = 147 LIQUIDITY_PROVIDER_PROTECTION_ASK_SIDE_CANCELLED = 148 OUTSIDE_QUOTING_PERIOD = 155 MATCH_PRICE_NOT_ON_PRICE_STEP = 156 QUANTITY_LIMIT_EXCEEDS_TSL = 161 TOO_MANY_ORDERS_AND_QUOTES_IN_ORDER_BOOK = 163 NO_VALUE = 0xFFFFFFFF class QuoteEntryStatus(IntEnum): ACCEPTED = 0 REJECTED = 5 REMOVED_AND_REJECTED = 6 PENDING = 10 NO_VALUE = 0xFF class QuoteEventLiquidityInd(IntEnum): ADDED_LIQUIDITY = 1 REMOVED_LIQUIDITY = 2 AUCTION = 4 NO_VALUE = 0xFF class QuoteEventReason(IntEnum): PENDING_CANCELLATION_EXECUTED = 14 INVALID_PRICE = 15 CROSS_REJECTED = 16 BOOK_OR_CANCEL = 17 PLP = 18 NO_VALUE = 0xFF class QuoteEventSide(IntEnum): BUY = 1 SELL = 2 NO_VALUE = 0xFF class QuoteEventType(IntEnum): MODIFIED_QUOTE_SIDE = 2 REMOVED_QUOTE_SIDE = 3 PARTIALLY_FILLED = 4 FILLED = 5 NO_VALUE = 0xFF class QuoteInstruction(IntEnum): DO_NOT_QUOTE = 0 QUOTE = 1 NO_VALUE = 0xFF class QuoteRefPriceSource(IntEnum): UNDERLYING = 1 CUSTOM_UNDERLYING_PRICE = 2 REF_PRICE = 3 NO_VALUE = 0xFF class QuoteSizeType(IntEnum): TOTALSIZE = 1 OPENSIZE = 2 NO_VALUE = 0xFF class QuoteStatus(IntEnum): REMOVED = 6 EXPIRED = 7 ACTIVE = 16 NO_VALUE = 0xFF class QuoteSubType(IntEnum): WORKINGDELTA = 1 BASISTRADE = 2 NO_VALUE = 0xFF class QuoteType(IntEnum): INDICATIVE = 0 TRADEABLE = 1 TRADEABLE_BOC = 100 NO_VALUE = 0xFF class QuotingStatus(IntEnum): OPEN_ACTIVE = 1 OPEN_IDLE = 2 CLOSED_INACTIVE = 3 NO_VALUE = 0xFF class RefApplID(IntEnum): TRADE = 1 NEWS = 2 SERVICE_AVAILABILITY = 3 SESSION_DATA = 4 LISTENER_DATA = 5 RISKCONTROL = 6 TES_MAINTENANCE = 7 TES_TRADE = 8 SRQS_MAINTENANCE = 9 SERVICE_AVAILABILITY_MARKET = 10 NO_VALUE = 0xFF class RelatedProductComplex(IntEnum): STANDARD_OPTION_STRATEGY = 2 NON_STANDARD_OPTION_STRATEGY = 3 VOLATILITY_STRATEGY = 4 FUTURES_SPREAD = 5 INTER_PRODUCT_SPREAD = 6 STANDARD_FUTURE_STRATEGY = 7 PACK_AND_BUNDLE = 8 STRIP = 9 NO_VALUE = 0xFF class RequestingPartyIDEnteringFirm(IntEnum): PARTICIPANT = 1 MARKETSUPERVISION = 2 NO_VALUE = 0xFF class RequestingPartyIDExecutingSystem(IntEnum): EUREXCLEARING = 1 T7 = 2 NO_VALUE = 0xFFFFFFFF class RequestingPartySubIDType(IntEnum): REQUESTER = 5000 RESPONDER = 5001 BOTH = 5002 SYSTEM = 5003 NO_VALUE = 0xFFFF class RespondentType(IntEnum): ALLMARKETPARTICIPANTS = 1 ANONYMOUS = 102 NO_VALUE = 0xFF class ReversalCancellationReason(IntEnum): TAS_CHANGE = 1 INTRADAY_EXPIRATION = 2 INSTRUMENT_DELETION = 3 INSTRUMENT_SUSPENSION = 4 NO_VALUE = 0xFF class ReversalIndicator(IntEnum): NO = 0 YES = 1 NO_VALUE = 0xFF class RiskLimitAction(IntEnum): QUEUEINBOUND = 0 REJECT = 2 WARNING = 4 NO_VALUE = 0xFF class RiskLimitPlatform(IntEnum): ON_BOOK = 0 OFF_BOOK = 1 NO_VALUE = 0xFF class RiskLimitRequestingPartyRole(IntEnum): CLEARING_FIRM = 4 EXCHANGE = 22 EXECUTING_UNIT = 59 NO_VALUE = 0xFF class RiskLimitType(IntEnum): LONG_LIMIT = 4 SHORT_LIMIT = 5 NO_VALUE = 0xFF class RiskLimitViolationIndicator(IntEnum): NO = 0 YES = 1 NO_VALUE = 0xFF class RootPartyIDInvestmentDecisionMakerQualifier(IntEnum): ALGO = 22 HUMAN = 24 NO_VALUE = 0xFF class RootPartySubIDType(IntEnum): BUYER = 4001 SELLER = 4002 BROKER = 4003 NO_VALUE = 0xFFFF class SecondaryGatewayStatus(IntEnum): STANDBY = 0 ACTIVE = 1 NO_VALUE = 0xFF class SelectiveRequestForQuoteServiceStatus(IntEnum): UNAVAILABLE = 0 AVAILABLE = 1 NO_VALUE = 0xFF class SessionMode(IntEnum): HF = 1 LF = 2 GUI = 3 NO_VALUE = 0xFF class SessionRejectReason(IntEnum): REQUIRED_TAG_MISSING = 1 VALUE_IS_INCORRECT = 5 DECRYPTION_PROBLEM = 7 INVALID_MSGID = 11 INCORRECT_NUMINGROUP_COUNT = 16 OTHER = 99 THROTTLE_LIMIT_EXCEEDED = 100 EXPOSURE_LIMIT_EXCEEDED = 101 SERVICE_TEMPORARILY_NOT_AVAILABLE = 102 SERVICE_NOT_AVAILABLE = 103 OUTBOUND_CONVERSION_ERROR = 105 HEARTBEAT_VIOLATION = 152 INTERNAL_TECHNICAL_ERROR = 200 VALIDATION_ERROR = 210 USER_ALREADY_LOGGED_IN = 211 GATEWAY_IS_STANDBY = 216 SESSION_LOGIN_LIMIT_REACHED = 217 USER_ENTITLEMENT_DATA_TIMEOUT = 223 PSGATEWAY_SESSION_LIMIT_REACHED = 224 USER_LOGIN_LIMIT_REACHED = 225 OUTSTANDING_LOGINS_BU_LIMIT_REACHED = 226 OUTSTANDING_LOGINS_SESSION_LIMIT_REACHED = 227 ORDER_NOT_FOUND = 10000 PRICE_NOT_REASONABLE = 10001 CLIENTORDERID_NOT_UNIQUE = 10002 QUOTE_ACTIVATION_IN_PROGRESS = 10003 STOP_BID_PRICE_NOT_REASONABLE = 10006 STOP_ASK_PRICE_NOT_REASONABLE = 10007 ORDER_NOT_EXECUTABLE_WITHIN_VALIDITY = 10008 CREATE_CI_THROTTLE_EXCEEDED = 10010 TRANSACTION_NOT_ALLOWED_IN_CURRENT_STATE = 10011 NO_VALUE = 0xFFFFFFFF class SessionStatus(IntEnum): ACTIVE = 0 LOGOUT = 4 NO_VALUE = 0xFF class SessionSubMode(IntEnum): REGULAR_TRADING_SESSION = 0 FIX_TRADING_SESSION = 1 REGULAR_BACK_OFFICE_SESSION = 2 NO_VALUE = 0xFF class SettlMethod(IntEnum): CASH_SETTLEMENT = ord('C') PHYSICAL_SETTLEMENT = ord('P') NO_VALUE = 0 class ShowLastDealOnClosure(IntEnum): NO = 0 YES = 1 NO_VALUE = 0xFF class Side(IntEnum): BUY = 1 SELL = 2 NO_VALUE = 0xFF class SideDisclosureInstruction(IntEnum): NO = 0 YES = 1 NO_VALUE = 0xFF class SideLiquidityInd(IntEnum): ADDED_LIQUIDITY = 1 REMOVED_LIQUIDITY = 2 AUCTION = 4 NO_VALUE = 0xFF class SideTrdSubTyp(IntEnum): BLOCK_TRADE = 2001 TRADE_AT_MARKET = 2004 NO_VALUE = 0xFFFF class SkipValidations(IntEnum): FALSE = 0 TRUE = 1 NO_VALUE = 0xFF class SwapClearer(IntEnum): ECAG = 0 NON_ECAG = 1 NO_VALUE = 0xFF class T7EntryServiceRtmStatus(IntEnum): UNAVAILABLE = 0 AVAILABLE = 1 NO_VALUE = 0xFF class T7EntryServiceStatus(IntEnum): UNAVAILABLE = 0 AVAILABLE = 1 NO_VALUE = 0xFF class TimeInForce(IntEnum): DAY = 0 GTC = 1 IOC = 3 GTD = 6 NO_VALUE = 0xFF class TradSesEvent(IntEnum): START_OF_SERVICE = 101 MARKET_RESET = 102 END_OF_RESTATEMENT = 103 END_OF_DAY_SERVICE = 104 SERVICE_RESUMED = 105 NO_VALUE = 0xFF class TradSesMode(IntEnum): TESTING = 1 SIMULATED = 2 PRODUCTION = 3 ACCEPTANCE = 4 DISASTER_RECOVERY = 5 NO_VALUE = 0xFF class TradeAllocStatus(IntEnum): PENDING = 1 APPROVED = 2 AUTO_APPROVED = 3 UPLOADED = 4 CANCELED = 5 PENDING_EXECUTION = 6 PENDING_REVERSAL = 7 APPROVED_REVERSAL = 8 REVERSED = 9 CANCELLED_REVERSAL = 10 NO_VALUE = 0xFF class TradeManagerStatus(IntEnum): UNAVAILABLE = 0 AVAILABLE = 1 NO_VALUE = 0xFF class TradePlatform(IntEnum): OFF_BOOK = 0 ON_BOOK = 1 NO_VALUE = 0xFF class TradePublishIndicator(IntEnum): DO_NOT_PUBLISH_TRADE = 0 PUBLISH_TRADE = 1 DEFERRED_PUBLICATION = 2 PUBLISHED = 3 NO_VALUE = 0xFF class TradeReportType(IntEnum): SUBMIT = 0 ALLEGED = 1 ACCEPT = 2 DECLINE = 3 NO_WAS_REPLACED = 5 TRADE_REPORT_CANCEL = 6 TRADE_BREAK = 7 ALLEGED_NEW = 11 ALLEGED_NO_WAS = 13 NO_VALUE = 0xFF class TradeRequestResult(IntEnum): CANCEL_PENDING = 100 CANCEL_DECLINED = 101 CANCEL_APPROVED = 102 NO_VALUE = 0xFF class TradeToQuoteRatioRanking(IntEnum): LOW = 1 MEDIUM = 2 HIGH = 3 NO_VALUE = 0xFF class TradeUnderlying(IntEnum): NO = 1 YES = 2 NO_VALUE = 0xFF class TradingCapacity(IntEnum): CUSTOMER = 1 PRINCIPAL = 5 MARKET_MAKER = 6 NO_VALUE = 0xFF class TradingSessionSubID(IntEnum): CLOSING_AUCTION = 4 NO_VALUE = 0xFF class TransactionDelayIndicator(IntEnum): NOT_DELAYED = 0 DELAYED = 1 NO_VALUE = 0xFF class TransferReason(IntEnum): OWNER = 1 CLEARER = 2 NO_VALUE = 0xFF class TrdRptStatus(IntEnum): ACCEPTED = 0 REJECTED = 1 CANCELLED = 2 PENDING_NEW = 4 TERMINATED = 7 DEEMED_VERIFIED = 9 NO_VALUE = 0xFF class TrdType(IntEnum): BLOCK_TRADE = 1 EXCHANGE_FOR_SWAP = 12 COMPRESSION = 50 VOLA_TRADE = 1000 EFP_FIN_TRADE = 1001 EFP_INDEX_FUTURES_TRADE = 1002 TRADE_AT_MARKET = 1004 ENLIGHT = 1006 BLOCK_QTPIP = 1007 BTRF = 1010 EBB = 1011 NO_VALUE = 0xFFFF class Triggered(IntEnum): NOT_TRIGGERED = 0 TRIGGERED_STOP = 1 TRIGGERED_OCO = 2 NO_VALUE = 0xFF class UserStatus(IntEnum): USER_FORCED_LOGOUT = 7 USER_STOPPED = 10 USER_RELEASED = 11 NO_VALUE = 0xFF class ValueCheckTypeMinLotSize(IntEnum): DO_NOT_CHECK = 0 CHECK = 1 NO_VALUE = 0xFF class ValueCheckTypeQuantity(IntEnum): DO_NOT_CHECK = 0 CHECK = 1 NO_VALUE = 0xFF class ValueCheckTypeValue(IntEnum): DO_NOT_CHECK = 0 CHECK = 1 NO_VALUE = 0xFF @dataclass class AffectedOrderRequestsGrpComp: sizes = (8, 8) AffectedOrderRequestID: int = 0xFFFFFFFF # u4, fmt:I, size:4, off:0 # PADDING=4 # fmt:4x, size:4, off:4 def update_length(self): pass fmt = ( '