24#ifndef quantlib_instruments_nonstandardswaption_hpp
25#define quantlib_instruments_nonstandardswaption_hpp
27#include <ql/option.hpp>
28#include <ql/instruments/swaption.hpp>
29#include <ql/instruments/nonstandardswap.hpp>
30#include <ql/pricingengines/swaption/basketgeneratingengine.hpp>
31#include <ql/termstructures/yieldtermstructure.hpp>
32#include <ql/termstructures/volatility/swaption/swaptionvolstructure.hpp>
33#include <ql/models/calibrationhelper.hpp>
47 const ext::shared_ptr<Exercise>&
exercise,
68 std::vector<ext::shared_ptr<BlackCalibrationHelper>>
70 const ext::shared_ptr<SwaptionVolatilityStructure>& swaptionVolatility,
76 ext::shared_ptr<NonstandardSwap>
swap_;
86 ext::shared_ptr<NonstandardSwap>
swap;
95 NonstandardSwaption::results> {};
@ MaturityStrikeByDeltaGamma
template base class for option pricing engines
Arguments for nonstandard swap calculation
Arguments for nonstandard swaption calculation
Settlement::Method settlementMethod
ext::shared_ptr< NonstandardSwap > swap
Settlement::Type settlementType
void validate() const override
base class for nonstandard swaption engines
nonstandard swaption class
ext::shared_ptr< NonstandardSwap > swap_
const ext::shared_ptr< NonstandardSwap > & underlyingSwap() const
void setupArguments(PricingEngine::arguments *) const override
Settlement::Type settlementType() const
bool isExpired() const override
returns whether the instrument might have value greater than zero.
std::vector< ext::shared_ptr< BlackCalibrationHelper > > calibrationBasket(const ext::shared_ptr< SwapIndex > &standardSwapBase, const ext::shared_ptr< SwaptionVolatilityStructure > &swaptionVolatility, BasketGeneratingEngine::CalibrationBasketType basketType=BasketGeneratingEngine::MaturityStrikeByDeltaGamma) const
Settlement::Method settlementMethod_
Settlement::Method settlementMethod() const
Settlement::Type settlementType_
ext::shared_ptr< Exercise > exercise() const
void swap(Array &v, Array &w) noexcept