OnixS C++ Eurex T7 Market and Reference Data (EMDI, MDI, RDI, EOBI) Handlers
17.0.1
API documentation
Home
Contents
Namespaces
Classes
Files
File List
File Members
include
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
/// Appends text presentation.
58
void
toString (std::string&)
const
;
59
60
private
:
61
friend
class
AddComplexInstrumentEntries
;
62
63
AddComplexInstrumentEntry
(
const
void
* data);
64
};
65
66
class
ONIXS_EUREX_EMDI_API
AddComplexInstrumentEntries
:
public
DataContainer
67
{
68
public
:
69
/// Number of entries
70
size_t
size()
const
;
71
72
/// Entry accessor
73
AddComplexInstrumentEntry
operator[] (
size_t
idx)
const
;
74
75
/// Appends text presentation.
76
void
toString (std::string&)
const
;
77
78
private
:
79
friend
class
AddComplexInstrument
;
80
81
AddComplexInstrumentEntries
(
const
void
* data);
82
};
83
84
class
ONIXS_EUREX_EMDI_API
AddComplexInstrument
:
public
MessageBase
85
{
86
public
:
87
/// Message type
88
std::string msgType()
const
;
89
90
/// Market data type
91
EOBI::MarketDataType::Enum
marketDataType()
const
;
92
93
/// Security update action
94
EOBI::SecurityUpdateAction::Enum
securityUpdateAction()
const
;
95
96
/// Marketplace assigned identifier.
97
EOBI::SecurityIDSource::Enum
securityIDSource()
const
;
98
99
/// Marketplace assigned identifier.
100
EOBI::LegSecurityIDSource::Enum
legSecurityIDSource()
const
;
101
102
/// Number of market segments
103
EOBI::NoMarketSegments::Enum
noMarketSegments()
const
;
104
105
/// Security type
106
EOBI::SecurityType::Enum
securityType()
const
;
107
108
/// Unique instrument identifier.
109
UInt64 securityID()
const
;
110
111
/// Transaction timestamp.
112
UInt64 transactTime()
const
;
113
114
/// Human readable description of instrument.
115
StringRef
securityDesc()
const
;
116
117
/// Strategy Type.
118
UInt32
securitySubType()
const
;
119
120
/// This field qualifies an instrument type on Eurex.
121
EOBI::ProductComplex::Enum
productComplex()
const
;
122
123
/// Indicates that an implied market to be created for either the legs of a multi-leg
124
/// instrument (Implied-in) or for the multi-leg instrument based on the existence of the legs (Impliedout).
125
/// Determination as to whether implied markets should be created is generally done at the level of the multileg instrument.
126
/// Commonly used in listed derivatives.
127
EOBI::ImpliedMarketIndicator::Enum
impliedMarketIndicator()
const
;
128
129
///
130
bool
quantityScalingFactor(
UInt16
& result)
const
ONIXS_EUREX_EMDI_NOEXCEPT
;
131
132
/// LastFragment
133
LastFragment::Enum
lastFragment()
const
;
134
135
/// Common integer multiple of the option legs for Option Volatility Strategies.
136
UInt32
legRatioMultiplier()
const
;
137
138
/// Counter: number of Legs repeating group instances.
139
UInt8
noLegs()
const
;
140
141
/// Variable size array, record counter: NoLegs
142
AddComplexInstrumentEntries
instrmtLegGrp()
const
;
143
144
/// Appends text presentation.
145
void
toString (std::string&)
const
ONIXS_EUREX_EMDI_OVERRIDE
;
146
147
private
:
148
friend
class
Implementation::MessageFactory;
149
150
AddComplexInstrument
(
const
void
* data,
const
DataSource
& dataSource) :
MessageBase
(data, dataSource) {}
151
};
152
}
153
}
154
}
155
}
OnixS::Eurex::MarketData::UInt8
unsigned char UInt8
Definition:
Numeric.h:35
OnixS::Eurex::MarketData::EOBI::SecurityUpdateAction::Enum
Enum
Definition:
Defines.h:1290
Numeric.h
OnixS::Eurex::MarketData::EOBI::MarketDataType::Enum
Enum
Definition:
Defines.h:1123
OnixS::Eurex::MarketData::EOBI::AddComplexInstrument
Definition:
AddComplexInstrument.h:84
OnixS::Eurex::MarketData::EOBI::AddComplexInstrumentEntries
Definition:
AddComplexInstrument.h:66
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:1657
ABI.h
OnixS::Eurex::MarketData::UInt32
unsigned int UInt32
Definition:
Numeric.h:41
OnixS::Eurex::MarketData::EOBI::SecurityIDSource::Enum
Enum
Definition:
Defines.h:1214
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:1057
OnixS::Eurex::MarketData::EOBI::AddComplexInstrumentEntry
Definition:
AddComplexInstrument.h:36
OnixS::Eurex::MarketData::EOBI::ImpliedMarketIndicator::Enum
Enum
Definition:
Defines.h:1045
OnixS::Eurex::MarketData::UInt16
unsigned short UInt16
Definition:
Numeric.h:38
StringRef.h
DataContainer.h
OnixS::Eurex::MarketData::EOBI::NoMarketSegments::Enum
Enum
Definition:
Defines.h:1179
OnixS::Eurex::MarketData::DataSource
Definition:
Defines.h:93
OnixS::Eurex::MarketData::EOBI::SecurityType::Enum
Enum
Definition:
Defines.h:1277
OnixS::Eurex::MarketData::EOBI::LegSecurityType::Enum
Enum
Definition:
Defines.h:1475
OnixS::Eurex::MarketData::EOBI::DataContainer
Definition:
DataContainer.h:34
OnixS::Eurex::MarketData::EOBI::ProductComplex::Enum
Enum
Definition:
Defines.h:1190
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:1068