QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
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 valueDate(const Date& fixingDate) const override;
52 Date maturityDate(const Date& valueDate) const override;
53 // @}
54 private:
56 };
57
58 //! base class for the one day deposit ICE %EUR %LIBOR indexes
59 /*! Euro O/N LIBOR fixed by ICE. It can be also used for T/N and S/N
60 indexes, even if such indexes do not have ICE fixing.
61
62 See <https://www.theice.com/marketdata/reports/170>.
63
64 \warning This is the rate fixed in London by ICE. Use Eonia if
65 you're interested in the fixing by the ECB.
66 */
68 public:
69 DailyTenorEURLibor(Natural settlementDays,
70 const Handle<YieldTermStructure>& h = {});
71 };
72
73 //! Overnight %EUR %Libor index
75 public:
76 explicit EURLiborON(const Handle<YieldTermStructure>& h = {})
77 : DailyTenorEURLibor(0, h) {}
78 };
79
80 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
81 Deprecated in version 1.35.
82 */
83 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLiborSW : public EURLibor {
84 public:
85 explicit EURLiborSW(const Handle<YieldTermStructure>& h = {})
86 : EURLibor(Period(1, Weeks), h) {}
87 };
88
89 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
90 Deprecated in version 1.35.
91 */
92 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLibor2W : public EURLibor {
93 public:
94 explicit EURLibor2W(const Handle<YieldTermStructure>& h = {})
95 : EURLibor(Period(2, Weeks), h) {}
96 };
97
98 //! 1-month %EUR %Libor index
99 class EURLibor1M : public EURLibor {
100 public:
102 : EURLibor(Period(1, Months), h) {}
103 };
104
105 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
106 Deprecated in version 1.35.
107 */
108 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLibor2M : public EURLibor {
109 public:
111 : EURLibor(Period(2, Months), h) {}
112 };
113
114 //! 3-months %EUR %Libor index
115 class EURLibor3M : public EURLibor {
116 public:
118 : EURLibor(Period(3, Months), h) {}
119 };
120
121 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
122 Deprecated in version 1.35.
123 */
124 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLibor4M : public EURLibor {
125 public:
127 : EURLibor(Period(4, Months), h) {}
128 };
129
130 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
131 Deprecated in version 1.35.
132 */
133 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLibor5M : public EURLibor {
134 public:
136 : EURLibor(Period(5, Months), h) {}
137 };
138
139 //! 6-months %EUR %Libor index
140 class EURLibor6M : public EURLibor {
141 public:
143 : EURLibor(Period(6, Months), h) {}
144 };
145
146 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
147 Deprecated in version 1.35.
148 */
149 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLibor7M : public EURLibor{
150 public:
152 : EURLibor(Period(7, Months), h) {}
153 };
154
155 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
156 Deprecated in version 1.35.
157 */
158 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLibor8M : public EURLibor {
159 public:
161 : EURLibor(Period(8, Months), h) {}
162 };
163
164 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
165 Deprecated in version 1.35.
166 */
167 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLibor9M : public EURLibor {
168 public:
170 : EURLibor(Period(9, Months), h) {}
171 };
172
173 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
174 Deprecated in version 1.35.
175 */
176 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLibor10M : public EURLibor {
177 public:
179 : EURLibor(Period(10, Months), h) {}
180 };
181
182 /*! \deprecated If needed, use the EURLibor class with an explicit tenor instead.
183 Deprecated in version 1.35.
184 */
185 class [[deprecated("If needed, use the EURLibor class with an explicit tenor instead")]] EURLibor11M : public EURLibor {
186 public:
188 : EURLibor(Period(11, Months), h) {}
189 };
190
191 //! 1-year %EUR %Libor index
192 class EURLibor1Y : public EURLibor {
193 public:
195 : EURLibor(Period(1, Years), h) {}
196 };
197
198
199}
200
201#endif
calendar class
Definition: calendar.hpp:61
base class for the one day deposit ICE EUR LIBOR indexes
Definition: eurlibor.hpp:67
Concrete date class.
Definition: date.hpp:125
EURLibor10M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:178
EURLibor11M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:187
1-month EUR Libor index
Definition: eurlibor.hpp:99
EURLibor1M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:101
1-year EUR Libor index
Definition: eurlibor.hpp:192
EURLibor1Y(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:194
EURLibor2M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:110
EURLibor2W(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:94
3-months EUR Libor index
Definition: eurlibor.hpp:115
EURLibor3M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:117
EURLibor4M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:126
EURLibor5M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:135
6-months EUR Libor index
Definition: eurlibor.hpp:140
EURLibor6M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:142
EURLibor7M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:151
EURLibor8M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:160
EURLibor9M(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:169
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:79
Calendar target_
Definition: eurlibor.hpp:55
Date maturityDate(const Date &valueDate) const override
Definition: eurlibor.cpp:90
Overnight EUR Libor index.
Definition: eurlibor.hpp:74
EURLiborON(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:76
EURLiborSW(const Handle< YieldTermStructure > &h={})
Definition: eurlibor.hpp:85
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
Date fixingDate(const Date &valueDate) const
unsigned QL_INTEGER Natural
positive integer
Definition: types.hpp:43
base class for Inter-Bank-Offered-Rate indexes
Definition: any.hpp:35