Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
correlationcurve.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2019 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/swaptionvolcurve.hpp
20 \brief Wrapper class for building Swaption volatility structures
21 \ingroup curves
22*/
23
24#pragma once
25
35
36namespace ore {
37namespace data {
39using QuantLib::Date;
40
41//! Wrapper class for building correlation structures
42/*!
43 \ingroup curves
44*/
46public:
47 //! \name Constructors
48 //@{
49 //! Default constructor
51 //! Detailed constructor
52 CorrelationCurve(Date asof, CorrelationCurveSpec spec, const Loader& loader,
53 const CurveConfigurations& curveConfigs, map<string, QuantLib::ext::shared_ptr<SwapIndex>>& swapIndices,
54 map<string, QuantLib::ext::shared_ptr<YieldCurve>>& yieldCurves,
55 map<string, QuantLib::ext::shared_ptr<GenericYieldVolCurve>>& swaptionVolCurves);
56 //@}
57
58 //! \name Inspectors
59 //@{
60 const CorrelationCurveSpec& spec() const { return spec_; }
61
62 const QuantLib::ext::shared_ptr<QuantExt::CorrelationTermStructure>& corrTermStructure() { return corr_; }
63 //@}
64private:
65 void calibrateCMSSpreadCorrelations(const QuantLib::ext::shared_ptr<CorrelationCurveConfig>& config, Date asof,
66 const vector<Handle<Quote>>& prices, vector<Handle<Quote>>& quotes,
67 QuantLib::ext::shared_ptr<QuantExt::CorrelationTermStructure>& curve,
68 map<string, QuantLib::ext::shared_ptr<SwapIndex>>& swapIndices,
69 map<string, QuantLib::ext::shared_ptr<YieldCurve>>& yieldCurves,
70 map<string, QuantLib::ext::shared_ptr<GenericYieldVolCurve>>& swaptionVolCurves);
72 QuantLib::ext::shared_ptr<QuantExt::CorrelationTermStructure> corr_;
73
74 //! Calibration cost function class
76 friend class CalibrationFunction;
77};
78} // namespace data
79} // namespace ore
Build optionlet volatility structures from cap floor configurations.
Wrapper class for building correlation structures.
CorrelationCurveSpec spec_
const QuantLib::ext::shared_ptr< QuantExt::CorrelationTermStructure > & corrTermStructure()
const CorrelationCurveSpec & spec() const
QuantLib::ext::shared_ptr< QuantExt::CorrelationTermStructure > corr_
CorrelationCurve()
Default constructor.
void calibrateCMSSpreadCorrelations(const QuantLib::ext::shared_ptr< CorrelationCurveConfig > &config, Date asof, const vector< Handle< Quote > > &prices, vector< Handle< Quote > > &quotes, QuantLib::ext::shared_ptr< QuantExt::CorrelationTermStructure > &curve, map< string, QuantLib::ext::shared_ptr< SwapIndex > > &swapIndices, map< string, QuantLib::ext::shared_ptr< YieldCurve > > &yieldCurves, map< string, QuantLib::ext::shared_ptr< GenericYieldVolCurve > > &swaptionVolCurves)
Correlation curve description.
Definition: curvespec.hpp:467
Container class for all Curve Configurations.
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
Serializable Credit Default Swap.
Definition: namespaces.docs:23
Wrapper class for building Swaption volatility structures.
vector< string > curveConfigs
Wrapper class for QuantLib term structures.