25#include <ql/experimental/fx/deltavolquote.hpp>
26#include <ql/math/interpolation.hpp>
27#include <ql/option.hpp>
28#include <ql/termstructures/volatility/equityfx/blackvoltermstructure.hpp>
29#include <ql/termstructures/yieldtermstructure.hpp>
30#include <ql/time/calendar.hpp>
31#include <ql/time/daycounter.hpp>
41 Date referenceDate,
const std::vector<Date>&
dates,
const std::vector<std::vector<Real>>&
strikes,
42 const std::vector<std::vector<Real>>&
strikeQuotes,
const DayCounter& dayCounter,
const Calendar& calendar,
43 const Handle<Quote>&
spot,
const Size spotDays,
const Calendar spotCalendar,
45 const DeltaVolQuote::DeltaType dt = DeltaVolQuote::DeltaType::Spot,
46 const DeltaVolQuote::AtmType at = DeltaVolQuote::AtmType::AtmDeltaNeutral,
47 const Period&
switchTenor = 2 * Years,
const DeltaVolQuote::DeltaType ltdt = DeltaVolQuote::DeltaType::Fwd,
48 const DeltaVolQuote::AtmType ltat = DeltaVolQuote::AtmType::AtmDeltaNeutral,
51 Date
maxDate()
const override {
return Date::maxDate(); }
53 Real
maxStrike()
const override {
return QL_MAX_REAL; }
55 const std::vector<QuantLib::Date>&
dates()
const {
return dates_; }
69 Volatility
blackVolImpl(Time t, Real strike)
const override;
80 DeltaVolQuote::DeltaType
dt_;
81 DeltaVolQuote::AtmType
at_;
std::vector< Date > settlementDates_
std::vector< QuantLib::ext::shared_ptr< Interpolation > > interpolation_
DeltaVolQuote::DeltaType dt_
DeltaVolQuote::DeltaType longTermDeltaType() const
const std::vector< std::vector< Real > > & strikes() const
std::vector< std::vector< Real > > strikes_
std::vector< Date > dates_
DeltaVolQuote::AtmType longTermAtmType() const
DeltaVolQuote::DeltaType ltdt_
SmileInterpolation smileInterpolation() const
Handle< YieldTermStructure > foreignTS_
Real minStrike() const override
const Handle< Quote > & spot() const
Handle< YieldTermStructure > domesticTS_
const std::vector< std::vector< Real > > & strikeQuotes() const
std::vector< Real > expiryTimes_
const Handle< YieldTermStructure > & domesticTS() const
Date maxDate() const override
std::vector< std::vector< Real > > strikeQuotes_
const Handle< YieldTermStructure > & foreignTS() const
const Period & switchTenor() const
DeltaVolQuote::DeltaType deltaType() const
DeltaVolQuote::AtmType atmType() const
Volatility blackVolImpl(Time t, Real strike) const override
const std::vector< QuantLib::Date > & dates() const
SmileInterpolation smileInterpolation_
std::map< std::pair< Real, Real >, Real > cachedInterpolatedVols_
DeltaVolQuote::AtmType at_
Real maxStrike() const override
DeltaVolQuote::AtmType ltat_