OnixS C++ Eurex T7 Market and Reference Data (EMDI, MDI, RDI, EOBI) Handlers 18.2.0
API documentation
Loading...
Searching...
No Matches
ExchangeTrade.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
28
29namespace OnixS
30{
31 namespace Eurex
32 {
33 namespace MarketData
34 {
36 class ONIXS_EUREX_EMDI_API ExchangeTrade : public Message
37 {
38 public:
39
42 {
44 }
45
48 {
50 }
51
57
63
69
75
78 {
79 return getGroup (Tags::NoMDEntries).at (0).getInt64 (Tags::SecurityID);
80 }
81
83 bool mdEntryPx (Decimal& price) const
84 {
85 return getGroup (Tags::NoMDEntries).at (0).get (Tags::MDEntryPx).toNumber (price);
86 }
87
89 bool mdEntrySize(Decimal& size) const
90 {
91 return getGroup (Tags::NoMDEntries).at (0).get (Tags::MDEntrySize).toNumber (size);
92 }
93
95 bool mdEntryTime(Int64& val) const
96 {
97 return getGroup (Tags::NoMDEntries).at(0).get(Tags::MDEntryTime).toNumber(val);
98 }
99
105
108 {
109 UInt64 value;
110 return (getGroup (Tags::NoMDEntries).at (0).get (Tags::TradeCondition).toNumber (value) ?
111 TradeConditionSet (value) :
112 TradeConditionSet (0) );
113 }
114
116 bool aggressorTime (UInt64& time) const
117 {
118 return getGroup (Tags::NoMDEntries).at (0).get (Tags::AggressorTime).toNumber (time);
119 }
120
126
128 bool numberOfBuyOrders (UInt32& number) const
129 {
130 return getGroup (Tags::NoMDEntries).at (0).get (Tags::NumberOfBuyOrders).toNumber (number);
131 }
132
134 bool numberOfSellOrders (UInt32& number) const
135 {
136 return getGroup (Tags::NoMDEntries).at (0).get (Tags::NumberOfSellOrders).toNumber (number);
137 }
138
140 bool mumberOfBuySides(UInt32& number) const
141 {
142 return getGroup(Tags::NoMDEntries).at(0).get(Tags::NumberOfBuySides).toNumber(number);
143 }
144
146 bool numberOfSellSides(UInt32& val) const
147 {
148 return getGroup(Tags::NoMDEntries).at(0).get(Tags::NumberOfSellSides).toNumber(val);
149 }
150
152 bool totalNumOfTrades(UInt32& val) const
153 {
154 return getGroup (Tags::NoMDEntries).at(0).get(Tags::TotalNumOfTrades).toNumber(val);
155 }
156
158 bool restingCxlQty (Decimal& quantity) const
159 {
160 return getGroup (Tags::NoMDEntries).at (0).get (Tags::RestingCxlQty).toNumber (quantity);
161 }
162
164 bool mdEntryId (UInt32 id) const
165 {
166 return getGroup (Tags::NoMDEntries).at (0).get (Tags::MDEntryID).toNumber(id);
167 }
168
171 {
172 return getGroup (Tags::NoMDEntries).at (0).get (Tags::NonDisclosedTradeVolume).toNumber (id);
173 }
174
180
186
192
194 bool partyID(StringRef& val) const
195 {
196 Group parties = getGroup(Tags::NoMDEntries).at(0).getOptionalGroup(Tags::NoPartyIDs);
197 return (parties) ? parties.at(0).get (Tags::PartyID).toStringRef(val) : false;
198 }
199
201 bool partyIDSource(StringRef& val) const
202 {
203 Group parties = getGroup(Tags::NoMDEntries).at(0).getOptionalGroup(Tags::NoPartyIDs);
204 return (parties) ? val = StringRef("G"), true : false;
205 }
206
208 bool partyRole(UInt32& val) const
209 {
210 Group parties = getGroup(Tags::NoMDEntries).at(0).getOptionalGroup(Tags::NoPartyIDs);
211 return (parties) ? val = 73, true : false;
212 }
213
214 private:
216
217 ExchangeTrade (const void* impl)
218 : Message (impl)
219 {
220 }
221 };
222 }
223 }
224}
Decimal type for better precision.
Definition Numeric.h:66
bool numberOfSellSides(UInt32 &val) const
Number of sell sides involved in an off exchange trade. Only present for MDOriginType 1 = Off-Book.
AlgorithmicTradeIndicator::Enum algorithmicTradeIndicator() const
Algorithmic-Trade-Indicator.
MultiLegReportingType::Enum multiLegReportingType() const
MultiLegReportingType.
bool partyIDSource(StringRef &val) const
PartyIDSource.
MDOriginType::Enum mdOriginType() const
Origin type.
bool aggressorTime(UInt64 &time) const
Entry time of the incoming order that triggered the trade.
bool mdEntryTime(Int64 &val) const
Time of entry (nanoseconds)
Side::Enum aggressorSide() const
Side of the incoming order, which created the trade. Only present for MDEntryType=Trade.
TradeConditionSet tradeCondition() const
Defines the type of price for MDEntryPx.
MDUpdateAction::Enum mdUpdateAction() const
Update action.
bool mdEntrySize(Decimal &size) const
Trade Quantity.
bool numberOfSellOrders(UInt32 &number) const
Number of sell orders involved in this trade.
TrdType::Enum trdType() const
Trade Type.
bool mdEntryPx(Decimal &price) const
Trade Price.
bool restingCxlQty(Decimal &quantity) const
Quantity of orders that are deleted due to a SMP event.
MarketSegmentId marketSegmentId() const
Product identifier.
UInt32 senderCompID() const
Unique ID of a sender.
MDEntryType::Enum mdEntryType() const
Update action.
bool mumberOfBuySides(UInt32 &number) const
Number of buy sides involved in an off exchange trade. Only present for MDOriginType 1 = Off-Book.
MultiLegPriceModel::Enum multiLegPriceModel() const
MultiLegPriceModel.
bool mdEntryId(UInt32 id) const
Represents the match step (unique together with SenderCompID).
SecurityId securityId() const
Instrument ID from Eurex Exchange�s new trading architecture.
bool totalNumOfTrades(UInt32 &val) const
Total Number Of Trades.
bool partyRole(UInt32 &val) const
PartyRole.
bool numberOfBuyOrders(UInt32 &number) const
Number of buy orders involved in this trade.
bool nonDisclosedTradeVolume(Decimal &id) const
Contains the TES trade volume that is not displayed during the day. Only present for MDEntryType=B "T...
bool partyID(StringRef &val) const
PartyID.
UInt32 getUInt32(Tag tag) const
Group getGroup(Tag numberOfInstancesTag) const
FieldValueRef get(Tag tag) const
bool toStringRef(StringRef &) const
const GroupInstance at(size_t index) const
Message(const Message &other)
const Tag AlgorithmicTradeIndicator
Definition Tags.h:235
const Tag MultiLegReportingType
Definition Tags.h:236
const Tag NonDisclosedTradeVolume
Definition Tags.h:193
Enumeration::Enum getIntEnumFieldValue(const FieldSet &fieldSet, Tag tag)
Definition FieldSet.h:228
unsigned int UInt32
Definition Numeric.h:41
UInt32 MarketSegmentId
Alias for Market Segment ID type.
Definition Defines.h:40
Int64 SecurityId
Alias for Security Id type.
Definition Defines.h:51
Enumeration::Enum getNonZeroIntEnumFieldValue(const FieldSet &fieldSet, Tag tag)
Definition FieldSet.h:235