rangeaccrual.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 Giorgio Facchinetti
5 
6  This file is part of QuantLib, a free-software/open-source library
7  for financial quantitative analysts and developers - http://quantlib.org/
8 
9  QuantLib is free software: you can redistribute it and/or modify it under the
10  terms of the QuantLib license. You should have received a copy of the
11  license along with this program; if not, please email
12  <quantlib-dev@lists.sf.net>. The license is also available online at
13  <http://quantlib.org/license.shtml>.
14 
15  This program is distributed in the hope that it will be useful, but WITHOUT
16  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17  FOR A PARTICULAR PURPOSE. See the license for more details.
18 */
19 
20 #ifndef qla_rangeaccrual_hpp
21 #define qla_rangeaccrual_hpp
22 
23 #include <qlo/couponvectors.hpp>
24 
25 #include <ql/types.hpp>
26 
27 namespace QuantLib {
28  class RangeAccrualFloatersCoupon;
29  class IborIndex;
30  class SmileSection;
31 }
32 
33 namespace QuantLibAddin {
34  class RangeAccrualFloatersCoupon: public ObjectHandler::LibraryObject<QuantLib::RangeAccrualFloatersCoupon>{
35  public:
37  const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
38  QuantLib::Real nominal,
39  const QuantLib::Date& paymentDate,
40  const boost::shared_ptr<QuantLib::IborIndex>& index,
41  const QuantLib::Date& startDate,
42  const QuantLib::Date& endDate,
43  QuantLib::Integer fixingDays,
44  const QuantLib::DayCounter& dayCounter,
45  QuantLib::Real gearing,
46  QuantLib::Rate spread,
47  const QuantLib::Date& refPeriodStart,
48  const QuantLib::Date& refPeriodEnd,
49  const boost::shared_ptr<QuantLib::Schedule>& observationsSchedule,
50  QuantLib::Real lowerTrigger,
51  QuantLib::Real upperTrigger,
52  bool permanent);
54  const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
55  const QuantLib::Leg& rangeAccrualLeg,
56  QuantLib::Size i,
57  bool permanent);
58  };
59 
60  OH_OBJ_CLASS(RangeAccrualPricer, FloatingRateCouponPricer);
61 
62  class RangeAccrualPricerByBgm: public RangeAccrualPricer{
63  public:
65  const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
66  QuantLib::Real correlation,
67  const boost::shared_ptr<QuantLib::SmileSection>& smilesOnExpiry,
68  const boost::shared_ptr<QuantLib::SmileSection>& smilesOnPayment,
69  bool isClosedFormula,
70  bool byCallSpread,
71  bool permanent);
72  };
73 
74 }
75 
76 #endif
77 
std::vector< boost::shared_ptr< CashFlow > > Leg
Definition: flowanalysis.hpp:30
RangeAccrualPricerByBgm(const boost::shared_ptr< ObjectHandler::ValueObject > &properties, QuantLib::Real correlation, const boost::shared_ptr< QuantLib::SmileSection > &smilesOnExpiry, const boost::shared_ptr< QuantLib::SmileSection > &smilesOnPayment, bool isClosedFormula, bool byCallSpread, bool permanent)
RangeAccrualFloatersCoupon(const boost::shared_ptr< ObjectHandler::ValueObject > &properties, QuantLib::Real nominal, const QuantLib::Date &paymentDate, const boost::shared_ptr< QuantLib::IborIndex > &index, const QuantLib::Date &startDate, const QuantLib::Date &endDate, QuantLib::Integer fixingDays, const QuantLib::DayCounter &dayCounter, QuantLib::Real gearing, QuantLib::Rate spread, const QuantLib::Date &refPeriodStart, const QuantLib::Date &refPeriodEnd, const boost::shared_ptr< QuantLib::Schedule > &observationsSchedule, QuantLib::Real lowerTrigger, QuantLib::Real upperTrigger, bool permanent)
Definition: rangeaccrual.hpp:62
OH_OBJ_CLASS(OneAssetOption, Instrument)
Definition: abcd.hpp:38
Definition: rangeaccrual.hpp:34
Definition: abcd.hpp:30