OnixS Eurex ETI Handler C++ library  9.21.0
API documentation
TradeBroadcast.h
Go to the documentation of this file.
1 /*
2  * Copyright Onix Solutions Limited [OnixS]. All rights reserved.
3  *
4  * This software owned by Onix Solutions Limited [OnixS] and is protected by copyright law
5  * and international copyright treaties.
6  *
7  * Access to and use of the software is governed by the terms of the applicable ONIXS Software
8  * Services Agreement (the Agreement) and Customer end user license agreements granting
9  * a non-assignable, non-transferable and non-exclusive license to use the software
10  * for it's own data processing purposes under the terms defined in the Agreement.
11  *
12  * Except as otherwise granted within the terms of the Agreement, copying or reproduction of any
13  * part of this source code or associated reference material to any other location for further
14  * reproduction or redistribution, and any amendments to this copyright notice, are expressly
15  * prohibited.
16  *
17  * Any reproduction or redistribution for sale or hiring of the Software not in accordance with
18  * the terms of the Agreement is a violation of copyright law.
19  */
20 
21 #pragma once
22 
25 #include "OnixS/Eurex/Trading/Export.h"
28 
29 #include <iosfwd>
30 #include <string>
31 
32 namespace OnixS { namespace Eurex { namespace Trading {
33 
34 /// Trade Broadcast Message.
35 class ONIXS_EUREX_ETI_EXPORT TradeBroadcast : public Message
36 {
37 public:
38  /// Initialize default instance.
40 
41  /// Message sequence number assigned to a non-order related Eurex ETI data stream.
43 
44  /// Unique ID assigned by the Eurex system during broadcast subscription in order to link broadcasts to the related
45  /// subscription.
47 
48  /// Is required to define the scope of a Retransmission Request.
50 
51  /// Indicates a retransmission message.
53 
54  /// Identifier for subscription and retransmission of an ETI data stream.
56 
57  /// Indicates whether this message is the last fragment (part) of a sequence of messages belonging to one dedicated
58  /// transaction.
60 
61  /// The instrument identifier uniquely identifies an instrument in the core system.
63 
64  /// Instrument identifier of the originating Eurex strategy.
66 
67  /// Price.
69 
70  /// Price of this leg fill.
72 
73  /// Quantity executed in this leg fill.
75 
76  /// Fill price for the original Eurex strategy.
78 
79  /// Fill quantity for the original Eurex strategy.
81 
82  /// Final trade price.
84 
85  /// Final traded quantity.
87 
88  /// Timestamp of the match event (trade).
90 
91  /// Exchange Order ID generated by Eurex System; it remains constant over the lifetime of an order.
93 
94  /// Unique participant defined order request identifier.
96 
97  /// Remaining quantity of an order.
99 
100  /// Cumulated executed quantity of an order.
102 
103  /// Client Identifier field (ESMA Field 3 (Section A)) used to identify the client of an order for agent account of
104  /// the member or participant of the trading venue.
106 
107  /// Executing Trader data Field (ESMA Field 5 (Section A)) used to identify the person or algorithm within the
108  /// member or participant of the trading venue who is responsible for the execution of the transaction resulting
109  /// from the order.
111 
112  /// Investment decision within firm (ESMA Field 4 (Section A)) is the code used to identify the person or the
113  /// algorithm within the member or participant of the Trading Venue who is responsible for the investment decision.
115 
116  /// Underlying price associate with a derivative instrument.
118 
119  /// Uniquely identifies all order leg allocations referring to the same matching event, simple instrument and price.
121 
122  /// Original trade identifier in case of trade reversals.
124 
125  /// Mass order response identifier generated by the exchange.
127 
128  /// Owning Business Unit.
130 
131  /// Identification of the technical session.
133 
134  /// Owning User ID.
136 
137  /// Clearing Business Unit ID.
139 
140  /// The product identifier uniquely identifies a Eurex product.
142 
143  /// Product identifier of the original Eurex strategy.
145 
146  /// Private trade identifier of an order or quote match event.
148 
149  /// Business day of the match event.
151 
152  /// Unique identifier for each price level of a match event (used for public trade reporting).
154 
155  /// Identifier that links all trades resulting from a match step of a strategy order.
157 
158  /// Number of leg executions of the original strategy order.
160 
161  /// This field indicates the type of a Eurex futures spread, Eurex option combination or Eurex Strategy.
163 
164  /// Indicates if the trade resulted from a single order or a multi leg order.
166 
167  /// Identifies the type of trade notification.
169 
170  /// Identifies the role for which the trade notification is received.
172 
173  /// Mandatory final KRX beneficiary account required for orders in KRX products.
175 
176  /// Indicates the name of a member institution to which a give-up is designated.
178 
179  /// KRX Member ID.
181 
182  /// The point in the matching process at which this trade was matched.
184 
185  /// Indicates the auction type the trade originates from.
187 
188  /// Side of the order.
190 
191  /// Order initiator is passive or aggressor.
193 
194  /// This field designates if the trader is acting in the capacity of agent, trading for its own account or acting as
195  /// a market maker.
197 
198  /// Order origination, MiFID field - to indicate order received from a direct access or sponsored access customer.
200 
201  /// Order attribute liquidity provision.
203 
204  /// Order attribute risk reduction.
206 
207  /// Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos.
209 
210  /// Qualifier for field PartyIdInvestmentDecisionMaker. Members/participants will have the possibility to specify an
211  /// Investment qualifier value to distinguish between natural persons and Algos.
213 
214  /// Account to book trades and keep positions on.
215  std::string account;
216 
217  /// Flex Account information.
219 
220  /// Field is used for Eurex position management purposes and indicates whether the order is submitted to open or
221  /// close a position.
223 
224  /// Identifies the source of an order, in accordance with the FIA guidelines for a rate Identifier. The field is for
225  /// participant use only. Valid characters: 0x20, 0x22-0x7B, 0x7D, 0x7E.
227 
228  /// First free-format text field for trader-specific or customer-related comments.
229  std::string freeText1;
230 
231  /// Second free-format text field for trader-specific or customer-related comments.
232  std::string freeText2;
233 
234  /// Third free-format text field for trader-specific or customer-related comments.
235  std::string freeText3;
236 
237  /// Indicates if the trade notification results from an order or quote.
239 
240  /// Order type.
242 
243  /// Instrument type of the original Eurex strategy.
245 
246  /// Side of the order in the original Eurex strategy.
248 
249  /// Clearing House Short Name.
251 
252  /// Participant Short Name.
254 
255  /// Owning User Short Name.
257 
258  /// Clearing Member Short Name.
260 
261  /// TVTIC - Trading Venue Transaction Identification Code.
262  std::string regulatoryTradeId;
263 
264  /// Root party ID execution venue.
266 
267  /// This field indicates the Fee Code associated with the transaction.
268  std::string feeIdntCode;
269 
270  /// Returns template ID.
271  TemplateId::Enum templateId() const;
272 
273  /// Returns string representation.
274  std::string toString() const;
275 
276 private:
277  friend class Serializer;
278  TradeBroadcast(const void* data, size_t dataSize, MessageInfo& msgInfo);
279  void nativeSerializeTo(void* nativeMessage);
280 };
281 
282 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const TradeBroadcast&);
283 
284 }}} // namespace OnixS::Eurex::Trading
ApplResendFlag::Enum applResendFlag
Indicates a retransmission message.
UInt32 massOrderReportId
Mass order response identifier generated by the exchange.
ExecutingTraderQualifier::Enum executingTraderQualifier
Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos...
Enum
Indicates a retransmission message.
Definition: Enumerations.h:76
RelatedProductComplex::Enum relatedProductComplex
Instrument type of the original Eurex strategy.
UInt32 sideTradeId
Private trade identifier of an order or quote match event.
Enum
Side of the order in the original Eurex strategy.
UInt64 clOrdId
Unique participant defined order request identifier.
std::string rootPartyExecutingTrader
Owning User Short Name.
UInt32 matchDate
Business day of the match event.
SInt64 leavesQty
Remaining quantity of an order.
SInt64 lastPx
Price of this leg fill.
std::string rootPartyClearingFirm
Clearing Member Short Name.
UInt32 rootPartyIdExecutingUnit
Owning Business Unit.
Enum
Side of the order.
SInt32 totNumTradeReports
Number of leg executions of the original strategy order.
Enum
The point in the matching process at which this trade was matched.
unsigned long long UInt64
Definition: Defines.h:46
std::string account
Account to book trades and keep positions on.
OrderAttributeRiskReduction::Enum orderAttributeRiskReduction
Order attribute risk reduction.
MatchSubType::Enum matchSubType
Indicates the auction type the trade originates from.
SInt64 sideLastPx
Fill price for the original Eurex strategy.
std::string rootPartyIdBeneficiary
Mandatory final KRX beneficiary account required for orders in KRX products.
UInt32 origTradeId
Original trade identifier in case of trade reversals.
std::string rootPartyIdOrderOriginationFirm
KRX Member ID.
std::string feeIdntCode
This field indicates the Fee Code associated with the transaction.
UInt32 strategyLinkId
Identifier that links all trades resulting from a match step of a strategy order. ...
MultiLegReportingType::Enum multiLegReportingType
Indicates if the trade resulted from a single order or a multi leg order.
OrderCategory::Enum orderCategory
Indicates if the trade notification results from an order or quote.
MatchType::Enum matchType
The point in the matching process at which this trade was matched.
RootPartyIdInvestmentDecisionMakerQualifier::Enum rootPartyIdInvestmentDecisionMakerQualifier
UInt64 applSeqNum
Message sequence number assigned to a non-order related Eurex ETI data stream.
signed int SInt32
Definition: Defines.h:41
SInt64 relatedSecurityId
Instrument identifier of the originating Eurex strategy.
OrderSide::Enum orderSide
Side of the order in the original Eurex strategy.
OrderOrigination::Enum orderOrigination
Order origination, MiFID field - to indicate order received from a direct access or sponsored access ...
TransferReason::Enum transferReason
Identifies the role for which the trade notification is received.
std::string regulatoryTradeId
TVTIC - Trading Venue Transaction Identification Code.
Message base class.
Definition: Message.h:32
Enum
Order origination, MiFID field - to indicate order received from a direct access or sponsored access ...
UInt64 transactTime
Timestamp of the match event (trade).
UInt16 partitionId
Is required to define the scope of a Retransmission Request.
OrdType::Enum ordType
Order type.
SInt64 clearingTradeQty
Final traded quantity.
UInt32 rootPartyIdSessionId
Identification of the technical session.
std::string rootPartyExecutingFirm
Participant Short Name.
TradeReportType::Enum tradeReportType
Identifies the type of trade notification.
unsigned int UInt32
Definition: Defines.h:45
CustOrderHandlingInst::Enum custOrderHandlingInst
signed long long SInt64
Definition: Defines.h:42
std::string rootPartyIdPositionAccount
Flex Account information.
std::ostream & operator<<(std::ostream &, ConnectionState::Enum)
Make it printable using C++ I/O streams.
SInt64 lastQty
Quantity executed in this leg fill.
Enum
Indicates if the trade notification results from an order or quote.
SInt64 cumQty
Cumulated executed quantity of an order.
UInt32 tradeId
Uniquely identifies all order leg allocations referring to the same matching event, simple instrument and price.
SInt64 securityId
The instrument identifier uniquely identifies an instrument in the core system.
std::string rootPartyIdExecutionVenue
Root party ID execution venue.
SideLiquidityInd::Enum sideLiquidityInd
Order initiator is passive or aggressor.
Enum
Identifier for subscription and retransmission of an ETI data stream.
Definition: Enumerations.h:33
std::string rootPartyClearingOrganization
Clearing House Short Name.
std::string freeText1
First free-format text field for trader-specific or customer-related comments.
std::string freeText2
Second free-format text field for trader-specific or customer-related comments.
ApplId::Enum applId
Identifier for subscription and retransmission of an ETI data stream.
UInt32 rootPartyIdExecutingTrader
Owning User ID.
Side::Enum side
Side of the order.
Enum
Order initiator is passive or aggressor.
std::string rootPartyIdTakeUpTradingFirm
Indicates the name of a member institution to which a give-up is designated.
Enum
Indicates if the trade resulted from a single order or a multi leg order.
UInt32 rootPartyIdClearingUnit
Clearing Business Unit ID.
SInt32 relatedSymbol
Product identifier of the original Eurex strategy.
std::string freeText3
Third free-format text field for trader-specific or customer-related comments.
SInt64 sideLastQty
Fill quantity for the original Eurex strategy.
SInt32 marketSegmentId
The product identifier uniquely identifies a Eurex product.
Enum
Identifies the role for which the trade notification is received.
Enum
Identifies the type of trade notification.
UInt32 trdMatchId
Unique identifier for each price level of a match event (used for public trade reporting).
unsigned short UInt16
Definition: Defines.h:44
OrderAttributeLiquidityProvision::Enum orderAttributeLiquidityProvision
Order attribute liquidity provision.
SInt64 clearingTradePrice
Final trade price.
Enum
Instrument type of the original Eurex strategy.
Enum
Indicates the auction type the trade originates from.
Enum
Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos...
Definition: Enumerations.h:551
SInt64 underlyingPx
Underlying price associate with a derivative instrument.
UInt64 orderId
Exchange Order ID generated by Eurex System; it remains constant over the lifetime of an order...
SInt32 securitySubType
This field indicates the type of a Eurex futures spread, Eurex option combination or Eurex Strategy...