OnixS Eurex ETI Handler C++ library  9.10.1
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  /// Owning Business Unit.
122 
123  /// Identification of the technical session.
125 
126  /// Owning User ID.
128 
129  /// Clearing Business Unit ID.
131 
132  /// The product identifier uniquely identifies a Eurex product.
134 
135  /// Product identifier of the original Eurex strategy.
137 
138  /// Private trade identifier of an order or quote match event.
140 
141  /// Business day of the match event.
143 
144  /// Unique identifier for each price level of a match event (used for public trade reporting).
146 
147  /// Identifier that links all trades resulting from a match step of a strategy order.
149 
150  /// Number of leg executions of the original strategy order.
152 
153  /// This field indicates the type of a Eurex futures spread, Eurex option combination or Eurex Strategy.
155 
156  /// Indicates if the trade resulted from a single order or a multi leg order.
158 
159  /// Identifies the type of trade notification.
161 
162  /// Identifies the role for which the trade notification is received.
164 
165  /// Mandatory final KRX beneficiary account required for orders in KRX products.
167 
168  /// Indicates the name of a member institution to which a give-up is designated.
170 
171  /// KRX Member ID.
173 
174  /// The point in the matching process at which this trade was matched.
176 
177  /// Indicates the auction type the trade originates from.
179 
180  /// Side of the order.
182 
183  /// Order initiator is passive or aggressor.
185 
186  /// This field designates if the trader is acting in the capacity of agent, trading for its own account or acting as a market maker.
188 
189  /// Order origination, MiFID field - to indicate order received from a direct access or sponsored access customer.
191 
192  /// Order attribute liquidity provision.
194 
195  /// Order attribute risk reduction.
197 
198  /// Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos.
200 
201  /// Qualifier for field PartyIdInvestmentDecisionMaker. Members/participants will have the possibility to specify an Investment qualifier value to distinguish between natural persons and Algos.
203 
204  /// Account to book trades and keep positions on.
205  std::string account;
206 
207  /// Flex Account information.
209 
210  /// Field is used for Eurex position management purposes and indicates whether the order is submitted to open or close a position.
212 
213  /// 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.
215 
216  /// First free-format text field for trader-specific or customer-related comments.
217  std::string freeText1;
218 
219  /// Second free-format text field for trader-specific or customer-related comments.
220  std::string freeText2;
221 
222  /// Third free-format text field for trader-specific or customer-related comments.
223  std::string freeText3;
224 
225  /// Indicates if the trade notification results from an order or quote.
227 
228  /// Order type.
230 
231  /// Instrument type of the original Eurex strategy.
233 
234  /// Side of the order in the original Eurex strategy.
236 
237  /// Clearing House Short Name.
239 
240  /// Participant Short Name.
242 
243  /// Owning User Short Name.
245 
246  /// Clearing Member Short Name.
248 
249  /// TVTIC - Trading Venue Transaction Identification Code.
250  std::string regulatoryTradeId;
251 
252  /// Root party ID execution venue.
254 
255  /// Returns template ID.
256  TemplateId::Enum templateId () const;
257 
258  /// Returns string representation.
259  std::string toString () const;
260 
261 private:
262  friend class Serializer;
263  TradeBroadcast (const void* data, size_t dataSize, MessageInfo& msgInfo);
264  void nativeSerializeTo (void* nativeMessage);
265 };
266 
267 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const TradeBroadcast&);
268 
269 }
270 }
271 }
ApplResendFlag::Enum applResendFlag
Indicates a retransmission message.
ExecutingTraderQualifier::Enum executingTraderQualifier
Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos...
std::ostream & operator<<(std::ostream &, const ConnectionRetries &)
Enum
Indicates whether this message is the last fragment (part) of a sequence of messages belonging to one...
Definition: Enumerations.h:583
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:855
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.
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:229
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::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:906
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:837
Enum
Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos...
Definition: Enumerations.h:425
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...