23#ifndef quantext_cap_floor_term_vol_surface_hpp
24#define quantext_cap_floor_term_vol_surface_hpp
26#include <ql/math/interpolations/interpolation2d.hpp>
27#include <ql/patterns/lazyobject.hpp>
28#include <ql/quote.hpp>
29#include <ql/termstructures/volatility/capfloor/capfloortermvolatilitystructure.hpp>
30#include <ql/time/daycounters/actual365fixed.hpp>
44 const QuantLib::DayCounter& dc = QuantLib::DayCounter(),
46 std::vector<QuantLib::Rate>
strikes = {})
51 const QuantLib::Calendar& cal,
52 BusinessDayConvention bdc,
53 const DayCounter& dc = QuantLib::DayCounter(),
55 std::vector<QuantLib::Rate>
strikes = {})
60 const QuantLib::Calendar& cal,
61 QuantLib::BusinessDayConvention bdc,
62 const QuantLib::DayCounter& dc = QuantLib::DayCounter(),
64 std::vector<QuantLib::Rate>
strikes = {})
73 CapFloorTermVolatilityStructure::update();
100 const std::vector<std::vector<Handle<Quote> > >&,
const DayCounter& dc = Actual365Fixed(),
105 const std::vector<std::vector<Handle<Quote> > >&,
const DayCounter& dc = Actual365Fixed(),
110 const Matrix& volatilities,
const DayCounter& dc = Actual365Fixed(),
115 const Matrix& volatilities,
const DayCounter& dc = Actual365Fixed(),
Cap/floor smile volatility surface.
std::vector< Date > optionDates_
void registerWithMarketData()
void performCalculations() const override
CapFloorTermVolSurfaceExact(const Date &settlementDate, const Calendar &calendar, BusinessDayConvention bdc, const std::vector< Period > &optionTenors, const std::vector< Rate > &strikes, const Matrix &volatilities, const DayCounter &dc=Actual365Fixed(), InterpolationMethod interpolationMethod=BicubicSpline)
fixed reference date, fixed market data
std::vector< std::vector< Handle< Quote > > > volHandles_
InterpolationMethod interpolationMethod() const
Interpolation2D interpolation_
Real minStrike() const override
const std::vector< Time > & optionTimes() const
std::vector< Time > optionTimes_
CapFloorTermVolSurfaceExact(Natural settlementDays, const Calendar &calendar, BusinessDayConvention bdc, const std::vector< Period > &optionTenors, const std::vector< Rate > &strikes, const std::vector< std::vector< Handle< Quote > > > &, const DayCounter &dc=Actual365Fixed(), InterpolationMethod interpolationMethod=BicubicSpline)
floating reference date, floating market data
CapFloorTermVolSurfaceExact(Natural settlementDays, const Calendar &calendar, BusinessDayConvention bdc, const std::vector< Period > &optionTenors, const std::vector< Rate > &strikes, const Matrix &volatilities, const DayCounter &dc=Actual365Fixed(), InterpolationMethod interpolationMethod=BicubicSpline)
floating reference date, fixed market data
Date maxDate() const override
const std::vector< Date > & optionDates() const
CapFloorTermVolSurfaceExact(const Date &settlementDate, const Calendar &calendar, BusinessDayConvention bdc, const std::vector< Period > &optionTenors, const std::vector< Rate > &strikes, const std::vector< std::vector< Handle< Quote > > > &, const DayCounter &dc=Actual365Fixed(), InterpolationMethod interpolationMethod=BicubicSpline)
fixed reference date, floating market data
InterpolationMethod interpolationMethod_
Volatility volatilityImpl(Time t, Rate strike) const override
void initializeOptionDatesAndTimes() const
Real maxStrike() const override
Cap/floor term-volatility surface.
void performCalculations() const override
CapFloorTermVolSurface(QuantLib::Natural settlementDays, const QuantLib::Calendar &cal, QuantLib::BusinessDayConvention bdc, const QuantLib::DayCounter &dc=QuantLib::DayCounter(), std::vector< QuantLib::Period > optionTenors={}, std::vector< QuantLib::Rate > strikes={})
calculate the reference date based on the global evaluation date
const std::vector< QuantLib::Period > & optionTenors() const
const std::vector< QuantLib::Rate > & strikes() const
std::vector< QuantLib::Rate > strikes_
CapFloorTermVolSurface(QuantLib::BusinessDayConvention bdc, const QuantLib::DayCounter &dc=QuantLib::DayCounter(), std::vector< QuantLib::Period > optionTenors={}, std::vector< QuantLib::Rate > strikes={})
default constructor
CapFloorTermVolSurface(const QuantLib::Date &referenceDate, const QuantLib::Calendar &cal, BusinessDayConvention bdc, const DayCounter &dc=QuantLib::DayCounter(), std::vector< QuantLib::Period > optionTenors={}, std::vector< QuantLib::Rate > strikes={})
initialize with a fixed reference date
std::vector< QuantLib::Period > optionTenors_
std::ostream & operator<<(std::ostream &out, EquityReturnType t)