25#include <ql/cashflow.hpp>
26#include <ql/exercise.hpp>
27#include <ql/instrument.hpp>
28#include <ql/position.hpp>
29#include <ql/pricingengine.hpp>
45 const QuantLib::ext::shared_ptr<QuantLib::Exercise>&
exercise =
nullptr,
46 const bool exerciseIsLong =
false,
const std::vector<QuantLib::ext::shared_ptr<CashFlow>>& premium = std::vector<QuantLib::ext::shared_ptr<CashFlow>>(),
72 void fetchResults(
const QuantLib::PricingEngine::results*)
const override;
84 const QuantLib::ext::shared_ptr<Exercise>
exercise_;
86 const std::vector<QuantLib::ext::shared_ptr<CashFlow>>
premium_;
115 std::vector<QuantLib::ext::shared_ptr<CashFlow>>
premium;
130 Instrument::results::reset();
139 :
public GenericEngine<RiskParticipationAgreement::arguments, RiskParticipationAgreement::results> {};
std::vector< std::string > underlyingCcys
std::vector< std::string > protectionFeeCcys
std::vector< QuantLib::ext::shared_ptr< CashFlow > > premium
Date optionRepresentationReferenceDate
std::vector< QuantLib::ext::shared_ptr< Instrument > > optionRepresentation
QuantLib::ext::shared_ptr< Exercise > exercise
std::vector< std::tuple< Date, Date, Date > > optionRepresentationPeriods
std::vector< Leg > underlying
std::vector< Leg > protectionFee
std::vector< Real > optionMultiplier
std::vector< bool > underlyingPayer
void validate() const override
Date optionRepresentationReferenceDate
std::vector< QuantLib::ext::shared_ptr< Instrument > > optionRepresentation
std::vector< std::tuple< Date, Date, Date > > optionRepresentationPeriods
std::vector< Real > optionMultiplier
void fetchResults(const QuantLib::PricingEngine::results *) const override
const std::vector< std::string > protectionFeeCcys_
const Real fixedRecoveryRate_
bool protectionFeePayer() const
const std::vector< Leg > & underlying() const
Inspectors.
const Date & underlyingMaturity() const
bool isExpired() const override
Instrument interface.
std::vector< QuantLib::ext::shared_ptr< Instrument > > optionRepresentation_
Real participationRate() const
const std::vector< Leg > underlying_
const QuantLib::ext::shared_ptr< Exercise > exercise_
const std::vector< std::string > underlyingCcys_
std::vector< std::tuple< Date, Date, Date > > optionRepresentationPeriods_
const std::vector< Leg > protectionFee_
const std::vector< QuantLib::ext::shared_ptr< CashFlow > > premium_
const std::vector< std::string > & protectionFeeCcys() const
const Date & maturity() const
const Date protectionStart_
const QuantLib::ext::shared_ptr< Exercise > & exercise() const
const Real participationRate_
const bool settlesAccrual_
const std::vector< bool > underlyingPayer_
const std::vector< std::string > & underlyingCcys() const
bool settlesAccrual() const
const Date protectionEnd_
Real fixedRecoveryRate() const
const bool nakedOption() const
const std::vector< bool > & underlyingPayer() const
const bool protectionFeePayer_
std::vector< Real > optionMultiplier_
const std::vector< Leg > & protectionFee() const
void setupExpired() const override
void setupArguments(QuantLib::PricingEngine::arguments *) const override
Date optionRepresentationReferenceDate_
const bool exerciseIsLong_
const Date & protectionEnd() const
const Date & protectionStart() const