OnixS C++ Eurex T7 Market and Reference Data (EMDI, MDI, RDI, EOBI) Handlers
18.0.1
API documentation
Home
Contents
Namespaces
Classes
Files
File List
File Members
OnixS
Eurex
MarketData
EOBI
AddComplexInstrument.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/MarketData/ABI.h
>
23
#include <
OnixS/Eurex/MarketData/Numeric.h
>
24
#include <
OnixS/Eurex/MarketData/StringRef.h
>
25
#include <
OnixS/Eurex/MarketData/EOBI/MessageBase.h
>
26
#include <
OnixS/Eurex/MarketData/EOBI/DataContainer.h
>
27
28
namespace
OnixS
29
{
30
namespace
Eurex
31
{
32
namespace
MarketData
33
{
34
namespace
EOBI
35
{
36
class
ONIXS_EUREX_EMDI_API
AddComplexInstrumentEntry
:
public
DataContainer
37
{
38
public
:
39
/// Product identifier of the leg security (only applicable for underlying leg).
40
UInt32
legSymbol()
const
;
41
42
/// Instrument identifier of the leg security.
43
UInt64 legSecurityID()
const
;
44
45
/// Leg Price
46
bool
legPrice (
Decimal
& price)
const
;
47
48
/// The ratio of quantity for this individual leg relative to the entire multi-leg security.
49
UInt32
legRatioQty()
const
;
50
51
/// Leg Security Type
52
EOBI::LegSecurityType::Enum
legSecurityType()
const
;
53
54
/// The side of the individual leg of a strategy as defined in signature
55
EOBI::LegSide::Enum
legSide()
const
;
56
57
///
58
EOBI::RelatedPriceType::Enum
relatedPriceType()
const
;
59
60
///
61
EOBI::TradingStyle::Enum
tradingStyle()
const
;
62
63
///
64
EOBI::RelatedPriceType::Enum
relatedPrice()
const
;
65
66
67
/// Appends text presentation.
68
void
toString (std::string&)
const
;
69
70
private
:
71
friend
class
AddComplexInstrumentEntries
;
72
73
AddComplexInstrumentEntry
(
const
void
* data);
74
};
75
76
class
ONIXS_EUREX_EMDI_API
AddComplexInstrumentEntries
:
public
DataContainer
77
{
78
public
:
79
/// Number of entries
80
size_t
size()
const
;
81
82
/// Entry accessor
83
AddComplexInstrumentEntry
operator[] (
size_t
idx)
const
;
84
85
/// Appends text presentation.
86
void
toString (std::string&)
const
;
87
88
private
:
89
friend
class
AddComplexInstrument
;
90
91
AddComplexInstrumentEntries
(
const
void
* data);
92
};
93
94
class
ONIXS_EUREX_EMDI_API
AddComplexInstrument
:
public
MessageBase
95
{
96
public
:
97
/// Message type
98
std::string msgType()
const
;
99
100
/// Market data type
101
EOBI::MarketDataType::Enum
marketDataType()
const
;
102
103
/// Security update action
104
EOBI::SecurityUpdateAction::Enum
securityUpdateAction()
const
;
105
106
/// Marketplace assigned identifier.
107
EOBI::SecurityIDSource::Enum
securityIDSource()
const
;
108
109
/// Marketplace assigned identifier.
110
EOBI::LegSecurityIDSource::Enum
legSecurityIDSource()
const
;
111
112
/// Number of market segments
113
EOBI::NoMarketSegments::Enum
noMarketSegments()
const
;
114
115
/// Security type
116
EOBI::SecurityType::Enum
securityType()
const
;
117
118
/// Unique instrument identifier.
119
UInt64 securityID()
const
;
120
121
/// Transaction timestamp.
122
UInt64 transactTime()
const
;
123
124
/// Human readable description of instrument.
125
StringRef
securityDesc()
const
;
126
127
/// Strategy Type.
128
UInt32
securitySubType()
const
;
129
130
/// This field qualifies an instrument type on Eurex.
131
EOBI::ProductComplex::Enum
productComplex()
const
;
132
133
/// Indicates that an implied market to be created for either the legs of a multi-leg
134
/// instrument (Implied-in) or for the multi-leg instrument based on the existence of the legs (Impliedout).
135
/// Determination as to whether implied markets should be created is generally done at the level of the multileg instrument.
136
/// Commonly used in listed derivatives.
137
EOBI::ImpliedMarketIndicator::Enum
impliedMarketIndicator()
const
;
138
139
///
140
bool
quantityScalingFactor(
UInt16
& result)
const
ONIXS_EUREX_EMDI_NOEXCEPT
;
141
142
/// LastFragment
143
LastFragment::Enum
lastFragment()
const
;
144
145
/// Common integer multiple of the option legs for Option Volatility Strategies.
146
UInt32
legRatioMultiplier()
const
;
147
148
/// Counter: number of Legs repeating group instances.
149
UInt8
noLegs()
const
;
150
151
/// Variable size array, record counter: NoLegs
152
AddComplexInstrumentEntries
instrmtLegGrp()
const
;
153
154
/// Appends text presentation.
155
void
toString (std::string&)
const
ONIXS_EUREX_EMDI_OVERRIDE
;
156
157
private
:
158
friend
class
Implementation::MessageFactory;
159
160
AddComplexInstrument
(
const
void
* data,
const
DataSource
& dataSource) :
MessageBase
(data, dataSource) {}
161
};
162
}
163
}
164
}
165
}
OnixS::Eurex::MarketData::UInt8
unsigned char UInt8
Definition:
Numeric.h:35
OnixS::Eurex::MarketData::EOBI::SecurityUpdateAction::Enum
Enum
Definition:
Defines.h:1342
Numeric.h
OnixS::Eurex::MarketData::EOBI::MarketDataType::Enum
Enum
Definition:
Defines.h:1174
OnixS::Eurex::MarketData::EOBI::AddComplexInstrument
Definition:
AddComplexInstrument.h:94
OnixS::Eurex::MarketData::EOBI::AddComplexInstrumentEntries
Definition:
AddComplexInstrument.h:76
MessageBase.h
ONIXS_EUREX_EMDI_NOEXCEPT
#define ONIXS_EUREX_EMDI_NOEXCEPT
Definition:
Compiler.h:130
ONIXS_EUREX_EMDI_OVERRIDE
#define ONIXS_EUREX_EMDI_OVERRIDE
Definition:
Compiler.h:134
OnixS::Eurex::MarketData::EOBI::LastFragment::Enum
Enum
Definition:
Defines.h:1709
ABI.h
OnixS::Eurex::MarketData::UInt32
unsigned int UInt32
Definition:
Numeric.h:41
OnixS::Eurex::MarketData::EOBI::SecurityIDSource::Enum
Enum
Definition:
Defines.h:1266
OnixS
Definition:
Defines.h:30
OnixS::Eurex::MarketData::Decimal
Decimal type for better precision.
Definition:
Numeric.h:63
OnixS::Eurex::MarketData::EOBI::LegSecurityIDSource::Enum
Enum
Definition:
Defines.h:1082
OnixS::Eurex::MarketData::EOBI::AddComplexInstrumentEntry
Definition:
AddComplexInstrument.h:36
OnixS::Eurex::MarketData::EOBI::ImpliedMarketIndicator::Enum
Enum
Definition:
Defines.h:1070
OnixS::Eurex::MarketData::UInt16
unsigned short UInt16
Definition:
Numeric.h:38
OnixS::Eurex::MarketData::EOBI::TradingStyle::Enum
Enum
Definition:
Defines.h:1116
StringRef.h
DataContainer.h
OnixS::Eurex::MarketData::EOBI::NoMarketSegments::Enum
Enum
Definition:
Defines.h:1230
OnixS::Eurex::MarketData::DataSource
Definition:
Defines.h:93
OnixS::Eurex::MarketData::EOBI::SecurityType::Enum
Enum
Definition:
Defines.h:1329
OnixS::Eurex::MarketData::EOBI::RelatedPriceType::Enum
Enum
Definition:
Defines.h:1105
OnixS::Eurex::MarketData::EOBI::LegSecurityType::Enum
Enum
Definition:
Defines.h:1527
OnixS::Eurex::MarketData::EOBI::DataContainer
Definition:
DataContainer.h:34
OnixS::Eurex::MarketData::EOBI::ProductComplex::Enum
Enum
Definition:
Defines.h:1241
OnixS::Eurex::MarketData::StringRef
Definition:
StringRef.h:51
OnixS::Eurex::MarketData::EOBI::MessageBase
Definition:
MessageBase.h:41
OnixS::Eurex::MarketData::EOBI::LegSide::Enum
Enum
Definition:
Defines.h:1093