OnixS Eurex ETI Handler C++ library  9.22.0
API documentation
OrderExecReportBroadcast.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"
31 
32 #include <iosfwd>
33 #include <string>
34 #include <vector>
35 
36 namespace OnixS { namespace Eurex { namespace Trading {
37 
38 /// Order Exec Report Broadcast Message.
39 class ONIXS_EUREX_ETI_EXPORT OrderExecReportBroadcast : public Message
40 {
41 public:
42  /// Initialize default instance.
44 
45  /// Matching engine out timestamp.
47 
48  /// Unique ID assigned by the Eurex system during broadcast subscription in order to link broadcasts to the related
49  /// subscription.
51 
52  /// Is required to define the scope of a Retransmission Request.
54 
55  /// Message key assigned to a order/quote event related Eurex ETI data stream.
57 
58  /// Identifier for subscription and retransmission of an ETI data stream.
60 
61  /// Indicates a retransmission message.
63 
64  /// Indicates whether this message is the last fragment (part) of a sequence of messages belonging to one dedicated
65  /// transaction.
67 
68  /// Exchange Order ID generated by Eurex System; it remains constant over the lifetime of an order.
70 
71  /// Unique participant defined order request identifier.
73 
74  /// ClOrdID (11) of the last successfully processed task (request) referring to the specific order; used for client
75  /// order ID chaining.
77 
78  /// The instrument identifier uniquely identifies an instrument in the core system.
80 
81  /// Transaction timestamp.
83 
84  /// The entry timestamp is the time of the creation of the order.
86 
87  /// Priority timestamp.
89 
90  /// Price.
92 
93  /// Remaining quantity of an order.
95 
96  /// Cumulated executed quantity of an order.
98 
99  /// Total quantity cancelled for this order.
101 
102  /// Total Order Quantity.
104 
105  /// Stop price.
107 
108  /// The product identifier uniquely identifies a Eurex product.
110 
111  /// Mass order response identifier generated by the exchange.
113 
114  /// Date of order expiry.
116 
117  /// Self Match Prevention ID.
119 
120  /// Owning Business Unit.
122 
123  /// Identification of a Trading Session provided by Eurex to a certain business unit.
125 
126  /// Owning User ID.
128 
129  /// Entering User ID.
131 
132  /// Code to further qualify the field ExecType (150) of the Execution Report (8) message.
134 
135  /// Entering Business Unit.
137 
138  /// Indicate the instruction for SMP. If MatchInstCrossID (28744) is set then the default value for
139  /// SelfMatchPreventionInstruction is 100 (Reject cross on business unit level).
141 
142  /// This field qualifies an instrument type on Eurex.
144 
145  /// Conveys the current status of an order.
147 
148  /// The reason why this message was generated.
150 
151  /// Side of the order.
153 
154  /// Order type.
156 
157  /// This field designates if the trader is acting in the capacity of agent, trading for its own account or acting as
158  /// a market maker.
160 
161  /// Execution and trading restriction parameters supported by Eurex.
163 
164  /// Instructions for order handling, represented as a bit map.
166 
167  /// Marks a a certain order as a closing auction one.
169 
170  /// Indicates if the order is a Lean Order or a Standard (non lean) Order.
172 
173  /// Account to book trades and keep positions on.
174  std::string account;
175 
176  /// Flex Account information.
178 
179  /// Field is used for Eurex position management purposes and indicates whether the order is submitted to open or
180  /// close a position.
182 
183  /// Indicates the name of a member institution to which a give-up is designated.
185 
186  /// Partner identification at the Korea Exchange is required for orders in KRX products.
188 
189  /// Mandatory final KRX beneficiary account required for orders in KRX products.
190  std::string partyIdBeneficiary;
191 
192  /// Country code. Valid characters: 0x01-0x7E.
193  std::string partyIdLocationId;
194 
195  /// Identifies the source of an order, in accordance with the FIA guidelines for a rate Identifier. The field is for
196  /// participant use only. Valid characters: 0x20, 0x22-0x7B, 0x7D, 0x7E.
198 
199  /// This field is used to provide additional regulatory information (according to respective rules and regs,
200  /// circulars and bilateral coordination between participant and Trading Surveillance Office).
201  std::string complianceText;
202 
203  /// First free-format text field for trader-specific or customer-related comments.
204  std::string freeText1;
205 
206  /// Second free-format text field for trader-specific or customer-related comments.
207  std::string freeText2;
208 
209  /// Third free-format text field for trader-specific or customer-related comments.
210  std::string freeText3;
211 
212  /// User defined client order ID.
213  std::string fixClOrdId;
214 
215  /// Indicates if an order has been previously triggered.
217 
218  /// Indicates SMP involvement.
220 
221  /// Leg Ord Group.
222  std::vector<LegOrdGrpElem> legOrdGrp;
223 
224  /// Fills Group.
225  std::vector<FillsGrpElem> fillsGrp;
226 
227  /// Instrmnt Leg Exec Group.
228  std::vector<InstrmntLegExecGrpElem> instrmntLegExecGrp;
229 
230  /// Order Event Group.
231  std::vector<OrderEventGrpElem> orderEventGrp;
232 
233  /// Returns template ID.
234  TemplateId::Enum templateId() const;
235 
236  /// Returns string representation.
237  std::string toString() const;
238 
239 private:
240  friend class Serializer;
241  OrderExecReportBroadcast(const void* data, size_t dataSize, MessageInfo& msgInfo);
242  void nativeSerializeTo(void* nativeMessage);
243 };
244 
245 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const OrderExecReportBroadcast&);
246 
247 }}}
PartyIdEnteringFirm::Enum partyIdEnteringFirm
Entering Business Unit.
Enum
Indicates if the order is a Lean Order or a Standard (non lean) Order.
Definition: Enumerations.h:94
Enum
Indicates a retransmission message.
Definition: Enumerations.h:76
std::vector< InstrmntLegExecGrpElem > instrmntLegExecGrp
Instrmnt Leg Exec Group.
UInt16 partitionId
Is required to define the scope of a Retransmission Request.
std::string partyIdLocationId
Country code. Valid characters: 0x01-0x7E.
Enum
Side of the order.
UInt64 orderId
Exchange Order ID generated by Eurex System; it remains constant over the lifetime of an order...
unsigned long long UInt64
Definition: Defines.h:46
ExecInst::Enum execInst
Instructions for order handling, represented as a bit map.
std::vector< FillsGrpElem > fillsGrp
Fills Group.
Enum
The reason why this message was generated.
Definition: Enumerations.h:527
signed int SInt32
Definition: Defines.h:41
Enum
This field qualifies an instrument type on Eurex.
Enum
Instructions for order handling, represented as a bit map.
Definition: Enumerations.h:460
CrossedIndicator::Enum crossedIndicator
Indicates SMP involvement.
UInt32 partyIdSessionId
Identification of a Trading Session provided by Eurex to a certain business unit. ...
TimeInForce::Enum timeInForce
Execution and trading restriction parameters supported by Eurex.
UInt64 clOrdId
Unique participant defined order request identifier.
std::vector< OrderEventGrpElem > orderEventGrp
Order Event Group.
Message base class.
Definition: Message.h:32
SInt64 cxlQty
Total quantity cancelled for this order.
std::vector< UInt8 > Data
Definition: Defines.h:59
std::string freeText3
Third free-format text field for trader-specific or customer-related comments.
SInt64 leavesQty
Remaining quantity of an order.
ProductComplex::Enum productComplex
This field qualifies an instrument type on Eurex.
std::string freeText1
First free-format text field for trader-specific or customer-related comments.
Enum
Code to further qualify the field ExecType (150) of the Execution Report (8) message.
Definition: Enumerations.h:481
std::string partyIdPositionAccount
Flex Account information.
SInt64 cumQty
Cumulated executed quantity of an order.
Enum
Indicates if an order has been previously triggered.
unsigned int UInt32
Definition: Defines.h:45
Data applMsgId
Message key assigned to a order/quote event related Eurex ETI data stream.
signed long long SInt64
Definition: Defines.h:42
OrdStatus::Enum ordStatus
Conveys the current status of an order.
SInt64 securityId
The instrument identifier uniquely identifies an instrument in the core system.
UInt64 trdRegTSTimeOut
Matching engine out timestamp.
std::ostream & operator<<(std::ostream &, ConnectionState::Enum)
Make it printable using C++ I/O streams.
Triggered::Enum triggered
Indicates if an order has been previously triggered.
std::string freeText2
Second free-format text field for trader-specific or customer-related comments.
ExecRestatementReason::Enum execRestatementReason
Code to further qualify the field ExecType (150) of the Execution Report (8) message.
TradingSessionSubId::Enum tradingSessionSubId
Marks a a certain order as a closing auction one.
UInt64 trdRegTSEntryTime
The entry timestamp is the time of the creation of the order.
Enum
Identifier for subscription and retransmission of an ETI data stream.
Definition: Enumerations.h:33
UInt32 massOrderReportId
Mass order response identifier generated by the exchange.
std::string account
Account to book trades and keep positions on.
ApplResendFlag::Enum applResendFlag
Indicates a retransmission message.
std::vector< LegOrdGrpElem > legOrdGrp
Leg Ord Group.
ApplId::Enum applId
Identifier for subscription and retransmission of an ETI data stream.
std::string partyIdBeneficiary
Mandatory final KRX beneficiary account required for orders in KRX products.
Enum
Conveys the current status of an order.
SelfMatchPreventionInstruction::Enum selfMatchPreventionInstruction
Enum
Indicates SMP involvement.
Definition: Enumerations.h:300
unsigned short UInt16
Definition: Defines.h:44
ExecType::Enum execType
The reason why this message was generated.
std::string partyIdTakeUpTradingFirm
Indicates the name of a member institution to which a give-up is designated.
SInt32 marketSegmentId
The product identifier uniquely identifies a Eurex product.
Enum
Marks a a certain order as a closing auction one.
ApplSeqIndicator::Enum applSeqIndicator
Indicates if the order is a Lean Order or a Standard (non lean) Order.
Enum
Execution and trading restriction parameters supported by Eurex.
std::string partyIdOrderOriginationFirm
Partner identification at the Korea Exchange is required for orders in KRX products.
std::string fixClOrdId
User defined client order ID.