shortratemodels.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) 2005 Eric Ehlers
5  Copyright (C) 2005 Aurelien Chanudet
6 
7  This file is part of QuantLib, a free-software/open-source library
8  for financial quantitative analysts and developers - http://quantlib.org/
9 
10  QuantLib is free software: you can redistribute it and/or modify it
11  under the terms of the QuantLib license. You should have received a
12  copy of the license along with this program; if not, please email
13  <quantlib-dev@lists.sf.net>. The license is also available online at
14  <http://quantlib.org/license.shtml>.
15 
16  This program is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
18  FOR A PARTICULAR PURPOSE. See the license for more details.
19 */
20 
21 #ifndef qla_shortratemodels_hpp
22 #define qla_shortratemodels_hpp
23 
24 #include <qlo/termstructures.hpp>
25 #include <qlo/models.hpp>
26 
27 #include <ql/types.hpp>
28 
29 namespace QuantLib {
30  template <class T>
31  class Handle;
32 
33  class AffineModel;
34  class OneFactorAffineModel;
35 
36 }
37 
38 namespace QuantLibAddin {
39 
40  OH_LIB_CLASS(AffineModel, QuantLib::AffineModel);
41 
42  //class ShortRateModel : public CalibratedModel {
43  //public:
44  // ShortRateModel(const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
45  // bool permanent);
46  //};
47 
48  //class OneFactorModel : public ShortRateModel {
49  //public:
50  // OneFactorModel(const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
51  // bool permanent);
52  //};
53 
54  class OneFactorAffineModel : public AffineModel {
55  //public OneFactorModel {
56  public:
57  OneFactorAffineModel(const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
58  bool permanent);
59 };
60 
61  class Vasicek : public OneFactorAffineModel {
62  public:
63  Vasicek(const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
64  QuantLib::Rate r0 = 0.05,
65  QuantLib::Real a = 0.1,
66  QuantLib::Real b = 0.05,
67  QuantLib::Real sigma = 0.01,
68  QuantLib::Real lambda = 0.0,
69  bool permanent = true);
70  };
71 
72  class HullWhite : public Vasicek {
73  public:
74  HullWhite(const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
76  QuantLib::Real a,
77  QuantLib::Real sigma,
78  bool permanent);
79  };
80 
81  class G2 : public AffineModel {
82  public:
83  G2(const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
85  QuantLib::Real a,
86  QuantLib::Real sigma,
87  QuantLib::Real b,
88  QuantLib::Real eta,
89  QuantLib::Real rho,
90  bool permanent);
91  };
92 }
93 
94 #endif
95 
Definition: basketlossmodels.hpp:32
Definition: shortratemodels.hpp:61
G2(const boost::shared_ptr< ObjectHandler::ValueObject > &properties, const QuantLib::Handle< QuantLib::YieldTermStructure > &termStructure, QuantLib::Real a, QuantLib::Real sigma, QuantLib::Real b, QuantLib::Real eta, QuantLib::Real rho, bool permanent)
OH_LIB_CLASS(AlphaForm, QuantLib::AlphaForm)
OneFactorAffineModel(const boost::shared_ptr< ObjectHandler::ValueObject > &properties, bool permanent)
Vasicek(const boost::shared_ptr< ObjectHandler::ValueObject > &properties, QuantLib::Rate r0=0.05, QuantLib::Real a=0.1, QuantLib::Real b=0.05, QuantLib::Real sigma=0.01, QuantLib::Real lambda=0.0, bool permanent=true)
HullWhite(const boost::shared_ptr< ObjectHandler::ValueObject > &properties, const QuantLib::Handle< QuantLib::YieldTermStructure > &hYTS, QuantLib::Real a, QuantLib::Real sigma, bool permanent)
Definition: shortratemodels.hpp:72
Definition: abcd.hpp:38
Definition: abcd.hpp:30
Definition: shortratemodels.hpp:81
Definition: shortratemodels.hpp:54