OnixS Eurex ETI Handler C++ library  9.19.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 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 #include <vector>
31 
32 namespace OnixS {
33 namespace Eurex {
34 namespace Trading {
35 
36 /// Cross Request Side Group Element.
37 class ONIXS_EUREX_ETI_EXPORT CrossRequestSideGrpElem
38 {
39 public:
40  /// Initialize default instance.
42 
43  /// 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.
45 
46  /// 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.
48 
49  /// 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.
51 
52  /// Maximum Price.
54 
55  /// Self Match Prevention ID.
57 
58  /// Role on/for a message.
60 
61  /// Side of the order.
63 
64  /// Indicate the instruction for SMP. If MatchInstCrossID (28744) is set then the default value for SelfMatchPreventionInstruction is 100 (Reject cross on business unit level).
66 
67  /// This field designates if the trader is acting in the capacity of agent, trading for its own account or acting as a market maker.
69 
70  /// Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos.
72 
73  /// Order attribute liquidity provision.
75 
76  /// Party ID investment decision maker qualifier.
78 
79  /// Order attribute risk reduction.
81 
82  /// Order origination, MiFID field - to indicate order received from a direct access or sponsored access customer.
84 
85  /// Field is used for Eurex position management purposes and indicates whether the order is submitted to open or close a position.
87 
88  /// 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.
90 
91  /// Account to book trades and keep positions on.
92  std::string account;
93 
94  /// Flex Account information.
96 
97  /// First free-format text field for trader-specific or customer-related comments.
98  std::string freeText1;
99 
100  /// Second free-format text field for trader-specific or customer-related comments.
101  std::string freeText2;
102 
103  /// Third free-format text field for trader-specific or customer-related comments.
104  std::string freeText3;
105 
106  /// Partner identification at the Korea Exchange is required for orders in KRX products.
108 
109  /// Mandatory final KRX beneficiary account required for orders in KRX products.
110  std::string partyIdBeneficiary;
111 
112  /// Indicates the name of a member institution to which a give-up is designated.
114 
115  /// Side compliance text.
116  std::string sideComplianceText;
117 
118  /// Country code. Valid characters: 0x01-0x7E.
119  std::string partyIdLocationId;
120 
121  /// End client identifier.
123 
124  /// Returns string representation.
125  std::string toString () const;
126 
127 private:
128  friend class Serializer;
129  CrossRequestSideGrpElem (const void* data);
130 };
131 
132 ONIXS_EUREX_ETI_EXPORT std::ostream& operator << (std::ostream&, const CrossRequestSideGrpElem&);
133 
134 /// Side Cross Leg Group Element.
135 class ONIXS_EUREX_ETI_EXPORT SideCrossLegGrpElem
136 {
137 public:
138  /// Initialize default instance.
140 
141  /// Role on/for a message.
143 
144  /// Leg-specific field used for Eurex position management purposes and indicates whether the leg is submitted to open or close a position.
146 
147  /// Leg-specific account to book trades and keep positions on.
148  std::string legAccount;
149 
150  /// Returns string representation.
151  std::string toString () const;
152 
153 private:
154  friend class Serializer;
155  SideCrossLegGrpElem (const void* data);
156 };
157 
158 ONIXS_EUREX_ETI_EXPORT std::ostream& operator << (std::ostream&, const SideCrossLegGrpElem&);
159 
160 /// Enter CLIP Request Message.
161 class ONIXS_EUREX_ETI_EXPORT EnterCLIPRequest : public Message
162 {
163 public:
164  /// Initialize default instance.
165  EnterCLIPRequest ();
166 
167  /// User ID.
169 
170  /// The instrument identifier uniquely identifies an instrument in the core system.
172 
173  /// Price.
175 
176  /// Total Order Quantity.
178 
179  /// The product identifier uniquely identifies a Eurex product.
181 
182  /// User defined CLIP arrangement ID.
184 
185  /// User defined transaction ID.
187 
188  /// Type of the Cross Request.
190 
191  /// Type of cross being submitted to a market.
193 
194  /// Prioritization of a cross order.
196 
197  /// Instruction to show side.
199 
200  /// Price disclosure instruction.
202 
203  /// Instruction to show total quantity.
205 
206  /// Indicator how price validity check should be performed by the exchange.
208 
209  /// Indicator for checking the maximum order/quote value by the exchange.
211 
212  /// The identifier of the member counterparty institution.
213  std::string rootPartyContraFirm;
214 
215  /// The identifier of the trader counterparty.
217 
218  /// Cross Request Side Group.
219  std::vector<CrossRequestSideGrpElem> crossRequestSideGrp;
220 
221  /// Side Cross Leg Group.
222  std::vector<SideCrossLegGrpElem> sideCrossLegGrp;
223 
224  /// Returns template ID.
225  TemplateId::Enum templateId () const;
226 
227  /// Returns string representation.
228  std::string toString () const;
229 
230 private:
231  friend class Serializer;
232  EnterCLIPRequest (const void* data, size_t dataSize, MessageInfo& msgInfo);
233  void nativeSerializeTo (void* nativeMessage);
234 };
235 
236 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const EnterCLIPRequest&);
237 
238 }
239 }
240 }
Enum
Party ID investment decision maker qualifier.
std::string rootPartyContraTrader
The identifier of the trader counterparty.
LegPositionEffect::Enum legPositionEffect
Leg-specific field used for Eurex position management purposes and indicates whether the leg is submi...
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.
TradingCapacity::Enum tradingCapacity
This field designates if the trader is acting in the capacity of agent, trading for its own account o...
Enum
Indicate the instruction for SMP. If MatchInstCrossID (28744) is set then the default value for SelfM...
OrderAttributeLiquidityProvision::Enum orderAttributeLiquidityProvision
Order attribute liquidity provision.
Enum
Side of the order.
UInt64 partyIdInvestmentDecisionMaker
Investment decision within firm (ESMA Field 4 (Section A)) is the code used to identify the person or...
unsigned long long UInt64
Definition: Defines.h:47
Enum
Indicator how price validity check should be performed by the exchange.
Enum
Type of the Cross Request.
Definition: Enumerations.h:226
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
Indicate the instruction for SMP. If MatchInstCrossID (28744) is set then the default value for SelfM...
Enum
Role on/for a message.
Definition: Enumerations.h:612
Enum
Field is used for Eurex position management purposes and indicates whether the order is submitted to ...
std::string freeText2
Second free-format text field for trader-specific or customer-related comments.
signed int SInt32
Definition: Defines.h:42
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:33
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.
Enum
Identifies the source of an order, in accordance with the FIA guidelines for a rate Identifier...
Definition: Enumerations.h:271
Cross Request Side Group Element.
PositionEffect::Enum positionEffect
Field is used for Eurex position management purposes and indicates whether the order is submitted to ...
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:46
signed long long SInt64
Definition: Defines.h:43
UInt64 partyIdClientId
Client Identifier field (ESMA Field 3 (Section A)) used to identify the client of an order for agent ...
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.
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:211
UInt64 executingTrader
Executing Trader data Field (ESMA Field 5 (Section A)) used to identify the person or algorithm withi...
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:241
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.
Enum
This field designates if the trader is acting in the capacity of agent, trading for its own account o...
OrderQtyDisclosureInstruction::Enum orderQtyDisclosureInstruction
Instruction to show total quantity.
SInt64 orderQty
Total Order Quantity.
PartyIdInvestmentDecisionMakerQualifier::Enum partyIdInvestmentDecisionMakerQualifier
Party ID investment decision maker qualifier.
Enum
Leg-specific field used for Eurex position management purposes and indicates whether the leg is submi...
Definition: Enumerations.h:754
CustOrderHandlingInst::Enum custOrderHandlingInst
Identifies the source of an order, in accordance with the FIA guidelines for a rate Identifier...
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:473
InputSource::Enum inputSource
Role on/for a message.