20#include <ql/experimental/exoticoptions/everestoption.hpp>
21#include <ql/instruments/payoffs.hpp>
27 const ext::shared_ptr<Exercise>& exercise)
29 notional_(notional), guarantee_(guarantee) {}
41 QL_REQUIRE(
arguments !=
nullptr,
"wrong argument type");
50 QL_ENSURE(
results !=
nullptr,
"no results returned from pricing engine");
59 MultiAssetOption::arguments::validate();
60 QL_REQUIRE(notional !=
Null<Rate>(),
"no notional given");
61 QL_REQUIRE(notional != 0.0,
"null notional given");
62 QL_REQUIRE(guarantee !=
Null<Rate>(),
"no guarantee given");
void validate() const override
void setupArguments(PricingEngine::arguments *) const override
void fetchResults(const PricingEngine::results *) const override
EverestOption(Real notional, Rate guarantee, const ext::shared_ptr< Exercise > &)
void calculate() const override
Base class for options on multiple assets.
void setupArguments(PricingEngine::arguments *) const override
void fetchResults(const PricingEngine::results *) const override
template class providing a null value for a given type.
Abstract base class for option payoffs.