products.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_products_hpp
25 #define qla_products_hpp
26 
27 #include <oh/libraryobject.hpp>
28 
29 #include <ql/types.hpp>
30 
31 namespace QuantLib {
32  class MarketModelMultiProduct;
33  class Payoff;
34 }
35 
36 namespace QuantLibAddin {
37 
38  class MarketModelMultiProduct : public ObjectHandler::LibraryObject<QuantLib::MarketModelMultiProduct> {
39  public:
40  std::string evolution() const;
41  protected:
42  OH_LIB_CTOR(MarketModelMultiProduct, QuantLib::MarketModelMultiProduct);
43  };
44 
45  OH_OBJ_CLASS(MarketModelComposite, MarketModelMultiProduct);
46 
47  class MultiProductComposite : public MarketModelComposite {
48  public:
50  const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
51  bool permanent);
52  };
53 
55  public:
57  const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
58  const std::vector<QuantLib::Time>& rateTimes,
59  const std::vector<QuantLib::Real>& accruals,
60  const std::vector<QuantLib::Time>& paymentTimes,
61  const std::vector<QuantLib::Rate>& strikes,
62  bool permanent);
63  };
64 
66  public:
68  const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
69  const std::vector<QuantLib::Time>& rateTimes,
70  const std::vector<QuantLib::Real>& accruals,
71  const std::vector<QuantLib::Time>& paymentTimes,
72  const std::vector<boost::shared_ptr<QuantLib::Payoff> >&,
73  bool permanent);
74  };
75 
77  public:
79  const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
80  const std::vector<QuantLib::Time>& rateTimes,
81  const std::vector<QuantLib::Real>& accruals,
82  const std::vector<QuantLib::Time>& paymentTimes,
83  QuantLib::Real gearingOfFloor,
84  QuantLib::Real gearingOfFixing,
85  QuantLib::Rate spreadOfFloor,
86  QuantLib::Rate spreadOfFixing,
87  QuantLib::Real initialFloor,
88  bool payer,
89  bool permanent);
90  };
91 }
92 
93 #endif
94 
MultiStepRatchet(const boost::shared_ptr< ObjectHandler::ValueObject > &properties, const std::vector< QuantLib::Time > &rateTimes, const std::vector< QuantLib::Real > &accruals, const std::vector< QuantLib::Time > &paymentTimes, QuantLib::Real gearingOfFloor, QuantLib::Real gearingOfFixing, QuantLib::Rate spreadOfFloor, QuantLib::Rate spreadOfFixing, QuantLib::Real initialFloor, bool payer, bool permanent)
Definition: products.hpp:47
Definition: products.hpp:54
OH_LIB_CTOR(MarketModelMultiProduct, QuantLib::MarketModelMultiProduct)
OH_OBJ_CLASS(OneAssetOption, Instrument)
MultiProductComposite(const boost::shared_ptr< ObjectHandler::ValueObject > &properties, bool permanent)
Definition: abcd.hpp:38
OneStepOptionlets(const boost::shared_ptr< ObjectHandler::ValueObject > &properties, const std::vector< QuantLib::Time > &rateTimes, const std::vector< QuantLib::Real > &accruals, const std::vector< QuantLib::Time > &paymentTimes, const std::vector< boost::shared_ptr< QuantLib::Payoff > > &, bool permanent)
Definition: products.hpp:65
Definition: abcd.hpp:30
Definition: products.hpp:38
Definition: products.hpp:76
OneStepForwards(const boost::shared_ptr< ObjectHandler::ValueObject > &properties, const std::vector< QuantLib::Time > &rateTimes, const std::vector< QuantLib::Real > &accruals, const std::vector< QuantLib::Time > &paymentTimes, const std::vector< QuantLib::Rate > &strikes, bool permanent)