QuantLib: a free/open-source library for quantitative finance
Fully annotated sources - version 1.32
Loading...
Searching...
No Matches
seasonality.hpp
1/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
3/*
4 Copyright (C) 2008 Piero Del Boca
5 Copyright (C) 2009 Chris Kenyon
6 Copyright (C) 2015 Bernd Lewerenz
7
8 This file is part of QuantLib, a free-software/open-source library
9 for financial quantitative analysts and developers - http://quantlib.org/
10
11 QuantLib is free software: you can redistribute it and/or modify it
12 under the terms of the QuantLib license. You should have received a
13 copy of the license along with this program; if not, please email
14 <quantlib-dev@lists.sf.net>. The license is also available online at
15 <http://quantlib.org/license.shtml>.
16
17 This program is distributed in the hope that it will be useful, but WITHOUT
18 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
19 FOR A PARTICULAR PURPOSE. See the license for more details.
20 */
21
22#ifndef quantlib_seasonality_hpp
23#define quantlib_seasonality_hpp
24
25#include <ql/time/daycounter.hpp>
26#include <ql/time/frequency.hpp>
27#include <ql/shared_ptr.hpp>
28#include <vector>
29
30namespace QuantLib {
31
32 class InflationTermStructure;
33
35
56
57 public:
58
60
61 virtual Rate
62 correctZeroRate(const Date& d, Rate r, const InflationTermStructure& iTS) const = 0;
63 virtual Rate
64 correctYoYRate(const Date& d, Rate r, const InflationTermStructure& iTS) const = 0;
75 virtual bool isConsistent(const InflationTermStructure& iTS) const;
77
78 virtual ~Seasonality() = default;
79 };
80
82
120
121 private:
124 std::vector<Rate> seasonalityFactors_;
125
126 public:
127
128 //Constructors
129 //
131
134 const std::vector<Rate>& seasonalityFactors);
135
136 virtual void set(const Date& seasonalityBaseDate,
138 const std::vector<Rate>& seasonalityFactors);
139
141
142 virtual Date seasonalityBaseDate() const;
143 virtual Frequency frequency() const;
144 virtual std::vector<Rate> seasonalityFactors() const;
146 virtual Rate seasonalityFactor(const Date &d) const;
148
150
151 Rate correctZeroRate(const Date& d,
152 Rate r,
153 const InflationTermStructure& iTS) const override;
154 Rate
155 correctYoYRate(const Date& d, Rate r, const InflationTermStructure& iTS) const override;
156 bool isConsistent(const InflationTermStructure& iTS) const override;
158
159 //Destructor
161 ;
162
163 protected:
164 virtual void validate() const;
165 virtual Rate seasonalityCorrection(Rate r, const Date &d, const DayCounter &dc,
166 const Date &curveBaseDate, bool isZeroRate) const;
167 };
168
169
171 public:
173 const std::vector<Rate>& seasonalityFactors)
176
177 /*Rate correctZeroRate(const Date &d, const Rate r,
178 const InflationTermStructure& iTS) const;*/
179 Real seasonalityFactor(const Date& to) const override;
180
181 protected:
183 const Date& atDate,
184 const DayCounter& dc,
185 const Date& curveBaseDate,
186 bool isZeroRate) const override;
187 };
188
189} // end of namespace QuantLib
190
191#endif
192
Concrete date class.
Definition: date.hpp:125
day counter class
Definition: daycounter.hpp:44
Interface for inflation term structures.
Rate seasonalityCorrection(Rate rate, const Date &atDate, const DayCounter &dc, const Date &curveBaseDate, bool isZeroRate) const override
Real seasonalityFactor(const Date &to) const override
The factor returned is NOT normalized relative to ANYTHING.
KerkhofSeasonality(const Date &seasonalityBaseDate, const std::vector< Rate > &seasonalityFactors)
Multiplicative seasonality in the price index (CPI/RPI/HICP/etc).
virtual std::vector< Rate > seasonalityFactors() const
virtual Date seasonalityBaseDate() const
inspectors
Rate correctYoYRate(const Date &d, Rate r, const InflationTermStructure &iTS) const override
Rate correctZeroRate(const Date &d, Rate r, const InflationTermStructure &iTS) const override
virtual Rate seasonalityCorrection(Rate r, const Date &d, const DayCounter &dc, const Date &curveBaseDate, bool isZeroRate) const
virtual void set(const Date &seasonalityBaseDate, Frequency frequency, const std::vector< Rate > &seasonalityFactors)
Definition: seasonality.cpp:97
~MultiplicativePriceSeasonality() override=default
virtual Frequency frequency() const
virtual Rate seasonalityFactor(const Date &d) const
The factor returned is NOT normalized relative to ANYTHING.
bool isConsistent(const InflationTermStructure &iTS) const override
Definition: seasonality.cpp:64
A transformation of an existing inflation swap rate.
Definition: seasonality.hpp:55
virtual Rate correctZeroRate(const Date &d, Rate r, const InflationTermStructure &iTS) const =0
virtual ~Seasonality()=default
virtual bool isConsistent(const InflationTermStructure &iTS) const
Definition: seasonality.cpp:29
virtual Rate correctYoYRate(const Date &d, Rate r, const InflationTermStructure &iTS) const =0
Frequency
Frequency of events.
Definition: frequency.hpp:37
@ Monthly
once a month
Definition: frequency.hpp:44
QL_REAL Real
real number
Definition: types.hpp:50
Real Rate
interest rates
Definition: types.hpp:70
Definition: any.hpp:35