OnixS Eurex ETI Handler C++ library  9.25.0
API documentation
ModifyOrderComplexRequest.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 /// Leg Ord Group Element.
36 class ONIXS_EUREX_ETI_EXPORT LegOrdGrpElem
37 {
38 public:
39  /// Initialize default instance.
40  LegOrdGrpElem();
41 
42  /// Leg-specific account to book trades and keep positions on.
43  std::string legAccount;
44 
45  /// Leg-specific field used for Eurex position management purposes and indicates whether the leg is submitted to
46  /// open or close a position.
48 
49  /// Returns string representation.
50  std::string toString() const;
51 
52 private:
53  friend class Serializer;
54  LegOrdGrpElem(const void* data);
55 };
56 
57 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const LegOrdGrpElem&);
58 
59 /// Modify Order Complex Request Message.
60 class ONIXS_EUREX_ETI_EXPORT ModifyOrderComplexRequest : public Message
61 {
62 public:
63  /// Initialize default instance.
65 
66  /// User ID.
68 
69  /// Exchange Order ID generated by Eurex System; it remains constant over the lifetime of an order.
71 
72  /// Unique participant defined order request identifier.
74 
75  /// ClOrdID (11) of the last successfully processed task (request) referring to the specific order; used for client
76  /// order ID chaining.
78 
79  /// The instrument identifier uniquely identifies an instrument in the core system.
81 
82  /// Price.
84 
85  /// Total Order Quantity.
87 
88  /// Client Identifier field (ESMA Field 3 (Section A)) used to identify the client of an order for agent account of
89  /// the member or participant of the trading venue.
91 
92  /// Investment decision within firm (ESMA Field 4 (Section A)) is the code used to identify the person or the
93  /// algorithm within the member or participant of the Trading Venue who is responsible for the investment decision.
95 
96  /// Executing Trader data Field (ESMA Field 5 (Section A)) used to identify the person or algorithm within the
97  /// member or participant of the trading venue who is responsible for the execution of the transaction resulting
98  /// from the order.
100 
101  /// The product identifier uniquely identifies a Eurex product.
103 
104  /// Date of order expiry.
106 
107  /// Self Match Prevention ID.
109 
110  /// Owning Session ID.
112 
113  /// Indicates the name of a member institution to which a give-up is designated.
115 
116  /// Partner identification at the Korea Exchange is required for orders in KRX products.
118 
119  /// Mandatory final KRX beneficiary account required for orders in KRX products.
120  std::string partyIdBeneficiary;
121 
122  /// Indicates if the order is a Lean Order or a Standard (non lean) Order.
124 
125  /// Indicate the instruction for SMP. If MatchInstCrossID (28744) is set then the default value for
126  /// SelfMatchPreventionInstruction is 100 (Reject cross on business unit level).
128 
129  /// Indicate the instruction for SMP. Applicable only when MatchInstCrossID (28744) is set. When
130  /// CrossMatchInstruction is not set the default value is defined by the exchange.
132 
133  /// This field qualifies an instrument type on Eurex.
135 
136  /// Side of the order.
138 
139  /// Order type.
141 
142  /// Indicator how price validity check should be performed by the exchange.
144 
145  /// Indicator for checking the maximum order/quote value by the exchange.
147 
148  /// Order attribute liquidity provision.
150 
151  /// Instructions for order handling, represented as a bit map.
153 
154  /// Execution and trading restriction parameters supported by Eurex.
156 
157  /// This field designates if the trader is acting in the capacity of agent, trading for its own account or acting as
158  /// a market maker.
160 
161  /// Ownership indicator.
163 
164  /// Order origination, MiFID field - to indicate order received from a direct access or sponsored access customer.
166 
167  /// Party ID investment decision maker qualifier.
169 
170  /// Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos.
172 
173  /// Country code. Valid characters: 0x01-0x7E.
174  std::string partyIdLocationId;
175 
176  /// Identifies the source of an order, in accordance with the FIA guidelines for a rate Identifier. The field is for
177  /// participant use only. Valid characters: 0x20, 0x22-0x7B, 0x7D, 0x7E.
179 
180  /// This field is used to provide additional regulatory information (according to respective rules and regs,
181  /// circulars and bilateral coordination between participant and Trading Surveillance Office).
182  std::string complianceText;
183 
184  /// Flex Account information.
186 
187  /// First free-format text field for trader-specific or customer-related comments.
188  std::string freeText1;
189 
190  /// Second free-format text field for trader-specific or customer-related comments.
191  std::string freeText2;
192 
193  /// Third free-format text field for trader-specific or customer-related comments.
194  std::string freeText3;
195 
196  /// User defined client order ID.
197  std::string fixClOrdId;
198 
199  /// End client identifier.
201 
202  /// Leg Ord Group.
203  std::vector<LegOrdGrpElem> legOrdGrp;
204 
205  /// Returns template ID.
206  TemplateId::Enum templateId() const;
207 
208  /// Returns string representation.
209  std::string toString() const;
210 
211 private:
212  friend class Serializer;
213  ModifyOrderComplexRequest(const void* data, size_t dataSize, MessageInfo& msgInfo);
214  void nativeSerializeTo(void* nativeMessage);
215 };
216 
217 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const ModifyOrderComplexRequest&);
218 
219 }}} // namespace OnixS::Eurex::Trading
Enum
Party ID investment decision maker qualifier.
Enum
Indicates if the order is a Lean Order or a Standard (non lean) Order.
Definition: Enumerations.h:94
std::vector< LegOrdGrpElem > legOrdGrp
Leg Ord Group.
UInt64 orderId
Exchange Order ID generated by Eurex System; it remains constant over the lifetime of an order...
std::string freeText2
Second free-format text field for trader-specific or customer-related comments.
ExecInst::Enum execInst
Instructions for order handling, represented as a bit map.
TimeInForce::Enum timeInForce
Execution and trading restriction parameters supported by Eurex.
std::string legAccount
Leg-specific account to book trades and keep positions on.
std::string partyIdTakeUpTradingFirm
Indicates the name of a member institution to which a give-up is designated.
Enum
Side of the order.
ProductComplex::Enum productComplex
This field qualifies an instrument type on Eurex.
unsigned long long UInt64
Definition: Defines.h:46
Enum
Indicator how price validity check should be performed by the exchange.
SInt64 securityId
The instrument identifier uniquely identifies an instrument in the core system.
UInt64 clOrdId
Unique participant defined order request identifier.
OwnershipIndicator::Enum ownershipIndicator
Ownership indicator.
signed int SInt32
Definition: Defines.h:41
Enum
This field qualifies an instrument type on Eurex.
Enum
Instructions for order handling, represented as a bit map.
Definition: Enumerations.h:480
Message base class.
Definition: Message.h:32
Enum
Order origination, MiFID field - to indicate order received from a direct access or sponsored access ...
ValueCheckTypeValue::Enum valueCheckTypeValue
Indicator for checking the maximum order/quote value by the exchange.
std::string partyEndClientIdentification
End client identifier.
SInt32 marketSegmentId
The product identifier uniquely identifies a Eurex product.
std::string partyIdBeneficiary
Mandatory final KRX beneficiary account required for orders in KRX products.
unsigned int UInt32
Definition: Defines.h:45
std::string fixClOrdId
User defined client order ID.
signed long long SInt64
Definition: Defines.h:42
std::string partyIdOrderOriginationFirm
Partner identification at the Korea Exchange is required for orders in KRX products.
Enum
Indicator for checking the maximum order/quote value by the exchange.
SelfMatchPreventionInstruction::Enum selfMatchPreventionInstruction
OrderOrigination::Enum orderOrigination
Order origination, MiFID field - to indicate order received from a direct access or sponsored access ...
PriceValidityCheckType::Enum priceValidityCheckType
Indicator how price validity check should be performed by the exchange.
std::ostream & operator<<(std::ostream &, const ConnectionStateChange &)
Make it printable to formatted C++ I/O streams.
ExecutingTraderQualifier::Enum executingTraderQualifier
Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos...
std::string partyIdLocationId
Country code. Valid characters: 0x01-0x7E.
ApplSeqIndicator::Enum applSeqIndicator
Indicates if the order is a Lean Order or a Standard (non lean) Order.
std::string freeText3
Third free-format text field for trader-specific or customer-related comments.
std::string freeText1
First free-format text field for trader-specific or customer-related comments.
PartyIdInvestmentDecisionMakerQualifier::Enum partyIdInvestmentDecisionMakerQualifier
Party ID investment decision maker qualifier.
OrderAttributeLiquidityProvision::Enum orderAttributeLiquidityProvision
Order attribute liquidity provision.
Enum
Execution and trading restriction parameters supported by Eurex.
Enum
Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos...
Definition: Enumerations.h:571
std::string partyIdPositionAccount
Flex Account information.