OnixS Eurex ETI Handler C++ library  9.21.0
API documentation
MassOrder.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 /// Order Entry Group Element.
36 class ONIXS_EUREX_ETI_EXPORT OrderEntryGrpElem
37 {
38 public:
39  /// Initialize default instance.
41 
42  /// Price.
44 
45  /// Total Order Quantity.
47 
48  /// The product identifier uniquely identifies a Eurex product.
50 
51  /// The instrument identifier uniquely identifies an instrument in the core system.
53 
54  /// Side of the order.
56 
57  /// This field qualifies an instrument type on Eurex.
59 
60  /// Returns string representation.
61  std::string toString() const;
62 
63 private:
64  friend class Serializer;
65  OrderEntryGrpElem(const void* data);
66 };
67 
68 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const OrderEntryGrpElem&);
69 
70 /// Mass Order Message.
71 class ONIXS_EUREX_ETI_EXPORT MassOrder : public Message
72 {
73 public:
74  /// Initialize default instance.
75  MassOrder();
76 
77  /// User ID.
79 
80  /// Customer defined mass order identifier.
82 
83  /// Client Identifier field (ESMA Field 3 (Section A)) used to identify the client of an order for agent account of
84  /// the member or participant of the trading venue.
86 
87  /// Investment decision within firm (ESMA Field 4 (Section A)) is the code used to identify the person or the
88  /// algorithm within the member or participant of the Trading Venue who is responsible for the investment decision.
90 
91  /// Executing Trader data Field (ESMA Field 5 (Section A)) used to identify the person or algorithm within the
92  /// member or participant of the trading venue who is responsible for the execution of the transaction resulting
93  /// from the order.
95 
96  /// Indicates the name of a member institution to which a give-up is designated.
98 
99  /// Partner identification at the Korea Exchange is required for orders in KRX products.
101 
102  /// Mandatory final KRX beneficiary account required for orders in KRX products.
103  std::string partyIdBeneficiary;
104 
105  /// Indicator how price validity check should be performed by the exchange.
107 
108  /// Indicator for checking the maximum order/quote value by the exchange.
110 
111  /// Order attribute liquidity provision.
113 
114  /// Order attribute risk reduction.
116 
117  /// Marks a a certain order as a closing auction one.
119 
120  /// This field designates if the trader is acting in the capacity of agent, trading for its own account or acting as
121  /// a market maker.
123 
124  /// Order origination, MiFID field - to indicate order received from a direct access or sponsored access customer.
126 
127  /// Party ID investment decision maker qualifier.
129 
130  /// Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos.
132 
133  /// Account to book trades and keep positions on.
134  std::string account;
135 
136  /// Flex Account information.
138 
139  /// Field is used for Eurex position management purposes and indicates whether the order is submitted to open or
140  /// close a position.
142 
143  /// Country code. Valid characters: 0x01-0x7E.
144  std::string partyIdLocationId;
145 
146  /// Identifies the source of an order, in accordance with the FIA guidelines for a rate Identifier. The field is for
147  /// participant use only. Valid characters: 0x20, 0x22-0x7B, 0x7D, 0x7E.
149 
150  /// This field is used to provide additional regulatory information (according to respective rules and regs,
151  /// circulars and bilateral coordination between participant and Trading Surveillance Office).
152  std::string complianceText;
153 
154  /// First free-format text field for trader-specific or customer-related comments.
155  std::string freeText1;
156 
157  /// Second free-format text field for trader-specific or customer-related comments.
158  std::string freeText2;
159 
160  /// Third free-format text field for trader-specific or customer-related comments.
161  std::string freeText3;
162 
163  /// End client identifier.
165 
166  /// Order Entry Group.
167  std::vector<OrderEntryGrpElem> orderEntryGrp;
168 
169  /// Returns template ID.
170  TemplateId::Enum templateId() const;
171 
172  /// Returns string representation.
173  std::string toString() const;
174 
175 private:
176  friend class Serializer;
177  MassOrder(const void* data, size_t dataSize, MessageInfo& msgInfo);
178  void nativeSerializeTo(void* nativeMessage);
179 };
180 
181 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const MassOrder&);
182 
183 }}} // namespace OnixS::Eurex::Trading
Enum
Party ID investment decision maker qualifier.
std::string partyIdOrderOriginationFirm
Partner identification at the Korea Exchange is required for orders in KRX products.
Definition: MassOrder.h:100
Order Entry Group Element.
Definition: MassOrder.h:36
std::string freeText2
Second free-format text field for trader-specific or customer-related comments.
Definition: MassOrder.h:158
Enum
Side of the order.
Mass Order Message.
Definition: MassOrder.h:71
unsigned long long UInt64
Definition: Defines.h:46
Enum
Indicator how price validity check should be performed by the exchange.
Side::Enum side
Side of the order.
Definition: MassOrder.h:55
ProductComplex::Enum productComplex
This field qualifies an instrument type on Eurex.
Definition: MassOrder.h:58
std::string partyIdTakeUpTradingFirm
Indicates the name of a member institution to which a give-up is designated.
Definition: MassOrder.h:97
PartyIdInvestmentDecisionMakerQualifier::Enum partyIdInvestmentDecisionMakerQualifier
Party ID investment decision maker qualifier.
Definition: MassOrder.h:128
TradingSessionSubId::Enum tradingSessionSubId
Marks a a certain order as a closing auction one.
Definition: MassOrder.h:118
signed int SInt32
Definition: Defines.h:41
Enum
This field qualifies an instrument type on Eurex.
Message base class.
Definition: Message.h:32
Enum
Order origination, MiFID field - to indicate order received from a direct access or sponsored access ...
OrderOrigination::Enum orderOrigination
Order origination, MiFID field - to indicate order received from a direct access or sponsored access ...
Definition: MassOrder.h:125
ExecutingTraderQualifier::Enum executingTraderQualifier
Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos...
Definition: MassOrder.h:131
std::string partyEndClientIdentification
End client identifier.
Definition: MassOrder.h:164
std::string partyIdPositionAccount
Flex Account information.
Definition: MassOrder.h:137
CustOrderHandlingInst::Enum custOrderHandlingInst
Definition: MassOrder.h:148
unsigned int UInt32
Definition: Defines.h:45
std::string freeText3
Third free-format text field for trader-specific or customer-related comments.
Definition: MassOrder.h:161
signed long long SInt64
Definition: Defines.h:42
std::ostream & operator<<(std::ostream &, ConnectionState::Enum)
Make it printable using C++ I/O streams.
TradingCapacity::Enum tradingCapacity
Definition: MassOrder.h:122
std::string freeText1
First free-format text field for trader-specific or customer-related comments.
Definition: MassOrder.h:155
std::string partyIdLocationId
Country code. Valid characters: 0x01-0x7E.
Definition: MassOrder.h:144
Enum
Indicator for checking the maximum order/quote value by the exchange.
std::vector< OrderEntryGrpElem > orderEntryGrp
Order Entry Group.
Definition: MassOrder.h:167
OrderAttributeRiskReduction::Enum orderAttributeRiskReduction
Order attribute risk reduction.
Definition: MassOrder.h:115
std::string partyIdBeneficiary
Mandatory final KRX beneficiary account required for orders in KRX products.
Definition: MassOrder.h:103
std::string account
Account to book trades and keep positions on.
Definition: MassOrder.h:134
UInt64 massOrderRequestId
Customer defined mass order identifier.
Definition: MassOrder.h:81
SInt32 marketSegmentId
The product identifier uniquely identifies a Eurex product.
Definition: MassOrder.h:49
OrderAttributeLiquidityProvision::Enum orderAttributeLiquidityProvision
Order attribute liquidity provision.
Definition: MassOrder.h:112
SInt64 orderQty
Total Order Quantity.
Definition: MassOrder.h:46
PositionEffect::Enum positionEffect
Definition: MassOrder.h:141
PriceValidityCheckType::Enum priceValidityCheckType
Indicator how price validity check should be performed by the exchange.
Definition: MassOrder.h:106
ValueCheckTypeValue::Enum valueCheckTypeValue
Indicator for checking the maximum order/quote value by the exchange.
Definition: MassOrder.h:109
Enum
Marks a a certain order as a closing auction one.
SInt64 securityId
The instrument identifier uniquely identifies an instrument in the core system.
Definition: MassOrder.h:52
Enum
Qualifier for field ExecutingTrader. It is required to distinguish between natural persons and Algos...
Definition: Enumerations.h:551