Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
inflationcapfloorvolcurve.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2018 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/inflationcapfloorvolcurve.hpp
20 \brief Wrapper class for building YoY Inflation CapFloor volatility structures
21 \ingroup curves
22*/
23
24#pragma once
25
30
31#include <ql/termstructures/volatility/inflation/cpivolatilitystructure.hpp>
32#include <ql/termstructures/volatility/inflation/yoyinflationoptionletvolatilitystructure.hpp>
33
34namespace ore {
35namespace data {
37using QuantLib::Date;
38using QuantLib::IborIndex;
39using QuantLib::YieldTermStructure;
40
41//! Wrapper class for building CapFloor volatility structures
42//! \ingroup curves
44public:
48 map<string, QuantLib::ext::shared_ptr<YieldCurve>>& yieldCurves,
49 map<string, QuantLib::ext::shared_ptr<InflationCurve>>& inflationCurves);
50
51 //! \name Inspectors
52 //@{
54 //! Caplet/Floorlet curve or surface i.e. result of stripping
55 const QuantLib::ext::shared_ptr<QuantExt::YoYOptionletVolatilitySurface> yoyInflationCapFloorVolSurface() const {
56 return yoyVolSurface_;
57 }
58 const QuantLib::ext::shared_ptr<QuantLib::CPIVolatilitySurface> cpiInflationCapFloorVolSurface() const {
59 return cpiVolSurface_;
60 }
61
62 //@}
63private:
65 const QuantLib::ext::shared_ptr<InflationCapFloorVolatilityCurveConfig>& config,
66 map<string, QuantLib::ext::shared_ptr<YieldCurve>>& yieldCurves,
67 map<string, QuantLib::ext::shared_ptr<InflationCurve>>& inflationCurves);
69 const QuantLib::ext::shared_ptr<InflationCapFloorVolatilityCurveConfig>& config,
70 map<string, QuantLib::ext::shared_ptr<YieldCurve>>& yieldCurves,
71 map<string, QuantLib::ext::shared_ptr<InflationCurve>>& inflationCurves);
72
74 QuantLib::ext::shared_ptr<QuantExt::YoYOptionletVolatilitySurface> yoyVolSurface_;
75 QuantLib::ext::shared_ptr<QuantLib::CPIVolatilitySurface> cpiVolSurface_;
76 QuantLib::ext::shared_ptr<InflationTermStructure> surface_;
78 QuantLib::ext::shared_ptr<YoYInflationTermStructure> yoyTs_;
79 Handle<YieldTermStructure> discountCurve_;
80};
81} // namespace data
82} // namespace ore
Container class for all Curve Configurations.
const QuantLib::ext::shared_ptr< QuantExt::YoYOptionletVolatilitySurface > yoyInflationCapFloorVolSurface() const
Caplet/Floorlet curve or surface i.e. result of stripping.
QuantLib::ext::shared_ptr< InflationTermStructure > surface_
const InflationCapFloorVolatilityCurveSpec & spec() const
void buildFromVolatilities(Date asof, InflationCapFloorVolatilityCurveSpec spec, const Loader &loader, const QuantLib::ext::shared_ptr< InflationCapFloorVolatilityCurveConfig > &config, map< string, QuantLib::ext::shared_ptr< YieldCurve > > &yieldCurves, map< string, QuantLib::ext::shared_ptr< InflationCurve > > &inflationCurves)
InflationCapFloorVolatilityCurveSpec spec_
const QuantLib::ext::shared_ptr< QuantLib::CPIVolatilitySurface > cpiInflationCapFloorVolSurface() const
void buildFromPrices(Date asof, InflationCapFloorVolatilityCurveSpec spec, const Loader &loader, const QuantLib::ext::shared_ptr< InflationCapFloorVolatilityCurveConfig > &config, map< string, QuantLib::ext::shared_ptr< YieldCurve > > &yieldCurves, map< string, QuantLib::ext::shared_ptr< InflationCurve > > &inflationCurves)
QuantLib::ext::shared_ptr< QuantExt::YoYOptionletVolatilitySurface > yoyVolSurface_
QuantLib::ext::shared_ptr< YoYInflationTermStructure > yoyTs_
QuantLib::ext::shared_ptr< QuantLib::CPIVolatilitySurface > cpiVolSurface_
Inflation cap floor volatility description.
Definition: curvespec.hpp:331
Market data loader base class.
Definition: loader.hpp:47
Curve configuration repository.
Curve requirements specification.
inflation curve class
Market Datum Loader Interface.
@ data
Definition: log.hpp:77
Serializable Credit Default Swap.
Definition: namespaces.docs:23
vector< string > curveConfigs