29#ifndef quantlib_instruments_swaption_hpp
30#define quantlib_instruments_swaption_hpp
32#include <ql/option.hpp>
33#include <ql/instruments/vanillaswap.hpp>
34#include <ql/termstructures/yieldtermstructure.hpp>
35#include <ql/termstructures/volatility/volatilitytype.hpp>
86 const ext::shared_ptr<Exercise>&
exercise,
114 Real accuracy = 1.0e-4,
119 Real displacement = 0.0)
const;
133 ext::shared_ptr<VanillaSwap>
swap;
141 :
public GenericEngine<Swaption::arguments, Swaption::results> {};
template base class for option pricing engines
Shared handle to an observable.
ext::shared_ptr< Exercise > exercise() const
Arguments for swaption calculation
Settlement::Method settlementMethod
ext::shared_ptr< VanillaSwap > swap
Settlement::Type settlementType
void validate() const override
base class for swaption engines
void setupArguments(PricingEngine::arguments *) const override
Settlement::Type settlementType() const
bool isExpired() const override
returns whether the instrument might have value greater than zero.
ext::shared_ptr< VanillaSwap > swap_
void deepUpdate() override
const ext::shared_ptr< VanillaSwap > & underlyingSwap() const
Settlement::Method settlementMethod_
Volatility impliedVolatility(Real price, const Handle< YieldTermStructure > &discountCurve, Volatility guess, Real accuracy=1.0e-4, Natural maxEvaluations=100, Volatility minVol=1.0e-7, Volatility maxVol=4.0, VolatilityType type=ShiftedLognormal, Real displacement=0.0) const
implied volatility
Settlement::Method settlementMethod() const
Settlement::Type settlementType_
unsigned QL_INTEGER Natural
positive integer
Real Volatility
volatility
std::ostream & operator<<(std::ostream &out, GFunctionFactory::YieldCurveModel type)
void swap(Array &v, Array &w) noexcept
@ CollateralizedCashPrice
static void checkTypeAndMethodConsistency(Settlement::Type, Settlement::Method)
check consistency of settlement type and method