Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
inflationcurve.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2016 Quaternion Risk Management Ltd
3 All rights reserved.
4
5 This file is part of ORE, a free-software/open-source library
6 for transparent pricing and risk analysis - http://opensourcerisk.org
7
8 ORE is free software: you can redistribute it and/or modify it
9 under the terms of the Modified BSD License. You should have received a
10 copy of the license along with this program.
11 The license is also available online at <http://opensourcerisk.org>
12
13 This program is distributed on the basis that it will form a useful
14 contribution to risk analytics and model standardisation, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 FITNESS FOR A PARTICULAR PURPOSE. See the license for more details.
17*/
18
19/*! \file ored/marketdata/inflationcurve.hpp
20 \brief inflation curve class
21 \ingroup curves
22*/
23
24#pragma once
25
26#include <ql/termstructures/inflation/inflationhelpers.hpp>
27#include <ql/termstructures/inflationtermstructure.hpp>
28
35
36namespace ore {
37namespace data {
40using QuantLib::Date;
41using QuantLib::InflationTermStructure;
42using namespace data;
43
44//! Wrapper class for building inflation curves
45/*!
46 \ingroup curves
47*/
49public:
52 map<string, QuantLib::ext::shared_ptr<YieldCurve>>& yieldCurves, const bool buildCalibrationInfo);
53
54 //! getters
55 const InflationCurveSpec& spec() const { return spec_; }
56
57 const QuantLib::ext::shared_ptr<InflationTermStructure> inflationTermStructure() const { return curve_; }
58
59 const bool interpolatedIndex() const { return interpolatedIndex_; }
60
61 QuantLib::ext::shared_ptr<InflationCurveCalibrationInfo> calibrationInfo() const { return calibrationInfo_; }
62
63private:
65 QuantLib::ext::shared_ptr<InflationTermStructure> curve_;
67 QuantLib::ext::shared_ptr<InflationCurveCalibrationInfo> calibrationInfo_;
68};
69
70/*! Given an \p asof and inflation swap \p convention, determine the start date of an inflation swap.
71
72 In general, this just returns the \p asof. If the \p convention has a publication roll and a publication schedule,
73 the swap start date will be generated according to this schedule.
74*/
75QuantLib::Date getInflationSwapStart(const Date& asof, const InflationSwapConvention& convention);
76
77} // namespace data
78} // namespace ore
Repository for currency dependent market conventions.
Container class for all Curve Configurations.
Wrapper class for building inflation curves.
InflationCurveSpec spec_
QuantLib::ext::shared_ptr< InflationCurveCalibrationInfo > calibrationInfo_
QuantLib::ext::shared_ptr< InflationTermStructure > curve_
const InflationCurveSpec & spec() const
getters
const QuantLib::ext::shared_ptr< InflationTermStructure > inflationTermStructure() const
const bool interpolatedIndex() const
QuantLib::ext::shared_ptr< InflationCurveCalibrationInfo > calibrationInfo() const
Inflation curve description.
Definition: curvespec.hpp:314
Market data loader base class.
Definition: loader.hpp:47
Currency and instrument specific conventions/defaults.
Curve configuration repository.
Curve requirements specification.
Market Datum Loader Interface.
@ data
Definition: log.hpp:77
QuantLib::Date getInflationSwapStart(const Date &asof, const InflationSwapConvention &convention)
Serializable Credit Default Swap.
Definition: namespaces.docs:23
vector< string > curveConfigs
a container holding information on calibration results during the t0 market build
Wrapper class for QuantLib term structures.