OnixS C++ Eurex T7 Market and Reference Data Interface (EMDI, RDI, EOBI) Handlers  7.4.2
API documentation
TotalReturnFuturesStatus.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 
29 namespace OnixS
30 {
31  namespace Eurex
32  {
33  namespace MarketData
34  {
35 
36  /// Clearing price parameter for total return futures status message
37  class ONIXS_EUREX_EMDI_API TrfsClearingPriceParameter : GroupInstance
38  {
39  public:
40 
41  /// Business date type
43  {
44  return getIntEnumFieldValue<BusinessDayType> (*this, Tags::BusinessDayType);
45  }
46 
47  /// Annualisation Factor, a constant value that represents the number of calendar days during one year as applied in the calculations.
48  bool annualCalendarDays (UInt32& value) const
49  {
50  return get (Tags::AnnualCalendarDays).toNumber (value);
51  }
52 
53  /// Days to maturity, number of calendar days between the current day settlement date and the
54  /// instrument expiration settlement date. Used for the trade price conversion from trading to clearing notation.
55  bool remainingCalendarDays (UInt32& value) const
56  {
57  return get (Tags::RemainingCalendarDays).toNumber (value);
58  }
59 
60  /// Funding rate, used for the funding calculation of the current day. Represents the overnight
61  /// or the periodic interest rate established on the previous day. Becomes available in the morning before trading starts.
62  bool overnightInterestRate (Decimal& value) const
63  {
64  return get (Tags::OvernightInterestRate).toNumber (value);
65  }
66 
67  /// Daily funding, calculated from the funding rate applied to the previous day underlying index.
68  bool currentPaymentParameter (Decimal& value) const
69  {
70  return get (Tags::CurrentPaymentParameter).toNumber (value);
71  }
72 
73  /// Accrued funding, accumulated from the daily fundings since
74  /// the product launch. Used for the trade price conversion from
75  /// trading to clearing notation.
76  bool accruedPaymentParameter (Decimal& value) const
77  {
78  return get (Tags::AccruedPaymentParameter).toNumber (value);
79  }
80 
81  /// Distribution index, defined for the current day. Becomes available in the morning before trading starts.
82  bool relatedIndexValue (Decimal& value) const
83  {
84  return get (Tags::RelatedIndexValue).toNumber (value);
85  }
86 
87  /// Daily distribution, calculated from the difference between the current and the previous day distribution index.
88  bool currentCollectionParameter (Decimal& value) const
89  {
90  return get (Tags::CurrentCollectionParameter).toNumber (value);
91  }
92 
93  /// Accrued distribution, accumulated from the daily distributions since the product launch. Used for the trade price conversion
94  /// from trading to clearing notation.
95  bool accruedCollectionParameter (Decimal& value) const
96  {
97  return get (Tags::AccruedCollectionParameter).toNumber (value);
98  }
99 
100  /// The previous day�s underlying index close value.
101  bool relatedClosePrice (Decimal& value) const
102  {
103  return get (Tags::RelatedClosePrice).toNumber (value);
104  }
105 
106 
107  private:
109 
110  TrfsClearingPriceParameter (const GroupInstance& groupInstance)
111  : GroupInstance (groupInstance)
112  {
113  }
114  };
115 
116  class TrfsClearingPriceParameters : public TypedGroup<TrfsClearingPriceParameter>
117  {
118  private:
119  explicit
120  TrfsClearingPriceParameters (const Group& group)
122  {
123  }
124 
126  };
127 
128  /// Total return futures status message
129  class ONIXS_EUREX_EMDI_API TotalReturnFuturesStatus : public Message
130  {
131  public:
132 
133  /// Product identifier.
135  {
136  return getUInt32 (Tags::MarketSegmentID);
137  }
138 
139  /// Instrument identifier.
141  {
142  return getInt64 (Tags::SecurityID);
143  }
144 
145  /// Type of security.
147  {
148  return getIntEnumFieldValue<SecurityType> (*this, Tags::SecurityType);
149  }
150 
151  /// Daily settlement price of the previous day in trading notation (TRF spread).
153  {
154  return getDecimal(Tags::PriorSettlPrice);
155  }
156 
157  /// Daily settlement price of the current day in trading notation (TRF spread).
158  bool settlPrice (Decimal& price) const
159  {
160  return get (Tags::SettlPrice).toNumber (price);
161  }
162 
163 
164  /// Clearing price parameters
166  {
168  }
169 
170  private:
172 
173  TotalReturnFuturesStatus (const void* impl)
174  : Message (impl)
175  {
176  }
177  };
178  }
179  }
180 }
BusinessDayType::Enum businessDayType() const
Business date type.
Clearing price parameter for total return futures status message.
bool settlPrice(Decimal &price) const
Daily settlement price of the current day in trading notation (TRF spread).
MarketSegmentId marketSegmentId() const
Product identifier.
const Tag RemainingCalendarDays
Definition: Tags.h:243
const Tag AccruedPaymentParameter
Definition: Tags.h:245
bool relatedIndexValue(Decimal &value) const
Distribution index, defined for the current day. Becomes available in the morning before trading star...
bool annualCalendarDays(UInt32 &value) const
Annualisation Factor, a constant value that represents the number of calendar days during one year as...
unsigned int UInt32
Definition: Numeric.h:41
Definition: Defines.h:30
Decimal type for better precision.
Definition: Numeric.h:63
const Tag NoClearingPriceParameters
Definition: Tags.h:176
const Tag CurrentPaymentParameter
Definition: Tags.h:244
Int64 SecurityId
Alias for Security Id type.
Definition: Defines.h:51
bool currentPaymentParameter(Decimal &value) const
Daily funding, calculated from the funding rate applied to the previous day underlying index...
bool relatedClosePrice(Decimal &value) const
The previous day�s underlying index close value.
SecurityId securityId() const
Instrument identifier.
TrfsClearingPriceParameters clearingPriceParameters() const
Clearing price parameters.
const Tag OvernightInterestRate
Definition: Tags.h:188
const Tag AccruedCollectionParameter
Definition: Tags.h:248
SecurityType::Enum securityType() const
Type of security.
UInt32 MarketSegmentId
Alias for Market Segment ID type.
Definition: Defines.h:40
const Tag CurrentCollectionParameter
Definition: Tags.h:247
const Tag AnnualCalendarDays
Definition: Tags.h:242
bool currentCollectionParameter(Decimal &value) const
Daily distribution, calculated from the difference between the current and the previous day distribut...
Decimal priorSettlPrice() const
Daily settlement price of the previous day in trading notation (TRF spread).