25#ifndef quantlib_smile_section_hpp
26#define quantlib_smile_section_hpp
28#include <ql/patterns/observable.hpp>
29#include <ql/time/daycounter.hpp>
30#include <ql/utilities/null.hpp>
31#include <ql/option.hpp>
32#include <ql/termstructures/volatility/volatilitytype.hpp>
70 Real discount=1.0)
const;
74 Real gap=1.0e-5)
const;
76 Real discount=1.0)
const;
79 Real gap=1.0E-4)
const;
108 "referenceDate not available for this instance");
Object that notifies its changes to a set of observers.
Object that gets notified when a given observable changes.
interest rate volatility smile section
virtual Real digitalOptionPrice(Rate strike, Option::Type type=Option::Call, Real discount=1.0, Real gap=1.0e-5) const
virtual Real varianceImpl(Rate strike) const
virtual const DayCounter & dayCounter() const
virtual Real minStrike() const =0
virtual const Date & referenceDate() const
Real variance(Rate strike) const
virtual Time exerciseTime() const
Volatility volatility(Rate strike) const
~SmileSection() override=default
virtual Real vega(Rate strike, Real discount=1.0) const
virtual Volatility volatilityImpl(Rate strike) const =0
virtual VolatilityType volatilityType() const
virtual Real atmLevel() const =0
virtual Real density(Rate strike, Real discount=1.0, Real gap=1.0E-4) const
virtual void initializeExerciseTime() const
virtual const Date & exerciseDate() const
virtual Rate shift() const
virtual Real optionPrice(Rate strike, Option::Type type=Option::Call, Real discount=1.0) const
virtual Real maxStrike() const =0
VolatilityType volatilityType_
Real Time
continuous quantity with 1-year units
Real Volatility
volatility