27 const ext::shared_ptr<Exercise>& exercise)
60 QL_REQUIRE(moreArgs !=
nullptr,
"wrong argument type");
67 MultiAssetOption::arguments::validate();
71 QL_REQUIRE(
Q1 > 0,
"quantity of asset 1 must be positive");
72 QL_REQUIRE(
Q2 > 0,
"quantity of asset 2 must be positive");
void calculate() const override
Extra arguments for Margrabe option.
void validate() const override
Extra results for Margrabe option.
void setupArguments(PricingEngine::arguments *) const override
MargrabeOption(Integer Q1, Integer Q2, const ext::shared_ptr< Exercise > &)
void fetchResults(const PricingEngine::results *) 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.
#define QL_REQUIRE(condition, message)
throw an error if the given pre-condition is not verified
QL_INTEGER Integer
integer number
Margrabe option on two assets.
Payoffs for various options.
ext::shared_ptr< YieldTermStructure > r