OnixS Eurex ETI Handler C++ library  9.21.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
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"
29 
30 #include <iosfwd>
31 #include <string>
32 #include <vector>
33 
34 namespace OnixS { namespace Eurex { namespace Trading {
35 
36 /// Side Alloc Ext Group Element.
37 class ONIXS_EUREX_ETI_EXPORT SideAllocExtGrpElem
38 {
39 public:
40  /// Initialize default instance.
42 
43  /// Quantity of the particular trade side in the TES trade.
45 
46  /// Client Identifier field (ESMA Field 3 (Section A)) used to identify the client of an order for agent account of
47  /// 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
51  /// algorithm within the member or participant of the Trading Venue who is responsible for the investment decision.
53 
54  /// Executing Trader data Field (ESMA Field 5 (Section A)) used to identify the person or algorithm within the
55  /// member or participant of the trading venue who is responsible for the execution of the transaction resulting
56  /// from the order.
58 
59  /// Unique identifier for a TES trade side.
61 
62  /// Owning business unit name.
63  std::string partyExecutingFirm;
64 
65  /// Owning user name.
66  std::string partyExecutingTrader;
67 
68  /// Enrichment Rule ID for TES trades (to be used only in case of Auto Approval).
70 
71  /// Side of the order.
73 
74  /// Status of an allocation in a Trade Entry Service trade.
76 
77  /// This field designates if the trader is acting in the capacity of agent, trading for its own account or acting as
78  /// a market maker.
80 
81  /// Field is used for Eurex position management purposes and indicates whether the order is submitted to open or
82  /// close a position.
84 
85  /// Order attribute liquidity provision.
87 
88  /// Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos.
90 
91  /// Party ID investment decision maker qualifier.
93 
94  /// Order attribute risk reduction.
96 
97  /// Order origination, MiFID field - to indicate order received from a direct access or sponsored access customer.
99 
100  /// Account to book trades and keep positions on.
101  std::string account;
102 
103  /// Flex Account information.
105 
106  /// Indicates the name of a member institution to which a give-up is designated.
108 
109  /// First free-format text field for trader-specific or customer-related comments.
110  std::string freeText1;
111 
112  /// Second free-format text field for trader-specific or customer-related comments.
113  std::string freeText2;
114 
115  /// Third free-format text field for trader-specific or customer-related comments.
116  std::string freeText3;
117 
118  /// Partner identification at the Korea Exchange is required for orders in KRX products.
120 
121  /// Mandatory final KRX beneficiary account required for orders in KRX products.
122  std::string partyIdBeneficiary;
123 
124  /// Country code. Valid characters: 0x01-0x7E.
125  std::string partyIdLocationId;
126 
127  /// Identifies the source of an order, in accordance with the FIA guidelines for a rate Identifier. The field is for
128  /// participant use only. Valid characters: 0x20, 0x22-0x7B, 0x7D, 0x7E.
130 
131  /// This field is used to provide additional regulatory information (according to respective rules and regs,
132  /// circulars and bilateral coordination between participant and Trading Surveillance Office).
133  std::string complianceText;
134 
135  /// End client identifier.
137 
138  /// Returns string representation.
139  std::string toString() const;
140 
141 private:
142  friend class Serializer;
143  SideAllocExtGrpElem(const void* data);
144 };
145 
146 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const SideAllocExtGrpElem&);
147 
148 /// TES Upload Broadcast Message.
149 class ONIXS_EUREX_ETI_EXPORT TESUploadBroadcast : public Message
150 {
151 public:
152  /// Initialize default instance.
154 
155  /// Message sequence number assigned to a non-order related Eurex ETI data stream.
157 
158  /// Unique ID assigned by the Eurex system during broadcast subscription in order to link broadcasts to the related
159  /// subscription.
161 
162  /// Is required to define the scope of a Retransmission Request.
164 
165  /// Indicates a retransmission message.
167 
168  /// Identifier for subscription and retransmission of an ETI data stream.
170 
171  /// Indicates whether this message is the last fragment (part) of a sequence of messages belonging to one dedicated
172  /// transaction.
174 
175  /// The instrument identifier uniquely identifies an instrument in the core system.
177 
178  /// Price of this leg fill.
180 
181  /// Trade Closure Time, the time when an Off-Book trade was concluded outside the Eurex System.
183 
184  /// Timestamp of the match event (trade).
186 
187  /// Underlying price associate with a derivative instrument.
189 
190  /// User defined index price.
192 
193  /// Quantity of the related trade.
195 
196  /// Price of the related instrument.
198 
199  /// Nominal value.
201 
202  /// The product identifier uniquely identifies a Eurex product.
204 
205  /// Identifier for a Trade Entry Service trade, i.e TES trade ID.
207 
208  /// System transaction identifier for a Trade Entry Service transaction.
210 
211  /// Date the underlying instrument will settle.
213 
214  /// Underlying security's maturity date.
216 
217  /// Identifier of a related trade.
219 
220  /// Identifies a related product.
222 
223  /// Indicates if a trade should be reported via the market reporting service.
225 
226  /// This field qualifies an instrument type on Eurex.
228 
229  /// Identifies the type of trade notification.
231 
232  /// SRQS deal status.
234 
235  /// Indicates if a trade should be reported via the market reporting service.
237 
238  /// Indicates trade platform. Can only be used for EEX.
240 
241  /// Hedging method.
243 
244  /// Settlement institution.
246 
247  /// Swap clearer for EFS Trades only.
249 
250  /// Receiver of a message.
252 
253  /// User defined transaction ID. Part of the TES response and TES broadcast.
254  std::string tradeReportId;
255 
256  /// Participant Short Name.
258 
259  /// Owning User Short Name.
261 
262  /// Underlying security's ID.
263  std::string underlyingSecurityId;
264 
265  /// Description of the Underlying security.
267 
268  /// Underlying security's currency.
269  std::string underlyingCurrency;
270 
271  /// The issuer or name of the underlying security.
272  std::string underlyingIssuer;
273 
274  /// Side Alloc Ext Group.
275  std::vector<SideAllocExtGrpElem> sideAllocExtGrp;
276 
277  /// Trd Instrmnt Leg Group.
278  std::vector<TrdInstrmntLegGrpElem> trdInstrmntLegGrp;
279 
280  /// Instrument Event Group.
281  std::vector<InstrumentEventGrpElem> instrumentEventGrp;
282 
283  /// Instrument Attribute Group.
284  std::vector<InstrumentAttributeGrpElem> instrumentAttributeGrp;
285 
286  /// Underlying Stip Group.
287  std::vector<UnderlyingStipGrpElem> underlyingStipGrp;
288 
289  /// Returns template ID.
290  TemplateId::Enum templateId() const;
291 
292  /// Returns string representation.
293  std::string toString() const;
294 
295 private:
296  friend class Serializer;
297  TESUploadBroadcast(const void* data, size_t dataSize, MessageInfo& msgInfo);
298  void nativeSerializeTo(void* nativeMessage);
299 };
300 
301 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const TESUploadBroadcast&);
302 
303 }}} // namespace OnixS::Eurex::Trading
Enum
Party ID investment decision maker qualifier.
std::string tradeReportId
User defined transaction ID. Part of the TES response and TES broadcast.
Enum
Indicates a retransmission message.
Definition: Enumerations.h:76
SInt32 relatedMarketSegmentId
Identifies a related product.
std::string partyIdLocationId
Country code. Valid characters: 0x01-0x7E.
std::string rootPartyExecutingFirm
Participant Short Name.
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:46
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.
signed int SInt32
Definition: Defines.h:41
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:32
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
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.
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:45
SInt64 relatedClosePrice
User defined index price.
signed long long SInt64
Definition: Defines.h:42
std::ostream & operator<<(std::ostream &, ConnectionState::Enum)
Make it printable using C++ I/O streams.
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.
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:33
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.
UInt32 relatedTradeId
Identifier of a related trade.
UInt32 tesEnrichmentRuleId
Enrichment Rule ID for TES trades (to be used only in case of Auto Approval).
HedgeType::Enum hedgeType
Hedging method.
std::string underlyingCurrency
Underlying security&#39;s currency.
std::vector< InstrumentAttributeGrpElem > instrumentAttributeGrp
Instrument Attribute Group.
std::string rootPartyExecutingTrader
Owning User Short Name.
Enum
Identifies the type of trade notification.
unsigned short UInt16
Definition: Defines.h:44
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:551
std::vector< InstrumentEventGrpElem > instrumentEventGrp
Instrument Event Group.
PartyIdInvestmentDecisionMakerQualifier::Enum partyIdInvestmentDecisionMakerQualifier
Party ID investment decision maker qualifier.
std::vector< SideAllocExtGrpElem > sideAllocExtGrp
Side Alloc Ext Group.