OnixS Eurex ETI Handler C++ library  9.10.1
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  /// Role on/for a message.
57 
58  /// Side of the order.
60 
61  /// This field designates if the trader is acting in the capacity of agent, trading for its own account or acting as a market maker.
63 
64  /// Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos.
66 
67  /// Order attribute liquidity provision.
69 
70  /// Party ID investment decision maker qualifier.
72 
73  /// Field is used for Eurex position management purposes and indicates whether the order is submitted to open or close a position.
75 
76  /// 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.
78 
79  /// Account to book trades and keep positions on.
80  std::string account;
81 
82  /// Flex Account information.
84 
85  /// First free-format text field for trader-specific or customer-related comments.
86  std::string freeText1;
87 
88  /// Second free-format text field for trader-specific or customer-related comments.
89  std::string freeText2;
90 
91  /// Third free-format text field for trader-specific or customer-related comments.
92  std::string freeText3;
93 
94  /// Partner identification at the Korea Exchange is required for orders in KRX products.
96 
97  /// Mandatory final KRX beneficiary account required for orders in KRX products.
98  std::string partyIdBeneficiary;
99 
100  /// Indicates the name of a member institution to which a give-up is designated.
102 
103  /// Side compliance text.
104  std::string sideComplianceText;
105 
106  /// Country code. Valid characters: 0x01-0x7E.
107  std::string partyIdLocationId;
108 
109  /// Returns string representation.
110  std::string toString () const;
111 
112 private:
113  friend class Serializer;
114  CrossRequestSideGrpElem (const void* data);
115 };
116 
117 ONIXS_EUREX_ETI_EXPORT std::ostream& operator << (std::ostream&, const CrossRequestSideGrpElem&);
118 
119 /// Side Cross Leg Group Element.
120 class ONIXS_EUREX_ETI_EXPORT SideCrossLegGrpElem
121 {
122 public:
123  /// Initialize default instance.
125 
126  /// Role on/for a message.
128 
129  /// Leg-specific field used for Eurex position management purposes and indicates whether the leg is submitted to open or close a position.
131 
132  /// Leg-specific account to book trades and keep positions on.
133  std::string legAccount;
134 
135  /// Returns string representation.
136  std::string toString () const;
137 
138 private:
139  friend class Serializer;
140  SideCrossLegGrpElem (const void* data);
141 };
142 
143 ONIXS_EUREX_ETI_EXPORT std::ostream& operator << (std::ostream&, const SideCrossLegGrpElem&);
144 
145 /// Enter CLIP Request Message.
146 class ONIXS_EUREX_ETI_EXPORT EnterCLIPRequest : public Message
147 {
148 public:
149  /// Initialize default instance.
150  EnterCLIPRequest ();
151 
152  /// User ID.
154 
155  /// The instrument identifier uniquely identifies an instrument in the core system.
157 
158  /// Price.
160 
161  /// Total Order Quantity.
163 
164  /// The product identifier uniquely identifies a Eurex product.
166 
167  /// User defined CLIP arrangement ID.
169 
170  /// User defined transaction ID.
172 
173  /// Instruction to show side.
175 
176  /// Price disclosure instruction.
178 
179  /// Instruction to show total quantity.
181 
182  /// The identifier of the member counterparty institution.
183  std::string rootPartyContraFirm;
184 
185  /// The identifier of the trader counterparty.
187 
188  /// Cross Request Side Group.
189  std::vector<CrossRequestSideGrpElem> crossRequestSideGrp;
190 
191  /// Side Cross Leg Group.
192  std::vector<SideCrossLegGrpElem> sideCrossLegGrp;
193 
194  /// Returns template ID.
195  TemplateId::Enum templateId () const;
196 
197  /// Returns string representation.
198  std::string toString () const;
199 
200 private:
201  friend class Serializer;
202  EnterCLIPRequest (const void* data, size_t dataSize, MessageInfo& msgInfo);
203  void nativeSerializeTo (void* nativeMessage);
204 };
205 
206 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const EnterCLIPRequest&);
207 
208 }
209 }
210 }
Enum
Party ID investment decision maker qualifier.
std::string rootPartyContraTrader
The identifier of the trader counterparty.
std::ostream & operator<<(std::ostream &, const ConnectionRetries &)
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...
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
Instruction to show total quantity.
std::string account
Account to book trades and keep positions on.
Enum
Role on/for a message.
Definition: Enumerations.h:549
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.
Message base class.
Definition: Message.h:33
SInt32 crossId
User defined CLIP arrangement ID.
SideDisclosureInstruction::Enum sideDisclosureInstruction
Instruction to show side.
Enum
Identifies the source of an order, in accordance with the FIA guidelines for a rate Identifier...
Definition: Enumerations.h:229
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.
SInt64 securityId
The instrument identifier uniquely identifies an instrument in the core system.
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.
SInt32 marketSegmentId
The product identifier uniquely identifies a Eurex product.
PriceDisclosureInstruction::Enum priceDisclosureInstruction
Price disclosure instruction.
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:674
CustOrderHandlingInst::Enum custOrderHandlingInst
Identifies the source of an order, in accordance with the FIA guidelines for a rate Identifier...
Enum
Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos...
Definition: Enumerations.h:425
InputSource::Enum inputSource
Role on/for a message.