27#include <ql/instruments/nonstandardswaption.hpp>
28#include <ql/instruments/swaption.hpp>
29#include <ql/pricingengines/genericmodelengine.hpp>
30#include <ql/termstructures/volatility/swaption/swaptionvolstructure.hpp>
37 const Handle<SwaptionVolatilityStructure>& volatility);
42 static bool instrumentIsHandled(
const std::vector<Leg>& legs,
const std::vector<bool>& payer,
43 const std::vector<Currency>& currency,
const QuantLib::ext::shared_ptr<Exercise>& exercise,
44 const Settlement::Type& settlementType,
const Settlement::Method& settlementMethod,
45 std::vector<std::string>& messages);
57 mutable QuantLib::ext::shared_ptr<Exercise>
exercise_;
70 const Handle<SwaptionVolatilityStructure>& volatility);
79 const Handle<SwaptionVolatilityStructure>& volatility);
85 :
public QuantLib::GenericEngine<NonstandardSwaption::arguments, NonstandardSwaption::results>,
89 const Handle<SwaptionVolatilityStructure>& volatility);
Handle< YieldTermStructure > discountCurve_
std::vector< Currency > currency_
QuantLib::ext::shared_ptr< Exercise > exercise_
std::map< std::string, boost::any > additionalResults_
Handle< SwaptionVolatilityStructure > volatility_
static bool instrumentIsHandled(const MultiLegOption &m, std::vector< std::string > &messages)
std::vector< bool > payer_
Settlement::Method settlementMethod_
Settlement::Type settlementType_
void calculate() const override
void calculate() const override
void calculate() const override
multi leg option instrument