25#ifndef quantlib_forward_vanilla_option_hpp
26#define quantlib_forward_vanilla_option_hpp
28#include <ql/instruments/oneassetoption.hpp>
29#include <ql/instruments/payoffs.hpp>
30#include <ql/exercise.hpp>
31#include <ql/settings.hpp>
36 template <
class ArgumentsType>
53 const Date& resetDate,
54 const ext::shared_ptr<StrikedTypePayoff>&
payoff,
55 const ext::shared_ptr<Exercise>&
exercise);
68 template <
class ArgumentsType>
70 ArgumentsType::validate();
72 QL_REQUIRE(moneyness !=
Null<Real>(),
"null moneyness given");
73 QL_REQUIRE(moneyness > 0.0,
"negative or zero moneyness given");
75 QL_REQUIRE(resetDate !=
Null<Date>(),
"null reset date given");
77 "reset date in the past");
78 QL_REQUIRE(this->exercise->lastDate() > resetDate,
79 "reset date later or equal to maturity");
Arguments for forward (strike-resetting) option calculation
void validate() const override
Forward version of a vanilla option
void setupArguments(PricingEngine::arguments *) const override
OneAssetOption::results results
ForwardOptionArguments< OneAssetOption::arguments > arguments
void fetchResults(const PricingEngine::results *) const override
template class providing a null value for a given type.
Results from single-asset option calculation
Base class for options on a single asset.
ext::shared_ptr< Payoff > payoff() const
ext::shared_ptr< Exercise > exercise() const
static Settings & instance()
access to the unique instance