OnixS C++ Eurex T7 Market and Reference Data (EMDI, MDI, RDI, EOBI) Handlers  14.0.0
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  /// Coupon payment, for which the coupon period is ongoing, multiplied by the ratio of the already passed time of the coupon periodand the entire coupon period.
102  {
103  return get(Tags::CurrentAccruedInterestAmt).toNumber(value);
104  }
105 
106  /// The previous day�s underlying index close value.
107  bool relatedClosePrice (Decimal& value) const
108  {
109  return get (Tags::RelatedClosePrice).toNumber (value);
110  }
111 
112 
113  private:
115 
116  TrfsClearingPriceParameter (const GroupInstance& groupInstance)
117  : GroupInstance (groupInstance)
118  {
119  }
120  };
121 
122  class TrfsClearingPriceParameters : public TypedGroup<TrfsClearingPriceParameter>
123  {
124  private:
125  explicit
126  TrfsClearingPriceParameters (const Group& group)
128  {
129  }
130 
132  };
133 
134  /// Total return futures status message
135  class ONIXS_EUREX_EMDI_API TotalReturnFuturesStatus : public Message
136  {
137  public:
138 
139  /// Product identifier.
141  {
142  return getUInt32 (Tags::MarketSegmentID);
143  }
144 
145  /// Instrument identifier.
147  {
148  return getInt64 (Tags::SecurityID);
149  }
150 
151  /// Type of security.
153  {
154  return getIntEnumFieldValue<SecurityType> (*this, Tags::SecurityType);
155  }
156 
157  /// Daily settlement price of the previous day in trading notation (TRF spread).
159  {
160  return getDecimal(Tags::PriorSettlPrice);
161  }
162 
163  /// Daily settlement price of the current day in trading notation (TRF spread).
164  bool settlPrice (Decimal& price) const
165  {
166  return get (Tags::SettlPrice).toNumber (price);
167  }
168 
169 
170  /// Clearing price parameters
172  {
174  }
175 
176  private:
177  friend class TotalReturnFuturesStatusWrapper;
178 
179  TotalReturnFuturesStatus (const void* impl)
180  : Message (impl)
181  {
182  }
183  };
184  }
185  }
186 }
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:225
const Tag AccruedPaymentParameter
Definition: Tags.h:227
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:159
const Tag CurrentPaymentParameter
Definition: Tags.h:226
const Tag CurrentAccruedInterestAmt
Definition: Tags.h:340
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.
bool currentAccruedInterestAmt(Decimal &value) const
Coupon payment, for which the coupon period is ongoing, multiplied by the ratio of the already passed...
const Tag OvernightInterestRate
Definition: Tags.h:171
const Tag AccruedCollectionParameter
Definition: Tags.h:230
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:229
const Tag AnnualCalendarDays
Definition: Tags.h:224
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).