26 const std::vector<CallabilityData>& callData,
const MakeWholeData& makeWholeData,
27 const std::vector<CallabilityData>& putData,
28 const std::vector<ConversionRatioData>& conversionRatioData,
29 const std::vector<ConversionData>& conversionData,
30 const std::vector<MandatoryConversionData>& mandatoryConversionData,
31 const std::vector<ConversionResetData>& conversionResetData,
32 const std::vector<DividendProtectionData>& dividendProtectionData,
33 const bool detachable,
const bool perpetual)
34 : Bond(settlementDays, calendar, issueDate, coupons), exchangeableData_(exchangeableData), callData_(callData),
35 makeWholeData_(makeWholeData), putData_(putData), conversionData_(conversionData),
36 conversionRatioData_(conversionRatioData), mandatoryConversionData_(mandatoryConversionData),
37 conversionResetData_(conversionResetData), dividendProtectionData_(dividendProtectionData),
38 detachable_(detachable), perpetual_(perpetual) {}
41 Bond::setupArguments(args);
43 QL_REQUIRE(
arguments !=
nullptr,
"ConvertibleBond2::setupArguments(): wrong argument type");
std::vector< CallabilityData > putData
ExchangeableData exchangeableData
std::vector< DividendProtectionData > dividendProtectionData
std::vector< ConversionResetData > conversionResetData
std::vector< Real > notionals
std::vector< CallabilityData > callData
std::vector< ConversionRatioData > conversionRatioData
std::vector< ConversionData > conversionData
MakeWholeData makeWholeData
void validate() const override
std::vector< MandatoryConversionData > mandatoryConversionData
void setupArguments(PricingEngine::arguments *) const override
ConvertibleBond2(Size settlementDays, const Calendar &calendar, const Date &issueDate, const Leg &coupons, const ExchangeableData &exchangeableData=ExchangeableData{false, false}, const std::vector< CallabilityData > &callData={}, const MakeWholeData &makeWholeData={}, const std::vector< CallabilityData > &putData={}, const std::vector< ConversionRatioData > &conversionRatioData={}, const std::vector< ConversionData > &conversionData={}, const std::vector< MandatoryConversionData > &mandatoryConversionData={}, const std::vector< ConversionResetData > &conversionResetData={}, const std::vector< DividendProtectionData > ÷ndProtectionData={}, const bool detachable=false, const bool perpetual=false)
MakeWholeData makeWholeData_
std::vector< DividendProtectionData > dividendProtectionData_
std::vector< ConversionData > conversionData_
std::vector< MandatoryConversionData > mandatoryConversionData_
std::vector< ConversionResetData > conversionResetData_
void fetchResults(const PricingEngine::results *) const override
std::vector< ConversionRatioData > conversionRatioData_
std::vector< CallabilityData > putData_
std::vector< CallabilityData > callData_
ExchangeableData exchangeableData_