OnixS Eurex ETI Handler C++ library  9.19.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 part
13  * of this source code or associated reference material to any other location for further reproduction
14  * or redistribution, and any amendments to this copyright notice, are expressly prohibited.
15  *
16  * Any reproduction or redistribution for sale or hiring of the Software not in accordance with
17  * the terms of the Agreement is a violation of copyright law.
18  */
19 
20 #pragma once
21 
22 #include "OnixS/Eurex/Trading/Export.h"
27 
28 #include <iosfwd>
29 #include <string>
30 
31 namespace OnixS {
32 namespace Eurex {
33 namespace Trading {
34 
35 /// Trade Broadcast Message.
36 class ONIXS_EUREX_ETI_EXPORT TradeBroadcast : public Message
37 {
38 public:
39  /// Initialize default instance.
40  TradeBroadcast ();
41 
42  /// Message sequence number assigned to a non-order related Eurex ETI data stream.
44 
45  /// Unique ID assigned by the Eurex system during broadcast subscription in order to link broadcasts to the related 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 transaction.
59 
60  /// The instrument identifier uniquely identifies an instrument in the core system.
62 
63  /// Instrument identifier of the originating Eurex strategy.
65 
66  /// Price.
68 
69  /// Price of this leg fill.
71 
72  /// Quantity executed in this leg fill.
74 
75  /// Fill price for the original Eurex strategy.
77 
78  /// Fill quantity for the original Eurex strategy.
80 
81  /// Final trade price.
83 
84  /// Final traded quantity.
86 
87  /// Timestamp of the match event (trade).
89 
90  /// Exchange Order ID generated by Eurex System; it remains constant over the lifetime of an order.
92 
93  /// Unique participant defined order request identifier.
95 
96  /// Remaining quantity of an order.
98 
99  /// Cumulated executed quantity of an order.
101 
102  /// Client Identifier field (ESMA Field 3 (Section A)) used to identify the client of an order for agent account of the member or participant of the trading venue.
104 
105  /// Executing Trader data Field (ESMA Field 5 (Section A)) used to identify the person or algorithm within the member or participant of the trading venue who is responsible for the execution of the transaction resulting from the order.
107 
108  /// Investment decision within firm (ESMA Field 4 (Section A)) is the code used to identify the person or the algorithm within the member or participant of the Trading Venue who is responsible for the investment decision.
110 
111  /// Underlying price associate with a derivative instrument.
113 
114  /// Uniquely identifies all order leg allocations referring to the same matching event, simple instrument and price.
116 
117  /// Original trade identifier in case of trade reversals.
119 
120  /// Mass order response identifier generated by the exchange.
122 
123  /// Owning Business Unit.
125 
126  /// Identification of the technical session.
128 
129  /// Owning User ID.
131 
132  /// Clearing Business Unit ID.
134 
135  /// The product identifier uniquely identifies a Eurex product.
137 
138  /// Product identifier of the original Eurex strategy.
140 
141  /// Private trade identifier of an order or quote match event.
143 
144  /// Business day of the match event.
146 
147  /// Unique identifier for each price level of a match event (used for public trade reporting).
149 
150  /// Identifier that links all trades resulting from a match step of a strategy order.
152 
153  /// Number of leg executions of the original strategy order.
155 
156  /// This field indicates the type of a Eurex futures spread, Eurex option combination or Eurex Strategy.
158 
159  /// Indicates if the trade resulted from a single order or a multi leg order.
161 
162  /// Identifies the type of trade notification.
164 
165  /// Identifies the role for which the trade notification is received.
167 
168  /// Mandatory final KRX beneficiary account required for orders in KRX products.
170 
171  /// Indicates the name of a member institution to which a give-up is designated.
173 
174  /// KRX Member ID.
176 
177  /// The point in the matching process at which this trade was matched.
179 
180  /// Indicates the auction type the trade originates from.
182 
183  /// Side of the order.
185 
186  /// Order initiator is passive or aggressor.
188 
189  /// This field designates if the trader is acting in the capacity of agent, trading for its own account or acting as a market maker.
191 
192  /// Order origination, MiFID field - to indicate order received from a direct access or sponsored access customer.
194 
195  /// Order attribute liquidity provision.
197 
198  /// Order attribute risk reduction.
200 
201  /// Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos.
203 
204  /// Qualifier for field PartyIdInvestmentDecisionMaker. Members/participants will have the possibility to specify an Investment qualifier value to distinguish between natural persons and Algos.
206 
207  /// Account to book trades and keep positions on.
208  std::string account;
209 
210  /// Flex Account information.
212 
213  /// Field is used for Eurex position management purposes and indicates whether the order is submitted to open or close a position.
215 
216  /// Identifies the source of an order, in accordance with the FIA guidelines for a rate Identifier. The field is for participant use only. Valid characters: 0x20, 0x22-0x7B, 0x7D, 0x7E.
218 
219  /// First free-format text field for trader-specific or customer-related comments.
220  std::string freeText1;
221 
222  /// Second free-format text field for trader-specific or customer-related comments.
223  std::string freeText2;
224 
225  /// Third free-format text field for trader-specific or customer-related comments.
226  std::string freeText3;
227 
228  /// Indicates if the trade notification results from an order or quote.
230 
231  /// Order type.
233 
234  /// Instrument type of the original Eurex strategy.
236 
237  /// Side of the order in the original Eurex strategy.
239 
240  /// Clearing House Short Name.
242 
243  /// Participant Short Name.
245 
246  /// Owning User Short Name.
248 
249  /// Clearing Member Short Name.
251 
252  /// TVTIC - Trading Venue Transaction Identification Code.
253  std::string regulatoryTradeId;
254 
255  /// Root party ID execution venue.
257 
258  /// This field indicates the Fee Code associated with the transaction.
259  std::string feeIdntCode;
260 
261  /// Returns template ID.
262  TemplateId::Enum templateId () const;
263 
264  /// Returns string representation.
265  std::string toString () const;
266 
267 private:
268  friend class Serializer;
269  TradeBroadcast (const void* data, size_t dataSize, MessageInfo& msgInfo);
270  void nativeSerializeTo (void* nativeMessage);
271 };
272 
273 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const TradeBroadcast&);
274 
275 }
276 }
277 }
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 whether this message is the last fragment (part) of a sequence of messages belonging to one...
Definition: Enumerations.h:661
Enum
Indicates a retransmission message.
Definition: Enumerations.h:71
RelatedProductComplex::Enum relatedProductComplex
Instrument type of the original Eurex strategy.
UInt64 rootPartyIdInvestmentDecisionMaker
Investment decision within firm (ESMA Field 4 (Section A)) is the code used to identify the person or...
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.
LastFragment::Enum lastFragment
Indicates whether this message is the last fragment (part) of a sequence of messages belonging to one...
std::string rootPartyExecutingTrader
Owning User Short Name.
UInt32 matchDate
Business day of the match event.
TradingCapacity::Enum tradingCapacity
This field designates if the trader is acting in the capacity of agent, trading for its own account o...
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.
Definition: Enumerations.h:937
unsigned long long UInt64
Definition: Defines.h:47
std::string account
Account to book trades and keep positions on.
OrderAttributeRiskReduction::Enum orderAttributeRiskReduction
Order attribute risk reduction.
PositionEffect::Enum positionEffect
Field is used for Eurex position management purposes and indicates whether the order is submitted to ...
UInt64 executingTrader
Executing Trader data Field (ESMA Field 5 (Section A)) used to identify the person or algorithm withi...
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.
Enum
Qualifier for field PartyIdInvestmentDecisionMaker. Members/participants will have the possibility to...
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
Qualifier for field PartyIdInvestmentDecisionMaker. Members/participants will have the possibility to...
Enum
Field is used for Eurex position management purposes and indicates whether the order is submitted to ...
UInt64 applSeqNum
Message sequence number assigned to a non-order related Eurex ETI data stream.
signed int SInt32
Definition: Defines.h:42
UInt64 rootPartyIdClientId
Client Identifier field (ESMA Field 3 (Section A)) used to identify the client of an order for agent ...
SInt64 relatedSecurityId
Instrument identifier of the originating Eurex strategy.
OrderSide::Enum orderSide
Side of the order in the original Eurex strategy.
UInt32 applSubId
Unique ID assigned by the Eurex system during broadcast subscription in order to link broadcasts to t...
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:33
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.
Enum
Identifies the source of an order, in accordance with the FIA guidelines for a rate Identifier...
Definition: Enumerations.h:271
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:46
CustOrderHandlingInst::Enum custOrderHandlingInst
Identifies the source of an order, in accordance with the FIA guidelines for a rate Identifier...
signed long long SInt64
Definition: Defines.h:43
std::string rootPartyIdPositionAccount
Flex Account information.
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:34
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::ostream & operator<<(std::ostream &, const ConnectionStateChange &)
Make it printable to formatted C++ I/O streams.
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.
Definition: Enumerations.h:988
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
This field designates if the trader is acting in the capacity of agent, trading for its own account o...
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:45
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.
Definition: Enumerations.h:919
Enum
Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos...
Definition: Enumerations.h:473
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...