ctsmmcapletcalibration.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) 2006, 2007 Ferdinando Ametrano
5  Copyright (C) 2007 Chiara Fornarola
6  Copyright (C) 2006, 2007 Marco Bianchetti
7  Copyright (C) 2006, 2007 Cristina Duminuco
8  Copyright (C) 2006, 2007 Giorgio Facchinetti
9 
10  This file is part of QuantLib, a free-software/open-source library
11  for financial quantitative analysts and developers - http://quantlib.org/
12 
13  QuantLib is free software: you can redistribute it and/or modify it
14  under the terms of the QuantLib license. You should have received a
15  copy of the license along with this program; if not, please email
16  <quantlib-dev@lists.sf.net>. The license is also available online at
17  <http://quantlib.org/license.shtml>.
18 
19  This program is distributed in the hope that it will be useful, but WITHOUT
20  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
21  FOR A PARTICULAR PURPOSE. See the license for more details.
22 */
23 
24 #ifndef qla_ctsmmcapletcalibration_hpp
25 #define qla_ctsmmcapletcalibration_hpp
26 
27 #include <oh/libraryobject.hpp>
28 
29 #include <ql/types.hpp>
30 
31 namespace QuantLib {
32  class CTSMMCapletCalibration;
33  class PiecewiseConstantCorrelation;
34  class EvolutionDescription;
35  class PiecewiseConstantVariance;
36  class CurveState;
37  class AlphaForm;
38 }
39 
40 namespace QuantLibAddin {
41 
42  OH_LIB_CLASS(CTSMMCapletCalibration, QuantLib::CTSMMCapletCalibration);
43 
44  class CTSMMCapletOriginalCalibration : public CTSMMCapletCalibration {
45  public:
47  const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
48  const QuantLib::EvolutionDescription& evolution,
49  const boost::shared_ptr<QuantLib::PiecewiseConstantCorrelation>& corr,
50  const std::vector<boost::shared_ptr<QuantLib::PiecewiseConstantVariance> >& swapVariances,
51  const std::vector<QuantLib::Volatility>& capletVols,
52  const boost::shared_ptr<QuantLib::CurveState>& cs,
53  QuantLib::Spread displacement,
54  const std::vector<QuantLib::Real>& alpha,
55  bool lowestRoot,
56  bool useFullApprox,
57  bool permanent);
58  };
59 
60  class CTSMMCapletAlphaFormCalibration : public CTSMMCapletCalibration {
61  public:
63  const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
64  const QuantLib::EvolutionDescription& evolution,
65  const boost::shared_ptr<QuantLib::PiecewiseConstantCorrelation>& corr,
66  const std::vector<boost::shared_ptr<QuantLib::PiecewiseConstantVariance> >& swapVariances,
67  const std::vector<QuantLib::Volatility>& capletVols,
68  const boost::shared_ptr<QuantLib::CurveState>& cs,
69  QuantLib::Spread displacement,
70  const std::vector<QuantLib::Real>& alphaInitial,
71  const std::vector<QuantLib::Real>& alphaMax,
72  const std::vector<QuantLib::Real>& alphaMin,
73  bool maximizeHomogeneity,
74  boost::shared_ptr<QuantLib::AlphaForm>& parametricForm,
75  bool permanent);
76  };
77 
78  class CTSMMCapletMaxHomogeneityCalibration : public CTSMMCapletCalibration {
79  public:
81  const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
82  const QuantLib::EvolutionDescription& evolution,
83  const boost::shared_ptr<QuantLib::PiecewiseConstantCorrelation>& corr,
84  const std::vector<boost::shared_ptr<QuantLib::PiecewiseConstantVariance> >& swapVariances,
85  const std::vector<QuantLib::Volatility>& capletVols,
86  const boost::shared_ptr<QuantLib::CurveState>& cs,
87  QuantLib::Spread displacement,
88  QuantLib::Real caplet0Swaption1Priority,
89  bool permanent);
90  };
91 
92 
93  }
94 
95 #endif
96 
CTSMMCapletOriginalCalibration(const boost::shared_ptr< ObjectHandler::ValueObject > &properties, const QuantLib::EvolutionDescription &evolution, const boost::shared_ptr< QuantLib::PiecewiseConstantCorrelation > &corr, const std::vector< boost::shared_ptr< QuantLib::PiecewiseConstantVariance > > &swapVariances, const std::vector< QuantLib::Volatility > &capletVols, const boost::shared_ptr< QuantLib::CurveState > &cs, QuantLib::Spread displacement, const std::vector< QuantLib::Real > &alpha, bool lowestRoot, bool useFullApprox, bool permanent)
Definition: ctsmmcapletcalibration.hpp:44
CTSMMCapletMaxHomogeneityCalibration(const boost::shared_ptr< ObjectHandler::ValueObject > &properties, const QuantLib::EvolutionDescription &evolution, const boost::shared_ptr< QuantLib::PiecewiseConstantCorrelation > &corr, const std::vector< boost::shared_ptr< QuantLib::PiecewiseConstantVariance > > &swapVariances, const std::vector< QuantLib::Volatility > &capletVols, const boost::shared_ptr< QuantLib::CurveState > &cs, QuantLib::Spread displacement, QuantLib::Real caplet0Swaption1Priority, bool permanent)
OH_LIB_CLASS(AlphaForm, QuantLib::AlphaForm)
CTSMMCapletAlphaFormCalibration(const boost::shared_ptr< ObjectHandler::ValueObject > &properties, const QuantLib::EvolutionDescription &evolution, const boost::shared_ptr< QuantLib::PiecewiseConstantCorrelation > &corr, const std::vector< boost::shared_ptr< QuantLib::PiecewiseConstantVariance > > &swapVariances, const std::vector< QuantLib::Volatility > &capletVols, const boost::shared_ptr< QuantLib::CurveState > &cs, QuantLib::Spread displacement, const std::vector< QuantLib::Real > &alphaInitial, const std::vector< QuantLib::Real > &alphaMax, const std::vector< QuantLib::Real > &alphaMin, bool maximizeHomogeneity, boost::shared_ptr< QuantLib::AlphaForm > &parametricForm, bool permanent)
Definition: abcd.hpp:38
Definition: ctsmmcapletcalibration.hpp:78
Definition: abcd.hpp:30
Definition: ctsmmcapletcalibration.hpp:60