26#include <ql/indexes/swapindex.hpp>
27#include <ql/math/interpolations/interpolation2d.hpp>
28#include <ql/quote.hpp>
29#include <ql/termstructures/volatility/smilesection.hpp>
30#include <ql/termstructures/volatility/swaption/swaptionvoldiscrete.hpp>
32#include <ql/shared_ptr.hpp>
46 const std::vector<Period>& swapTenors,
const std::vector<Real>& strikeSpreads,
47 const std::vector<std::vector<Handle<Quote>>>& volSpreads,
48 const QuantLib::ext::shared_ptr<SwapIndex>& baseSwapIndexBase =
nullptr,
49 const QuantLib::ext::shared_ptr<SwapIndex>& baseShortSwapIndexBase =
nullptr,
50 const QuantLib::ext::shared_ptr<SwapIndex>& simulatedSwapIndexBase =
nullptr,
51 const QuantLib::ext::shared_ptr<SwapIndex>& simulatedShortSwapIndexBase =
nullptr,
52 const bool stickyAbsMoney =
false);
76 const Handle<SwaptionVolatilityStructure>&
baseVol();
79 QuantLib::ext::shared_ptr<SmileSection>
smileSectionImpl(Time optionTime, Time swapLength)
const override;
80 Volatility
volatilityImpl(Time optionTime, Time swapLength, Rate strike)
const override;
81 Real
shiftImpl(
const Date& optionDate,
const Period& swapTenor)
const override;
82 Real
shiftImpl(Time optionTime, Time swapLength)
const override;
84 Real
getAtmLevel(
const Real optionTime,
const Real swapLength,
const QuantLib::ext::shared_ptr<SwapIndex> swapIndexBase,
85 const QuantLib::ext::shared_ptr<SwapIndex> shortSwapIndexBase)
const;
87 Handle<SwaptionVolatilityStructure>
base_;
void performCalculations() const override
QuantLib::ext::shared_ptr< SwapIndex > simulatedShortSwapIndexBase_
Calendar calendar() const override
Real getAtmLevel(const Real optionTime, const Real swapLength, const QuantLib::ext::shared_ptr< SwapIndex > swapIndexBase, const QuantLib::ext::shared_ptr< SwapIndex > shortSwapIndexBase) const
Volatility volatilityImpl(Time optionTime, Time swapLength, Rate strike) const override
Rate maxStrike() const override
Rate minStrike() const override
QuantLib::ext::shared_ptr< SmileSection > smileSectionImpl(Time optionTime, Time swapLength) const override
void deepUpdate() override
const Handle< SwaptionVolatilityStructure > & baseVol()
QuantLib::ext::shared_ptr< SwapIndex > baseSwapIndexBase_
Real shiftImpl(const Date &optionDate, const Period &swapTenor) const override
Handle< SwaptionVolatilityStructure > base_
const Date & referenceDate() const override
VolatilityType volatilityType() const override
QuantLib::ext::shared_ptr< SwapIndex > simulatedSwapIndexBase_
Natural settlementDays() const override
std::vector< Interpolation2D > volSpreadInterpolation_
DayCounter dayCounter() const override
Date maxDate() const override
std::vector< Matrix > volSpreadValues_
std::vector< Real > strikeSpreads_
std::vector< std::vector< Handle< Quote > > > volSpreads_
const Period & maxSwapTenor() const override
Time maxTime() const override
QuantLib::ext::shared_ptr< SwapIndex > baseShortSwapIndexBase_