OnixS Eurex ETI Handler C++ library  9.19.0
API documentation
TESUploadBroadcast.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"
28 
29 #include <iosfwd>
30 #include <string>
31 #include <vector>
32 
33 namespace OnixS {
34 namespace Eurex {
35 namespace Trading {
36 
37 /// Side Alloc Ext Group Element.
38 class ONIXS_EUREX_ETI_EXPORT SideAllocExtGrpElem
39 {
40 public:
41  /// Initialize default instance.
43 
44  /// Quantity of the particular trade side in the TES trade.
46 
47  /// 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.
49 
50  /// 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.
52 
53  /// 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.
55 
56  /// Unique identifier for a TES trade side.
58 
59  /// Owning business unit name.
60  std::string partyExecutingFirm;
61 
62  /// Owning user name.
63  std::string partyExecutingTrader;
64 
65  /// Enrichment Rule ID for TES trades (to be used only in case of Auto Approval).
67 
68  /// Side of the order.
70 
71  /// Status of an allocation in a Trade Entry Service trade.
73 
74  /// This field designates if the trader is acting in the capacity of agent, trading for its own account or acting as a market maker.
76 
77  /// Field is used for Eurex position management purposes and indicates whether the order is submitted to open or close a position.
79 
80  /// Order attribute liquidity provision.
82 
83  /// Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos.
85 
86  /// Party ID investment decision maker qualifier.
88 
89  /// Order attribute risk reduction.
91 
92  /// Order origination, MiFID field - to indicate order received from a direct access or sponsored access customer.
94 
95  /// Account to book trades and keep positions on.
96  std::string account;
97 
98  /// Flex Account information.
100 
101  /// Indicates the name of a member institution to which a give-up is designated.
103 
104  /// First free-format text field for trader-specific or customer-related comments.
105  std::string freeText1;
106 
107  /// Second free-format text field for trader-specific or customer-related comments.
108  std::string freeText2;
109 
110  /// Third free-format text field for trader-specific or customer-related comments.
111  std::string freeText3;
112 
113  /// Partner identification at the Korea Exchange is required for orders in KRX products.
115 
116  /// Mandatory final KRX beneficiary account required for orders in KRX products.
117  std::string partyIdBeneficiary;
118 
119  /// Country code. Valid characters: 0x01-0x7E.
120  std::string partyIdLocationId;
121 
122  /// 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.
124 
125  /// This field is used to provide additional regulatory information (according to respective rules and regs, circulars and bilateral coordination between participant and Trading Surveillance Office).
126  std::string complianceText;
127 
128  /// End client identifier.
130 
131  /// Returns string representation.
132  std::string toString () const;
133 
134 private:
135  friend class Serializer;
136  SideAllocExtGrpElem (const void* data);
137 };
138 
139 ONIXS_EUREX_ETI_EXPORT std::ostream& operator << (std::ostream&, const SideAllocExtGrpElem&);
140 
141 /// TES Upload Broadcast Message.
142 class ONIXS_EUREX_ETI_EXPORT TESUploadBroadcast : public Message
143 {
144 public:
145  /// Initialize default instance.
147 
148  /// Message sequence number assigned to a non-order related Eurex ETI data stream.
150 
151  /// Unique ID assigned by the Eurex system during broadcast subscription in order to link broadcasts to the related subscription.
153 
154  /// Is required to define the scope of a Retransmission Request.
156 
157  /// Indicates a retransmission message.
159 
160  /// Identifier for subscription and retransmission of an ETI data stream.
162 
163  /// Indicates whether this message is the last fragment (part) of a sequence of messages belonging to one dedicated transaction.
165 
166  /// The instrument identifier uniquely identifies an instrument in the core system.
168 
169  /// Price of this leg fill.
171 
172  /// Trade Closure Time, the time when an Off-Book trade was concluded outside the Eurex System.
174 
175  /// Timestamp of the match event (trade).
177 
178  /// Underlying price associate with a derivative instrument.
180 
181  /// User defined index price.
183 
184  /// Quantity of the related trade.
186 
187  /// Price of the related instrument.
189 
190  /// Nominal value.
192 
193  /// The product identifier uniquely identifies a Eurex product.
195 
196  /// Identifier for a Trade Entry Service trade, i.e TES trade ID.
198 
199  /// System transaction identifier for a Trade Entry Service transaction.
201 
202  /// Date the underlying instrument will settle.
204 
205  /// Underlying security's maturity date.
207 
208  /// Identifier of a related trade.
210 
211  /// Identifies a related product.
213 
214  /// Indicates if a trade should be reported via the market reporting service.
216 
217  /// This field qualifies an instrument type on Eurex.
219 
220  /// Identifies the type of trade notification.
222 
223  /// SRQS deal status.
225 
226  /// Indicates if a trade should be reported via the market reporting service.
228 
229  /// Indicates trade platform. Can only be used for EEX.
231 
232  /// Hedging method.
234 
235  /// Settlement institution.
237 
238  /// Swap clearer for EFS Trades only.
240 
241  /// Receiver of a message.
243 
244  /// User defined transaction ID. Part of the TES response and TES broadcast.
245  std::string tradeReportId;
246 
247  /// Participant Short Name.
249 
250  /// Owning User Short Name.
252 
253  /// Underlying security's ID.
254  std::string underlyingSecurityId;
255 
256  /// Description of the Underlying security.
258 
259  /// Underlying security's currency.
260  std::string underlyingCurrency;
261 
262  /// The issuer or name of the underlying security.
263  std::string underlyingIssuer;
264 
265  /// Side Alloc Ext Group.
266  std::vector<SideAllocExtGrpElem> sideAllocExtGrp;
267 
268  /// Trd Instrmnt Leg Group.
269  std::vector<TrdInstrmntLegGrpElem> trdInstrmntLegGrp;
270 
271  /// Instrument Event Group.
272  std::vector<InstrumentEventGrpElem> instrumentEventGrp;
273 
274  /// Instrument Attribute Group.
275  std::vector<InstrumentAttributeGrpElem> instrumentAttributeGrp;
276 
277  /// Underlying Stip Group.
278  std::vector<UnderlyingStipGrpElem> underlyingStipGrp;
279 
280  /// Returns template ID.
281  TemplateId::Enum templateId () const;
282 
283  /// Returns string representation.
284  std::string toString () const;
285 
286 private:
287  friend class Serializer;
288  TESUploadBroadcast (const void* data, size_t dataSize, MessageInfo& msgInfo);
289  void nativeSerializeTo (void* nativeMessage);
290 };
291 
292 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const TESUploadBroadcast&);
293 
294 }
295 }
296 }
Enum
Party ID investment decision maker qualifier.
std::string tradeReportId
User defined transaction ID. Part of the TES response and TES broadcast.
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
SInt32 relatedMarketSegmentId
Identifies a related product.
UInt64 partyIdClientId
Client Identifier field (ESMA Field 3 (Section A)) used to identify the client of an order for agent ...
std::string partyIdLocationId
Country code. Valid characters: 0x01-0x7E.
std::string rootPartyExecutingFirm
Participant Short Name.
UInt64 partyIdInvestmentDecisionMaker
Investment decision within firm (ESMA Field 4 (Section A)) is the code used to identify the person or...
Enum
Side of the order.
TradePlatform::Enum tradePlatform
Indicates trade platform. Can only be used for EEX.
ProductComplex::Enum productComplex
This field qualifies an instrument type on Eurex.
UInt32 packageId
Identifier for a Trade Entry Service trade, i.e TES trade ID.
unsigned long long UInt64
Definition: Defines.h:47
Enum
Indicates if a trade should be reported via the market reporting service.
OrderAttributeRiskReduction::Enum orderAttributeRiskReduction
Order attribute risk reduction.
UInt64 transactTime
Timestamp of the match event (trade).
std::string partyIdBeneficiary
Mandatory final KRX beneficiary account required for orders in KRX products.
OrderAttributeLiquidityProvision::Enum orderAttributeLiquidityProvision
Order attribute liquidity provision.
TrdType::Enum trdType
Indicates if a trade should be reported via the market reporting service.
Enum
Field is used for Eurex position management purposes and indicates whether the order is submitted to ...
signed int SInt32
Definition: Defines.h:42
ApplId::Enum applId
Identifier for subscription and retransmission of an ETI data stream.
std::string underlyingSecurityDesc
Description of the Underlying security.
Enum
This field qualifies an instrument type on Eurex.
std::string freeText3
Third free-format text field for trader-specific or customer-related comments.
SwapClearer::Enum swapClearer
Swap clearer for EFS Trades only.
Enum
Swap clearer for EFS Trades only.
SInt64 securityId
The instrument identifier uniquely identifies an instrument in the core system.
SInt64 underlyingPx
Underlying price associate with a derivative instrument.
Enum
Indicates if a trade should be reported via the market reporting service.
TradeReportType::Enum tradeReportType
Identifies the type of trade notification.
Enum
Status of an allocation in a Trade Entry Service trade.
std::string partyIdTakeUpTradingFirm
Indicates the name of a member institution to which a give-up is designated.
Message base class.
Definition: Message.h:33
Enum
Order origination, MiFID field - to indicate order received from a direct access or sponsored access ...
SInt32 marketSegmentId
The product identifier uniquely identifies a Eurex product.
ExecutingTraderQualifier::Enum executingTraderQualifier
Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos...
std::string freeText2
Second free-format text field for trader-specific or customer-related comments.
std::string partyExecutingFirm
Owning business unit name.
OrderOrigination::Enum orderOrigination
Order origination, MiFID field - to indicate order received from a direct access or sponsored access ...
std::string partyIdPositionAccount
Flex Account information.
CustOrderHandlingInst::Enum custOrderHandlingInst
Identifies the source of an order, in accordance with the FIA guidelines for a rate Identifier...
TradeAllocStatus::Enum tradeAllocStatus
Status of an allocation in a Trade Entry Service trade.
SInt64 allocQty
Quantity of the particular trade side in the TES trade.
Enum
Identifies the source of an order, in accordance with the FIA guidelines for a rate Identifier...
Definition: Enumerations.h:271
ApplResendFlag::Enum applResendFlag
Indicates a retransmission message.
UInt32 underlyingMaturityDate
Underlying security&#39;s maturity date.
std::string freeText1
First free-format text field for trader-specific or customer-related comments.
std::vector< UnderlyingStipGrpElem > underlyingStipGrp
Underlying Stip Group.
SInt64 lastPx
Price of this leg fill.
unsigned int UInt32
Definition: Defines.h:46
SInt64 relatedClosePrice
User defined index price.
signed long long SInt64
Definition: Defines.h:43
LastFragment::Enum lastFragment
Indicates whether this message is the last fragment (part) of a sequence of messages belonging to one...
std::string underlyingSecurityId
Underlying security&#39;s ID.
UInt64 applSeqNum
Message sequence number assigned to a non-order related Eurex ETI data stream.
std::string partyEndClientIdentification
End client identifier.
std::string partyExecutingTrader
Owning user name.
UInt32 applSubId
Unique ID assigned by the Eurex system during broadcast subscription in order to link broadcasts to t...
MessageEventSource::Enum messageEventSource
Receiver of a message.
UInt64 transBkdTime
Trade Closure Time, the time when an Off-Book trade was concluded outside the Eurex System...
SInt64 relatedTradeQuantity
Quantity of the related trade.
Enum
Identifier for subscription and retransmission of an ETI data stream.
Definition: Enumerations.h:34
std::string partyIdOrderOriginationFirm
Partner identification at the Korea Exchange is required for orders in KRX products.
std::string underlyingIssuer
The issuer or name of the underlying security.
TradePublishIndicator::Enum tradePublishIndicator
Indicates if a trade should be reported via the market reporting service.
UInt32 tesExecId
System transaction identifier for a Trade Entry Service transaction.
Enum
Indicates trade platform. Can only be used for EEX.
std::ostream & operator<<(std::ostream &, const ConnectionStateChange &)
Make it printable to formatted C++ I/O streams.
UInt32 relatedTradeId
Identifier of a related trade.
UInt64 executingTrader
Executing Trader data Field (ESMA Field 5 (Section A)) used to identify the person or algorithm withi...
UInt32 tesEnrichmentRuleId
Enrichment Rule ID for TES trades (to be used only in case of Auto Approval).
TradingCapacity::Enum tradingCapacity
This field designates if the trader is acting in the capacity of agent, trading for its own account o...
HedgeType::Enum hedgeType
Hedging method.
std::string underlyingCurrency
Underlying security&#39;s currency.
std::string complianceText
This field is used to provide additional regulatory information (according to respective rules and re...
std::vector< InstrumentAttributeGrpElem > instrumentAttributeGrp
Instrument Attribute Group.
Enum
This field designates if the trader is acting in the capacity of agent, trading for its own account o...
std::string rootPartyExecutingTrader
Owning User Short Name.
Enum
Identifies the type of trade notification.
unsigned short UInt16
Definition: Defines.h:45
SInt64 relatedPx
Price of the related instrument.
UInt32 underlyingSettlementDate
Date the underlying instrument will settle.
UInt16 partitionId
Is required to define the scope of a Retransmission Request.
std::string account
Account to book trades and keep positions on.
std::vector< TrdInstrmntLegGrpElem > trdInstrmntLegGrp
Trd Instrmnt Leg Group.
PartyIdSettlementLocation::Enum partyIdSettlementLocation
Settlement institution.
TrdRptStatus::Enum trdRptStatus
SRQS deal status.
UInt32 individualAllocId
Unique identifier for a TES trade side.
Enum
Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos...
Definition: Enumerations.h:473
std::vector< InstrumentEventGrpElem > instrumentEventGrp
Instrument Event Group.
PartyIdInvestmentDecisionMakerQualifier::Enum partyIdInvestmentDecisionMakerQualifier
Party ID investment decision maker qualifier.
PositionEffect::Enum positionEffect
Field is used for Eurex position management purposes and indicates whether the order is submitted to ...
std::vector< SideAllocExtGrpElem > sideAllocExtGrp
Side Alloc Ext Group.