29#ifndef quantlib_instruments_swaption_hpp
30#define quantlib_instruments_swaption_hpp
93 const ext::shared_ptr<Exercise>&
exercise,
112 const ext::shared_ptr<FixedVsFloatingSwap>&
underlying()
const {
118 [[deprecated(
"Use the Swaption::underlying method instead")]]
129 Real accuracy = 1.0e-4,
134 Real displacement = 0.0)
const;
137 ext::shared_ptr<FixedVsFloatingSwap>
swap_;
150 ext::shared_ptr<FixedVsFloatingSwap>
swap;
158 :
public GenericEngine<Swaption::arguments, Swaption::results> {};
Arguments for simple swap calculation
template base class for option pricing engines
Shared handle to an observable.
ext::shared_ptr< Exercise > exercise() const
Arguments for swaption calculation
ext::shared_ptr< FixedVsFloatingSwap > swap
Settlement::Method settlementMethod
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.
void deepUpdate() override
const ext::shared_ptr< VanillaSwap > & underlyingSwap() const
const ext::shared_ptr< FixedVsFloatingSwap > & underlying() const
ext::shared_ptr< FixedVsFloatingSwap > swap_
Settlement::Method settlementMethod_
ext::shared_ptr< VanillaSwap > vanilla_
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_
#define QL_REQUIRE(condition, message)
throw an error if the given pre-condition is not verified
Fixed-rate vs floating-rate swap.
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
Simple fixed-rate vs Libor swap.
Interest-rate term structure.