QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.38
Loading...
Searching...
No Matches
eurlibor.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) 2007 Ferdinando Ametrano
5 Copyright (C) 2006, 2007 Chiara Fornarola
6 Copyright (C) 2000, 2001, 2002, 2003 RiskMap srl
7 Copyright (C) 2003, 2004, 2005, 2006 StatPro Italia srl
8
9 This file is part of QuantLib, a free-software/open-source library
10 for financial quantitative analysts and developers - http://quantlib.org/
11
12 QuantLib is free software: you can redistribute it and/or modify it
13 under the terms of the QuantLib license. You should have received a
14 copy of the license along with this program; if not, please email
15 <quantlib-dev@lists.sf.net>. The license is also available online at
16 <http://quantlib.org/license.shtml>.
17
18 This program is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
20 FOR A PARTICULAR PURPOSE. See the license for more details.
21*/
22
23/*! \file eurlibor.hpp
24 \brief %EUR %LIBOR rate
25*/
26
27#ifndef quantlib_eur_libor_hpp
28#define quantlib_eur_libor_hpp
29
31
32namespace QuantLib {
33
34 //! base class for all ICE %EUR %LIBOR indexes but the O/N
35 /*! Euro LIBOR fixed by ICE.
36
37 See <https://www.theice.com/marketdata/reports/170>.
38
39 \warning This is the rate fixed in London by BBA. Use Euribor if
40 you're interested in the fixing by the ECB.
41 */
42 class EURLibor : public IborIndex {
43 public:
44 EURLibor(const Period& tenor,
45 const Handle<YieldTermStructure>& h = {});
46 /*! \name Date calculations
47
48 See <https://www.theice.com/marketdata/reports/170>.
49 @{
50 */
51 Date fixingDate(const Date& valueDate) const override;
52 Date valueDate(const Date& fixingDate) const override;
53 Date maturityDate(const Date& valueDate) const override;
54 // @}
55 //! \name IborIndex interface
56 //@{
57 ext::shared_ptr<IborIndex> clone(const Handle<YieldTermStructure>& h) const override;
58 // @}
59 private:
61 };
62
63 //! base class for the one day deposit ICE %EUR %LIBOR indexes
64 /*! Euro O/N LIBOR fixed by ICE. It can be also used for T/N and S/N
65 indexes, even if such indexes do not have ICE fixing.
66
67 See <https://www.theice.com/marketdata/reports/170>.
68
69 \warning This is the rate fixed in London by ICE. Use Eonia if
70 you're interested in the fixing by the ECB.
71 */
73 public:
74 DailyTenorEURLibor(Natural settlementDays,
75 const Handle<YieldTermStructure>& h = {});
76 };
77
78 //! Overnight %EUR %Libor index
80 public:
81 explicit EURLiborON(const Handle<YieldTermStructure>& h = {})
82 : DailyTenorEURLibor(0, h) {}
83 };
84
85 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
86 Deprecated in version 1.35.
87 */
88 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLiborSW : public EURLibor {
89 public:
90 explicit EURLiborSW(const Handle<YieldTermStructure>& h = {})
91 : EURLibor(Period(1, Weeks), h) {}
92 };
93
94 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
95 Deprecated in version 1.35.
96 */
97 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLibor2W : public EURLibor {
98 public:
99 explicit EURLibor2W(const Handle<YieldTermStructure>& h = {})
100 : EURLibor(Period(2, Weeks), h) {}
101 };
102
103 //! 1-month %EUR %Libor index
104 class EURLibor1M : public EURLibor {
105 public:
107 : EURLibor(Period(1, Months), h) {}
108 };
109
110 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
111 Deprecated in version 1.35.
112 */
113 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLibor2M : public EURLibor {
114 public:
116 : EURLibor(Period(2, Months), h) {}
117 };
118
119 //! 3-months %EUR %Libor index
120 class EURLibor3M : public EURLibor {
121 public:
123 : EURLibor(Period(3, Months), h) {}
124 };
125
126 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
127 Deprecated in version 1.35.
128 */
129 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLibor4M : public EURLibor {
130 public:
132 : EURLibor(Period(4, Months), h) {}
133 };
134
135 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
136 Deprecated in version 1.35.
137 */
138 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLibor5M : public EURLibor {
139 public:
141 : EURLibor(Period(5, Months), h) {}
142 };
143
144 //! 6-months %EUR %Libor index
145 class EURLibor6M : public EURLibor {
146 public:
148 : EURLibor(Period(6, Months), h) {}
149 };
150
151 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
152 Deprecated in version 1.35.
153 */
154 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLibor7M : public EURLibor{
155 public:
157 : EURLibor(Period(7, Months), h) {}
158 };
159
160 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
161 Deprecated in version 1.35.
162 */
163 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLibor8M : public EURLibor {
164 public:
166 : EURLibor(Period(8, Months), h) {}
167 };
168
169 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
170 Deprecated in version 1.35.
171 */
172 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLibor9M : public EURLibor {
173 public:
175 : EURLibor(Period(9, Months), h) {}
176 };
177
178 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
179 Deprecated in version 1.35.
180 */
181 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLibor10M : public EURLibor {
182 public:
184 : EURLibor(Period(10, Months), h) {}
185 };
186
187 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
188 Deprecated in version 1.35.
189 */
190 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLibor11M : public EURLibor {
191 public:
193 : EURLibor(Period(11, Months), h) {}
194 };
195
196 //! 1-year %EUR %Libor index
197 class EURLibor1Y : public EURLibor {
198 public:
200 : EURLibor(Period(1, Years), h) {}
201 };
202
203
204}
205
206#endif
calendar class
Definition: calendar.hpp:61
base class for the one day deposit ICE EUR LIBOR indexes
Definition: eurlibor.hpp:72
Concrete date class.
Definition: date.hpp:125
EURLibor10M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:183
EURLibor11M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:192
1-month EUR Libor index
Definition: eurlibor.hpp:104
EURLibor1M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:106
1-year EUR Libor index
Definition: eurlibor.hpp:197
EURLibor1Y(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:199
EURLibor2M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:115
EURLibor2W(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:99
3-months EUR Libor index
Definition: eurlibor.hpp:120
EURLibor3M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:122
EURLibor4M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:131
EURLibor5M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:140
6-months EUR Libor index
Definition: eurlibor.hpp:145
EURLibor6M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:147
EURLibor7M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:156
EURLibor8M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:165
EURLibor9M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:174
base class for all ICE EUR LIBOR indexes but the O/N
Definition: eurlibor.hpp:42
Date valueDate(const Date &fixingDate) const override
Definition: eurlibor.cpp:85
Calendar target_
Definition: eurlibor.hpp:60
Date maturityDate(const Date &valueDate) const override
Definition: eurlibor.cpp:96
ext::shared_ptr< IborIndex > clone(const Handle< YieldTermStructure > &h) const override
returns a copy of itself linked to a different forwarding curve
Definition: eurlibor.cpp:103
Date fixingDate(const Date &valueDate) const override
Definition: eurlibor.cpp:79
Overnight EUR Libor index.
Definition: eurlibor.hpp:79
EURLiborON(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:81
EURLiborSW(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:90
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
unsigned QL_INTEGER Natural
positive integer
Definition: types.hpp:43
base class for Inter-Bank-Offered-Rate indexes
Definition: any.hpp:37