OnixS Eurex ETI Handler C++ library  9.25.0
API documentation
EnterCLIPRequest.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"
28 
29 #include <iosfwd>
30 #include <string>
31 #include <vector>
32 
33 namespace OnixS { namespace Eurex { namespace Trading {
34 
35 /// Cross Request Side Group Element.
36 class ONIXS_EUREX_ETI_EXPORT CrossRequestSideGrpElem
37 {
38 public:
39  /// Initialize default instance.
41 
42  /// Unique participant defined order request identifier.
44 
45  /// Client Identifier field (ESMA Field 3 (Section A)) used to identify the client of an order for agent account of
46  /// the member or participant of the trading venue.
48 
49  /// Investment decision within firm (ESMA Field 4 (Section A)) is the code used to identify the person or the
50  /// 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
54  /// member or participant of the trading venue who is responsible for the execution of the transaction resulting
55  /// from the order.
57 
58  /// Maximum Price.
60 
61  /// Self Match Prevention ID.
63 
64  /// Role on/for a message.
66 
67  /// Side of the order.
69 
70  /// Indicate the instruction for SMP. If MatchInstCrossID (28744) is set then the default value for
71  /// SelfMatchPreventionInstruction is 100 (Reject cross on business unit level).
73 
74  /// Indicate the instruction for SMP. Applicable only when MatchInstCrossID (28744) is set. When
75  /// CrossMatchInstruction is not set the default value is defined by the exchange.
77 
78  /// This field designates if the trader is acting in the capacity of agent, trading for its own account or acting as
79  /// a market maker.
81 
82  /// Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos.
84 
85  /// Order attribute liquidity provision.
87 
88  /// Party ID investment decision maker qualifier.
90 
91  /// Order attribute risk reduction.
93 
94  /// Order origination, MiFID field - to indicate order received from a direct access or sponsored access customer.
96 
97  /// Field is used for Eurex position management purposes and indicates whether the order is submitted to open or
98  /// close a position.
100 
101  /// Identifies the source of an order, in accordance with the FIA guidelines for a rate Identifier. The field is for
102  /// participant use only. Valid characters: 0x20, 0x22-0x7B, 0x7D, 0x7E.
104 
105  /// Account to book trades and keep positions on.
106  std::string account;
107 
108  /// Flex Account information.
110 
111  /// First free-format text field for trader-specific or customer-related comments.
112  std::string freeText1;
113 
114  /// Second free-format text field for trader-specific or customer-related comments.
115  std::string freeText2;
116 
117  /// Third free-format text field for trader-specific or customer-related comments.
118  std::string freeText3;
119 
120  /// Partner identification at the Korea Exchange is required for orders in KRX products.
122 
123  /// Mandatory final KRX beneficiary account required for orders in KRX products.
124  std::string partyIdBeneficiary;
125 
126  /// Indicates the name of a member institution to which a give-up is designated.
128 
129  /// Side compliance text.
130  std::string sideComplianceText;
131 
132  /// Country code. Valid characters: 0x01-0x7E.
133  std::string partyIdLocationId;
134 
135  /// End client identifier.
137 
138  /// Returns string representation.
139  std::string toString() const;
140 
141 private:
142  friend class Serializer;
143  CrossRequestSideGrpElem(const void* data);
144 };
145 
146 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const CrossRequestSideGrpElem&);
147 
148 /// Side Cross Leg Group Element.
149 class ONIXS_EUREX_ETI_EXPORT SideCrossLegGrpElem
150 {
151 public:
152  /// Initialize default instance.
154 
155  /// Role on/for a message.
157 
158  /// Leg-specific field used for Eurex position management purposes and indicates whether the leg is submitted to
159  /// open or close a position.
161 
162  /// Leg-specific account to book trades and keep positions on.
163  std::string legAccount;
164 
165  /// Returns string representation.
166  std::string toString() const;
167 
168 private:
169  friend class Serializer;
170  SideCrossLegGrpElem(const void* data);
171 };
172 
173 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const SideCrossLegGrpElem&);
174 
175 /// Enter CLIP Request Message.
176 class ONIXS_EUREX_ETI_EXPORT EnterCLIPRequest : public Message
177 {
178 public:
179  /// Initialize default instance.
181 
182  /// User ID.
184 
185  /// The instrument identifier uniquely identifies an instrument in the core system.
187 
188  /// Price.
190 
191  /// Total Order Quantity.
193 
194  /// The product identifier uniquely identifies a Eurex product.
196 
197  /// User defined CLIP arrangement ID.
199 
200  /// User defined transaction ID.
202 
203  /// Type of the Cross Request.
205 
206  /// Type of cross being submitted to a market.
208 
209  /// Prioritization of a cross order.
211 
212  /// Instruction to show side.
214 
215  /// Price disclosure instruction.
217 
218  /// Instruction to show total quantity.
220 
221  /// Indicator how price validity check should be performed by the exchange.
223 
224  /// Indicator for checking the maximum order/quote value by the exchange.
226 
227  /// The identifier of the member counterparty institution.
228  std::string rootPartyContraFirm;
229 
230  /// The identifier of the trader counterparty.
232 
233  /// Cross Request Side Group.
234  std::vector<CrossRequestSideGrpElem> crossRequestSideGrp;
235 
236  /// Side Cross Leg Group.
237  std::vector<SideCrossLegGrpElem> sideCrossLegGrp;
238 
239  /// Returns template ID.
240  TemplateId::Enum templateId() const;
241 
242  /// Returns string representation.
243  std::string toString() const;
244 
245 private:
246  friend class Serializer;
247  EnterCLIPRequest(const void* data, size_t dataSize, MessageInfo& msgInfo);
248  void nativeSerializeTo(void* nativeMessage);
249 };
250 
251 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const EnterCLIPRequest&);
252 
253 }}} // namespace OnixS::Eurex::Trading
Enum
Party ID investment decision maker qualifier.
std::string rootPartyContraTrader
The identifier of the trader counterparty.
std::string partyIdPositionAccount
Flex Account information.
std::string partyIdLocationId
Country code. Valid characters: 0x01-0x7E.
std::string rootPartyContraFirm
The identifier of the member counterparty institution.
OrderAttributeLiquidityProvision::Enum orderAttributeLiquidityProvision
Order attribute liquidity provision.
Enum
Side of the order.
unsigned long long UInt64
Definition: Defines.h:46
Enum
Indicator how price validity check should be performed by the exchange.
Enum
Type of the Cross Request.
Definition: Enumerations.h:283
OrderAttributeRiskReduction::Enum orderAttributeRiskReduction
Order attribute risk reduction.
Enum
Instruction to show total quantity.
std::string account
Account to book trades and keep positions on.
SelfMatchPreventionInstruction::Enum selfMatchPreventionInstruction
Enum
Role on/for a message.
Definition: Enumerations.h:738
CrossMatchInstruction::Enum crossMatchInstruction
std::string freeText2
Second free-format text field for trader-specific or customer-related comments.
signed int SInt32
Definition: Defines.h:41
std::string partyIdTakeUpTradingFirm
Indicates the name of a member institution to which a give-up is designated.
PriceValidityCheckType::Enum priceValidityCheckType
Indicator how price validity check should be performed by the exchange.
CrossPrioritization::Enum crossPrioritization
Prioritization of a cross order.
Message base class.
Definition: Message.h:32
Enum
Order origination, MiFID field - to indicate order received from a direct access or sponsored access ...
SInt32 crossId
User defined CLIP arrangement ID.
OrderOrigination::Enum orderOrigination
Order origination, MiFID field - to indicate order received from a direct access or sponsored access ...
SideDisclosureInstruction::Enum sideDisclosureInstruction
Instruction to show side.
ValueCheckTypeValue::Enum valueCheckTypeValue
Indicator for checking the maximum order/quote value by the exchange.
Cross Request Side Group Element.
std::string sideComplianceText
Side compliance text.
std::string freeText3
Third free-format text field for trader-specific or customer-related comments.
std::string partyIdBeneficiary
Mandatory final KRX beneficiary account required for orders in KRX products.
unsigned int UInt32
Definition: Defines.h:45
signed long long SInt64
Definition: Defines.h:42
LegInputSource::Enum legInputSource
Role on/for a message.
std::string freeText1
First free-format text field for trader-specific or customer-related comments.
Enum
Indicator for checking the maximum order/quote value by the exchange.
UInt32 matchInstCrossId
Self Match Prevention ID.
UInt64 clOrdId
Unique participant defined order request identifier.
std::string partyEndClientIdentification
End client identifier.
SInt64 securityId
The instrument identifier uniquely identifies an instrument in the core system.
CrossType::Enum crossType
Type of cross being submitted to a market.
Enum
Prioritization of a cross order.
Definition: Enumerations.h:265
ExecutingTraderQualifier::Enum executingTraderQualifier
Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos...
SInt32 crossRequestId
User defined transaction ID.
std::ostream & operator<<(std::ostream &, const ConnectionStateChange &)
Make it printable to formatted C++ I/O streams.
SInt32 marketSegmentId
The product identifier uniquely identifies a Eurex product.
PriceDisclosureInstruction::Enum priceDisclosureInstruction
Price disclosure instruction.
Enum
Type of cross being submitted to a market.
Definition: Enumerations.h:301
std::vector< CrossRequestSideGrpElem > crossRequestSideGrp
Cross Request Side Group.
std::vector< SideCrossLegGrpElem > sideCrossLegGrp
Side Cross Leg Group.
std::string legAccount
Leg-specific account to book trades and keep positions on.
std::string partyIdOrderOriginationFirm
Partner identification at the Korea Exchange is required for orders in KRX products.
OrderQtyDisclosureInstruction::Enum orderQtyDisclosureInstruction
Instruction to show total quantity.
SInt64 orderQty
Total Order Quantity.
PartyIdInvestmentDecisionMakerQualifier::Enum partyIdInvestmentDecisionMakerQualifier
Party ID investment decision maker qualifier.
CustOrderHandlingInst::Enum custOrderHandlingInst
CrossRequestType::Enum crossRequestType
Type of the Cross Request.
Enum
Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos...
Definition: Enumerations.h:571
InputSource::Enum inputSource
Role on/for a message.