25#include <ql/indexes/interestrateindex.hpp>
37 const std::vector<Currency>&, const std::vector<Date>&,
38 const std::vector<QuantLib::ext::shared_ptr<QuantLib::InterestRateIndex>>&> {
44 string keyImpl(
const string&
id,
const std::vector<Date>& exDates,
const Date& maturityDate,
45 const std::vector<Currency>& currencies,
const std::vector<Date>& fixingDates,
46 const std::vector<QuantLib::ext::shared_ptr<QuantLib::InterestRateIndex>>& indexes)
override {
57 QuantLib::ext::shared_ptr<PricingEngine>
58 engineImpl(
const string&
id,
const std::vector<Date>& exDates,
const Date& maturityDate,
59 const std::vector<Currency>& currencies,
const std::vector<Date>& fixingDates,
60 const std::vector<QuantLib::ext::shared_ptr<QuantLib::InterestRateIndex>>& indexes)
override;
63 std::string
getCcyValue(
const std::string& s,
const std::string& c,
const bool mandatory);
71 const std::vector<Date>& simulationDates)
76 string keyImpl(
const string&
id,
const std::vector<Date>& exDates,
const Date& maturityDate,
77 const std::vector<Currency>& currencies,
const std::vector<Date>& fixingDates,
78 const std::vector<QuantLib::ext::shared_ptr<QuantLib::InterestRateIndex>>& indexes)
override {
80 for (
auto const& c : currencies) {
81 res += c.code() +
"_";
86 QuantLib::ext::shared_ptr<PricingEngine>
87 engineImpl(
const string&
id,
const std::vector<Date>& exDates,
const Date& maturityDate,
88 const std::vector<Currency>& currencies,
const std::vector<Date>& fixingDates,
89 const std::vector<QuantLib::ext::shared_ptr<QuantLib::InterestRateIndex>>& indexes)
override;
92 const QuantLib::ext::shared_ptr<QuantExt::CrossAssetModel>
cam_;
Abstract template engine builder class.
Abstract template EngineBuilder class that can cache engines and coupon pricers.
Multileg option engine builder for external cam, with additional simulation dates (AMC)
const std::vector< Date > simulationDates_
const QuantLib::ext::shared_ptr< QuantExt::CrossAssetModel > cam_
QuantLib::ext::shared_ptr< PricingEngine > engineImpl(const string &id, const std::vector< Date > &exDates, const Date &maturityDate, const std::vector< Currency > ¤cies, const std::vector< Date > &fixingDates, const std::vector< QuantLib::ext::shared_ptr< QuantLib::InterestRateIndex > > &indexes) override
CamAmcMultiLegOptionEngineBuilder(const QuantLib::ext::shared_ptr< QuantExt::CrossAssetModel > &cam, const std::vector< Date > &simulationDates)
string keyImpl(const string &id, const std::vector< Date > &exDates, const Date &maturityDate, const std::vector< Currency > ¤cies, const std::vector< Date > &fixingDates, const std::vector< QuantLib::ext::shared_ptr< QuantLib::InterestRateIndex > > &indexes) override
MultiLeg option engine builder for MC pricer.
CamMcMultiLegOptionEngineBuilder()
std::string getCcyValue(const std::string &s, const std::string &c, const bool mandatory)
QuantLib::ext::shared_ptr< PricingEngine > engineImpl(const string &id, const std::vector< Date > &exDates, const Date &maturityDate, const std::vector< Currency > ¤cies, const std::vector< Date > &fixingDates, const std::vector< QuantLib::ext::shared_ptr< QuantLib::InterestRateIndex > > &indexes) override
const string & engine() const
Return the engine name.
const string & model() const
Return the model name.
MultiLeg option engine builder base class.
MultiLegOptionEngineBuilderBase(const std::string &model, const std::string &engine)
string keyImpl(const string &id, const std::vector< Date > &exDates, const Date &maturityDate, const std::vector< Currency > ¤cies, const std::vector< Date > &fixingDates, const std::vector< QuantLib::ext::shared_ptr< QuantLib::InterestRateIndex > > &indexes) override
Serializable Credit Default Swap.