QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
euribor.hpp
Go to the documentation of this file.
1/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
3/*
4 Copyright (C) 2000, 2001, 2002, 2003 RiskMap srl
5 Copyright (C) 2003, 2004, 2005, 2006 StatPro Italia srl
6 Copyright (C) 2006 Katiuscia Manzoni
7 Copyright (C) 2006 Chiara Fornarola
8 Copyright (C) 2009 Roland Lichters
9 Copyright (C) 2009 Ferdinando Ametrano
10
11 This file is part of QuantLib, a free-software/open-source library
12 for financial quantitative analysts and developers - http://quantlib.org/
13
14 QuantLib is free software: you can redistribute it and/or modify it
15 under the terms of the QuantLib license. You should have received a
16 copy of the license along with this program; if not, please email
17 <quantlib-dev@lists.sf.net>. The license is also available online at
18 <http://quantlib.org/license.shtml>.
19
20 This program is distributed in the hope that it will be useful, but WITHOUT
21 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
22 FOR A PARTICULAR PURPOSE. See the license for more details.
23*/
24
25/*! \file euribor.hpp
26 \brief %Euribor index
27*/
28
29#ifndef quantlib_euribor_hpp
30#define quantlib_euribor_hpp
31
33
34namespace QuantLib {
35
36 //! %Euribor index
37 /*! Euribor rate fixed by the ECB.
38
39 \warning This is the rate fixed by the ECB. Use EurLibor
40 if you're interested in the London fixing by BBA.
41 */
42 class Euribor : public IborIndex {
43 public:
44 Euribor(const Period& tenor,
45 const Handle<YieldTermStructure>& h = {});
46 };
47
48 //! Actual/365 %Euribor index
49 /*! Euribor rate adjusted for the mismatch between the actual/360
50 convention used for Euribor and the actual/365 convention
51 previously used by a few pre-EUR currencies.
52 */
53 class Euribor365 : public IborIndex {
54 public:
55 Euribor365(const Period& tenor,
56 const Handle<YieldTermStructure>& h = {});
57 };
58
59 //! 1-week %Euribor index
60 class Euribor1W : public Euribor {
61 public:
62 explicit Euribor1W(const Handle<YieldTermStructure>& h = {})
63 : Euribor(Period(1, Weeks), h) {}
64 };
65
66 /*! \deprecated Renamed to Euribor1W.
67 Deprecated in version 1.35.
68 */
69 [[deprecated("Renamed to Euribor1W")]]
71
72 /*! \deprecated If really needed, use the Euribor class with an explicit tenor instead.
73 Deprecated in version 1.35.
74 */
75 class [[deprecated("If really needed, use the Euribor class with an explicit tenor instead")]] Euribor2W : public Euribor {
76 public:
77 explicit Euribor2W(const Handle<YieldTermStructure>& h = {})
78 : Euribor(Period(2, Weeks), h) {}
79 };
80
81 /*! \deprecated If really needed, use the Euribor class with an explicit tenor instead.
82 Deprecated in version 1.35.
83 */
84 class [[deprecated("If really needed, use the Euribor class with an explicit tenor instead")]] Euribor3W : public Euribor {
85 public:
86 explicit Euribor3W(const Handle<YieldTermStructure>& h = {})
87 : Euribor(Period(3, Weeks), h) {}
88 };
89
90 //! 1-month %Euribor index
91 class Euribor1M : public Euribor {
92 public:
93 explicit Euribor1M(const Handle<YieldTermStructure>& h = {})
94 : Euribor(Period(1, Months), h) {}
95 };
96
97 /*! \deprecated If really needed, use the Euribor class with an explicit tenor instead.
98 Deprecated in version 1.35.
99 */
100 class [[deprecated("If really needed, use the Euribor class with an explicit tenor instead")]] Euribor2M : public Euribor {
101 public:
102 explicit Euribor2M(const Handle<YieldTermStructure>& h = {})
103 : Euribor(Period(2, Months), h) {}
104 };
105
106 //! 3-months %Euribor index
107 class Euribor3M : public Euribor {
108 public:
109 explicit Euribor3M(const Handle<YieldTermStructure>& h = {})
110 : Euribor(Period(3, Months), h) {}
111 };
112
113 /*! \deprecated If really needed, use the Euribor class with an explicit tenor instead.
114 Deprecated in version 1.35.
115 */
116 class [[deprecated("If really needed, use the Euribor class with an explicit tenor instead")]] Euribor4M : public Euribor {
117 public:
118 explicit Euribor4M(const Handle<YieldTermStructure>& h = {})
119 : Euribor(Period(4, Months), h) {}
120 };
121
122 /*! \deprecated If really needed, use the Euribor class with an explicit tenor instead.
123 Deprecated in version 1.35.
124 */
125 class [[deprecated("If really needed, use the Euribor class with an explicit tenor instead")]] Euribor5M : public Euribor {
126 public:
127 explicit Euribor5M(const Handle<YieldTermStructure>& h = {})
128 : Euribor(Period(5, Months), h) {}
129 };
130
131 //! 6-months %Euribor index
132 class Euribor6M : public Euribor {
133 public:
134 explicit Euribor6M(const Handle<YieldTermStructure>& h = {})
135 : Euribor(Period(6, Months), h) {}
136 };
137
138 /*! \deprecated If really needed, use the Euribor class with an explicit tenor instead.
139 Deprecated in version 1.35.
140 */
141 class [[deprecated("If really needed, use the Euribor class with an explicit tenor instead")]] Euribor7M : public Euribor {
142 public:
143 explicit Euribor7M(const Handle<YieldTermStructure>& h = {})
144 : Euribor(Period(7, Months), h) {}
145 };
146
147 /*! \deprecated If really needed, use the Euribor class with an explicit tenor instead.
148 Deprecated in version 1.35.
149 */
150 class [[deprecated("If really needed, use the Euribor class with an explicit tenor instead")]] Euribor8M : public Euribor {
151 public:
152 explicit Euribor8M(const Handle<YieldTermStructure>& h = {})
153 : Euribor(Period(8, Months), h) {}
154 };
155
156 /*! \deprecated If really needed, use the Euribor class with an explicit tenor instead.
157 Deprecated in version 1.35.
158 */
159 class [[deprecated("If really needed, use the Euribor class with an explicit tenor instead")]] Euribor9M : public Euribor {
160 public:
161 explicit Euribor9M(const Handle<YieldTermStructure>& h = {})
162 : Euribor(Period(9, Months), h) {}
163 };
164
165 /*! \deprecated If really needed, use the Euribor class with an explicit tenor instead.
166 Deprecated in version 1.35.
167 */
168 class [[deprecated("If really needed, use the Euribor class with an explicit tenor instead")]] Euribor10M : public Euribor {
169 public:
171 : Euribor(Period(10, Months), h) {}
172 };
173
174 /*! \deprecated If really needed, use the Euribor class with an explicit tenor instead.
175 Deprecated in version 1.35.
176 */
177 class [[deprecated("If really needed, use the Euribor class with an explicit tenor instead")]] Euribor11M : public Euribor {
178 public:
180 : Euribor(Period(11, Months), h) {}
181 };
182
183 //! 1-year %Euribor index
184 class Euribor1Y : public Euribor {
185 public:
186 explicit Euribor1Y(const Handle<YieldTermStructure>& h = {})
187 : Euribor(Period(1, Years), h) {}
188 };
189
190
191 /*! \deprecated If needed, use the Euribor365 class with an explicit tenor instead.
192 Deprecated in version 1.35.
193 */
194 class [[deprecated("If needed, use the Euribor365 class with an explicit tenor instead")]] Euribor365_SW : public Euribor365 {
195 public:
197 : Euribor365(Period(1, Weeks), h) {}
198 };
199
200 /*! \deprecated If needed, use the Euribor365 class with an explicit tenor instead.
201 Deprecated in version 1.35.
202 */
203 class [[deprecated("If needed, use the Euribor365 class with an explicit tenor instead")]] Euribor365_2W : public Euribor365 {
204 public:
206 : Euribor365(Period(2, Weeks), h) {}
207 };
208
209 /*! \deprecated If needed, use the Euribor365 class with an explicit tenor instead.
210 Deprecated in version 1.35.
211 */
212 class [[deprecated("If needed, use the Euribor365 class with an explicit tenor instead")]] Euribor365_3W : public Euribor365 {
213 public:
215 : Euribor365(Period(3, Weeks), h) {}
216 };
217
218 /*! \deprecated If needed, use the Euribor365 class with an explicit tenor instead.
219 Deprecated in version 1.35.
220 */
221 class [[deprecated("If needed, use the Euribor365 class with an explicit tenor instead")]] Euribor365_1M : public Euribor365 {
222 public:
224 : Euribor365(Period(1, Months), h) {}
225 };
226
227 /*! \deprecated If needed, use the Euribor365 class with an explicit tenor instead.
228 Deprecated in version 1.35.
229 */
230 class [[deprecated("If needed, use the Euribor365 class with an explicit tenor instead")]] Euribor365_2M : public Euribor365 {
231 public:
233 : Euribor365(Period(2, Months), h) {}
234 };
235
236 /*! \deprecated If needed, use the Euribor365 class with an explicit tenor instead.
237 Deprecated in version 1.35.
238 */
239 class [[deprecated("If needed, use the Euribor365 class with an explicit tenor instead")]] Euribor365_3M : public Euribor365 {
240 public:
242 : Euribor365(Period(3, Months), h) {}
243 };
244
245 /*! \deprecated If needed, use the Euribor365 class with an explicit tenor instead.
246 Deprecated in version 1.35.
247 */
248 class [[deprecated("If needed, use the Euribor365 class with an explicit tenor instead")]] Euribor365_4M : public Euribor365 {
249 public:
251 : Euribor365(Period(4, Months), h) {}
252 };
253
254 /*! \deprecated If needed, use the Euribor365 class with an explicit tenor instead.
255 Deprecated in version 1.35.
256 */
257 class [[deprecated("If needed, use the Euribor365 class with an explicit tenor instead")]] Euribor365_5M : public Euribor365 {
258 public:
260 : Euribor365(Period(5, Months), h) {}
261 };
262
263 /*! \deprecated If needed, use the Euribor365 class with an explicit tenor instead.
264 Deprecated in version 1.35.
265 */
266 class [[deprecated("If needed, use the Euribor365 class with an explicit tenor instead")]] Euribor365_6M : public Euribor365 {
267 public:
269 : Euribor365(Period(6, Months), h) {}
270 };
271
272 /*! \deprecated If needed, use the Euribor365 class with an explicit tenor instead.
273 Deprecated in version 1.35.
274 */
275 class [[deprecated("If needed, use the Euribor365 class with an explicit tenor instead")]] Euribor365_7M : public Euribor365 {
276 public:
278 : Euribor365(Period(7, Months), h) {}
279 };
280
281 /*! \deprecated If needed, use the Euribor365 class with an explicit tenor instead.
282 Deprecated in version 1.35.
283 */
284 class [[deprecated("If needed, use the Euribor365 class with an explicit tenor instead")]] Euribor365_8M : public Euribor365 {
285 public:
287 : Euribor365(Period(8, Months), h) {}
288 };
289
290 /*! \deprecated If needed, use the Euribor365 class with an explicit tenor instead.
291 Deprecated in version 1.35.
292 */
293 class [[deprecated("If needed, use the Euribor365 class with an explicit tenor instead")]] Euribor365_9M : public Euribor365 {
294 public:
296 : Euribor365(Period(9, Months), h) {}
297 };
298
299 /*! \deprecated If needed, use the Euribor365 class with an explicit tenor instead.
300 Deprecated in version 1.35.
301 */
302 class [[deprecated("If needed, use the Euribor365 class with an explicit tenor instead")]] Euribor365_10M : public Euribor365 {
303 public:
305 : Euribor365(Period(10, Months), h) {}
306 };
307
308 /*! \deprecated If needed, use the Euribor365 class with an explicit tenor instead.
309 Deprecated in version 1.35.
310 */
311 class [[deprecated("If needed, use the Euribor365 class with an explicit tenor instead")]] Euribor365_11M : public Euribor365 {
312 public:
314 : Euribor365(Period(11, Months), h) {}
315 };
316
317 /*! \deprecated If needed, use the Euribor365 class with an explicit tenor instead.
318 Deprecated in version 1.35.
319 */
320 class [[deprecated("If needed, use the Euribor365 class with an explicit tenor instead")]] Euribor365_1Y : public Euribor365 {
321 public:
323 : Euribor365(Period(1, Years), h) {}
324 };
325
326}
327
328#endif
Euribor10M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:170
Euribor11M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:179
1-month Euribor index
Definition: euribor.hpp:91
Euribor1M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:93
1-week Euribor index
Definition: euribor.hpp:60
Euribor1W(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:62
1-year Euribor index
Definition: euribor.hpp:184
Euribor1Y(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:186
Euribor2M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:102
Euribor2W(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:77
Euribor365_10M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:304
Euribor365_11M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:313
Euribor365_1M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:223
Euribor365_1Y(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:322
Euribor365_2M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:232
Euribor365_2W(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:205
Euribor365_3M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:241
Euribor365_3W(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:214
Euribor365_4M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:250
Euribor365_5M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:259
Euribor365_6M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:268
Euribor365_7M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:277
Euribor365_8M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:286
Euribor365_9M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:295
Euribor365_SW(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:196
Actual/365 Euribor index.
Definition: euribor.hpp:53
3-months Euribor index
Definition: euribor.hpp:107
Euribor3M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:109
Euribor3W(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:86
Euribor4M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:118
Euribor5M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:127
6-months Euribor index
Definition: euribor.hpp:132
Euribor6M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:134
Euribor7M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:143
Euribor8M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:152
Euribor9M(const Handle< YieldTermStructure > &h={})
Definition: euribor.hpp:161
Euribor index
Definition: euribor.hpp:42
Shared handle to an observable.
Definition: handle.hpp:41
base class for Inter-Bank-Offered-Rate indexes (e.g. Libor, etc.)
Definition: iborindex.hpp:35
base class for Inter-Bank-Offered-Rate indexes
Definition: any.hpp:35
Euribor1W EuriborSW
Definition: euribor.hpp:70