QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
equityfxvolsurface.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) 2002, 2003 Ferdinando Ametrano
5 Copyright (C) 2003, 2004, 2005, 2006 StatPro Italia srl
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/*! \file equityfxvolsurface.hpp
22 \brief Equity/FX vol (smile) surface
23*/
24
25#ifndef quantlib_equity_fx_vol_surface_hpp
26#define quantlib_equity_fx_vol_surface_hpp
27
29
30namespace QuantLib {
31
32 //! Equity/FX volatility (smile) surface
33 /*! This abstract class defines the interface of concrete
34 Equity/FX volatility (smile) surfaces which will
35 be derived from this one.
36
37 Volatilities are assumed to be expressed on an annual basis.
38
39 It's only in absence of smile that the concept of (at-the-money)
40 forward volatility makes sense.
41 */
43 public:
44 /*! \name Constructors
45 See the TermStructure documentation for issues regarding
46 constructors.
47 */
48 //@{
49 //! default constructor
50 /*! \warning term structures initialized by means of this
51 constructor must manage their own reference date
52 by overriding the referenceDate() method.
53 */
55 const DayCounter& dc = DayCounter());
56 //! initialize with a fixed reference date
58 const Calendar& cal = Calendar(),
60 const DayCounter& dc = DayCounter());
61 //! calculate the reference date based on the global evaluation date
63 const Calendar&,
65 const DayCounter& dc = DayCounter());
66 //@}
67 //! \name Black Volatility
68 //@{
69 //! forward (at-the-money) volatility
70 Volatility atmForwardVol(const Date& date1,
71 const Date& date2,
72 bool extrapolate = false) const;
73 //! forward (at-the-money) volatility
75 Time time2,
76 bool extrapolate = false) const;
77 //! forward (at-the-money) variance
78 Real atmForwardVariance(const Date& date1,
79 const Date& date2,
80 bool extrapolate = false) const;
81 //! forward (at-the-money) variance
83 Time time2,
84 bool extrapolate = false) const;
85 //@}
86 //! \name Visitability
87 //@{
88 void accept(AcyclicVisitor&) override;
89 //@}
90 };
91
92}
93
94#endif
Black volatility (smile) surface.
degenerate base class for the Acyclic Visitor pattern
Definition: visitor.hpp:33
Black volatility (smile) surface.
calendar class
Definition: calendar.hpp:61
Concrete date class.
Definition: date.hpp:125
day counter class
Definition: daycounter.hpp:44
Equity/FX volatility (smile) surface.
Real atmForwardVariance(const Date &date1, const Date &date2, bool extrapolate=false) const
forward (at-the-money) variance
void accept(AcyclicVisitor &) override
Volatility atmForwardVol(const Date &date1, const Date &date2, bool extrapolate=false) const
forward (at-the-money) volatility
virtual Natural settlementDays() const
the settlementDays used for reference date calculation
virtual const Date & referenceDate() const
the date at which discount = 1.0 and/or variance = 0.0
BusinessDayConvention
Business Day conventions.
Real Time
continuous quantity with 1-year units
Definition: types.hpp:62
QL_REAL Real
real number
Definition: types.hpp:50
unsigned QL_INTEGER Natural
positive integer
Definition: types.hpp:43
Real Volatility
volatility
Definition: types.hpp:78
Definition: any.hpp:35