volatilities.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) 2007, 2010 Ferdinando Ametrano
5  Copyright (C) 2005, 2006 Eric Ehlers
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_volatilities_hpp
22 #define qla_volatilities_hpp
23 
24 #include <qlo/termstructures.hpp>
25 #include <qlo/smilesection.hpp>
26 #include <ql/time/businessdayconvention.hpp>
27 #include <ql/types.hpp>
28 
29 namespace QuantLib {
30  class BlackAtmVolCurve;
31  class BlackVolTermStructure;
32  class Calendar;
33  class Date;
34  class DayCounter;
35  class InterestRateIndex;
36  class Matrix;
37  class Period;
38  class SabrVolSurface;
39 }
40 
41 namespace QuantLibAddin {
42 
43  class BlackConstantVol : public BlackVolTermStructure {
44  public:
46  const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
47  const QuantLib::Date& settlementDate,
48  const QuantLib::Calendar& cal,
49  QuantLib::Volatility volatility,
50  const QuantLib::DayCounter& dayCounter,
51  bool permanent);
52  };
53 
54  class BlackVarianceSurface : public BlackVolTermStructure {
55  public:
57  const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
58  const QuantLib::Date& settlementDate,
59  const QuantLib::Calendar& cal,
60  const std::vector<QuantLib::Date>& dates,
61  const std::vector<QuantLib::Rate>& strikes,
62  const QuantLib::Matrix& vols,
63  const QuantLib::DayCounter& dayCounter,
64  bool permanent);
65  };
66 
67  class AbcdAtmVolCurve: public BlackAtmVolCurve {
68  public:
70  const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
71  QuantLib::Natural settlementDays,
72  const QuantLib::Calendar& cal,
73  const std::vector<QuantLib::Period>& optionTenors,
74  const std::vector<QuantLib::Handle<QuantLib::Quote> > & volatilities,
75  const std::vector<bool> inclusionInInterpolationFlag,
76  QuantLib::BusinessDayConvention bdc,
77  const QuantLib::DayCounter& dc,
78  bool permanent);
79  };
80 
81  class SabrVolSurface : public InterestRateVolSurface {
82  public:
84  const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
85  const boost::shared_ptr<QuantLib::InterestRateIndex>& index,
87  const std::vector<QuantLib::Period>& optionTenors,
88  const std::vector<QuantLib::Spread>& atmRateSpreads,
89  const std::vector<std::vector<QuantLib::Handle<QuantLib::Quote> > >& volSpreads,
90  bool permanent);
91  std::string atmCurve();
92  };
93 
94  class SabrSmileSectionImpl : public SmileSection {
95  public:
97  const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
99  const QuantLib::Time& time,
100  bool permanent);
101  };
102 }
103 
104 #endif
AbcdAtmVolCurve(const boost::shared_ptr< ObjectHandler::ValueObject > &properties, QuantLib::Natural settlementDays, const QuantLib::Calendar &cal, const std::vector< QuantLib::Period > &optionTenors, const std::vector< QuantLib::Handle< QuantLib::Quote > > &volatilities, const std::vector< bool > inclusionInInterpolationFlag, QuantLib::BusinessDayConvention bdc, const QuantLib::DayCounter &dc, bool permanent)
SabrSmileSectionImpl(const boost::shared_ptr< ObjectHandler::ValueObject > &properties, const QuantLib::Handle< QuantLib::SabrVolSurface > &sabrVol, const QuantLib::Time &time, bool permanent)
SabrVolSurface(const boost::shared_ptr< ObjectHandler::ValueObject > &properties, const boost::shared_ptr< QuantLib::InterestRateIndex > &index, const QuantLib::Handle< QuantLib::BlackAtmVolCurve > &blackAtmCurve, const std::vector< QuantLib::Period > &optionTenors, const std::vector< QuantLib::Spread > &atmRateSpreads, const std::vector< std::vector< QuantLib::Handle< QuantLib::Quote > > > &volSpreads, bool permanent)
Definition: volatilities.hpp:43
Definition: volatilities.hpp:81
BlackVarianceSurface(const boost::shared_ptr< ObjectHandler::ValueObject > &properties, const QuantLib::Date &settlementDate, const QuantLib::Calendar &cal, const std::vector< QuantLib::Date > &dates, const std::vector< QuantLib::Rate > &strikes, const QuantLib::Matrix &vols, const QuantLib::DayCounter &dayCounter, bool permanent)
Definition: volatilities.hpp:94
Definition: volatilities.hpp:67
BlackConstantVol(const boost::shared_ptr< ObjectHandler::ValueObject > &properties, const QuantLib::Date &settlementDate, const QuantLib::Calendar &cal, QuantLib::Volatility volatility, const QuantLib::DayCounter &dayCounter, bool permanent)
Definition: abcd.hpp:38
Definition: abcd.hpp:30
Definition: volatilities.hpp:54