Skip to content

Commit fdeeff8

Browse files
pcaspersjenkins
authored andcommitted
QPR-11568 move amc engine buidlers
1 parent 1fbf9f5 commit fdeeff8

10 files changed

Lines changed: 72 additions & 14 deletions

File tree

OREAnalytics/orea/app/initbuilders.cpp

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,67 @@
2929
#include <ored/portfolio/bondoption.hpp>
3030
#include <ored/portfolio/bondrepo.hpp>
3131
#include <ored/portfolio/bondtotalreturnswap.hpp>
32+
#include <ored/portfolio/builders/asianoption.hpp>
33+
#include <ored/portfolio/builders/bond.hpp>
34+
#include <ored/portfolio/builders/bondoption.hpp>
35+
#include <ored/portfolio/builders/bondrepo.hpp>
36+
#include <ored/portfolio/builders/bondtotalreturnswap.hpp>
37+
#include <ored/portfolio/builders/cachingenginebuilder.hpp>
38+
#include <ored/portfolio/builders/capfloor.hpp>
39+
#include <ored/portfolio/builders/capflooredaverageonindexedcouponleg.hpp>
40+
#include <ored/portfolio/builders/capflooredcpileg.hpp>
41+
#include <ored/portfolio/builders/capfloorediborleg.hpp>
42+
#include <ored/portfolio/builders/capfloorednonstandardyoyleg.hpp>
43+
#include <ored/portfolio/builders/capflooredovernightindexedcouponleg.hpp>
44+
#include <ored/portfolio/builders/capflooredyoyleg.hpp>
45+
#include <ored/portfolio/builders/cdo.hpp>
46+
#include <ored/portfolio/builders/cliquetoption.hpp>
47+
#include <ored/portfolio/builders/cms.hpp>
48+
#include <ored/portfolio/builders/cmsspread.hpp>
49+
#include <ored/portfolio/builders/commodityapo.hpp>
50+
#include <ored/portfolio/builders/commodityapomodelbuilder.hpp>
51+
#include <ored/portfolio/builders/commodityasianoption.hpp>
52+
#include <ored/portfolio/builders/commodityforward.hpp>
53+
#include <ored/portfolio/builders/commodityoption.hpp>
54+
#include <ored/portfolio/builders/commodityspreadoption.hpp>
55+
#include <ored/portfolio/builders/commodityswap.hpp>
56+
#include <ored/portfolio/builders/commodityswaption.hpp>
57+
#include <ored/portfolio/builders/cpicapfloor.hpp>
58+
#include <ored/portfolio/builders/creditdefaultswap.hpp>
59+
#include <ored/portfolio/builders/creditdefaultswapoption.hpp>
60+
#include <ored/portfolio/builders/creditlinkedswap.hpp>
61+
#include <ored/portfolio/builders/currencyswap.hpp>
62+
#include <ored/portfolio/builders/durationadjustedcms.hpp>
63+
#include <ored/portfolio/builders/equityasianoption.hpp>
64+
#include <ored/portfolio/builders/equitybarrieroption.hpp>
65+
#include <ored/portfolio/builders/equitycompositeoption.hpp>
66+
#include <ored/portfolio/builders/equitydigitaloption.hpp>
67+
#include <ored/portfolio/builders/equitydoublebarrieroption.hpp>
68+
#include <ored/portfolio/builders/equitydoubletouchoption.hpp>
69+
#include <ored/portfolio/builders/equityforward.hpp>
70+
#include <ored/portfolio/builders/equityfuturesoption.hpp>
71+
#include <ored/portfolio/builders/equityoption.hpp>
72+
#include <ored/portfolio/builders/equitytouchoption.hpp>
73+
#include <ored/portfolio/builders/forwardbond.hpp>
74+
#include <ored/portfolio/builders/fxasianoption.hpp>
75+
#include <ored/portfolio/builders/fxbarrieroption.hpp>
76+
#include <ored/portfolio/builders/fxdigitalbarrieroption.hpp>
77+
#include <ored/portfolio/builders/fxdigitaloption.hpp>
78+
#include <ored/portfolio/builders/fxdoublebarrieroption.hpp>
79+
#include <ored/portfolio/builders/fxdoubletouchoption.hpp>
80+
#include <ored/portfolio/builders/fxforward.hpp>
81+
#include <ored/portfolio/builders/fxoption.hpp>
82+
#include <ored/portfolio/builders/fxtouchoption.hpp>
83+
#include <ored/portfolio/builders/indexcreditdefaultswap.hpp>
84+
#include <ored/portfolio/builders/indexcreditdefaultswapoption.hpp>
85+
#include <ored/portfolio/builders/multilegoption.hpp>
86+
#include <ored/portfolio/builders/quantoequityoption.hpp>
87+
#include <ored/portfolio/builders/quantovanillaoption.hpp>
88+
#include <ored/portfolio/builders/swap.hpp>
89+
#include <ored/portfolio/builders/swaption.hpp>
90+
#include <ored/portfolio/builders/vanillaoption.hpp>
91+
#include <ored/portfolio/builders/varianceswap.hpp>
92+
#include <ored/portfolio/builders/yoycapfloor.hpp>
3293
#include <ored/portfolio/capfloor.hpp>
3394
#include <ored/portfolio/cdo.hpp>
3495
#include <ored/portfolio/cliquetoption.hpp>
@@ -120,6 +181,12 @@
120181
#define REG_LEGBUILDER(NAME, CLASS) \
121182
ore::data::EngineBuilderFactory::instance().addLegBuilder([]() { return boost::make_shared<CLASS>(); });
122183

184+
#define REG_AMC_ENGINE_BUILDER(CLASS) \
185+
ore::data::EngineBuilderFactory::instance().addAmcEngineBuilder( \
186+
[](const boost::shared_ptr<QuantExt::CrossAssetModel>& cam, const std::vector<ore::data::Date>& grid) { \
187+
return boost::make_shared<CLASS>(cam, grid); \
188+
});
189+
123190
namespace ore::analytics {
124191

125192
void initBuilders() {
@@ -241,6 +308,11 @@ void initBuilders() {
241308
REG_LEGBUILDER("DigitalCMSSpreadLegBuilder", ore::data::DigitalCMSSpreadLegBuilder)
242309
REG_LEGBUILDER("EquityLegBuilder", ore::data::EquityLegBuilder)
243310
REG_LEGBUILDER("EquityMarginLegBuilder", ore::data::EquityMarginLegBuilder)
311+
312+
REG_AMC_ENGINE_BUILDER(ore::data::CamAmcCurrencySwapEngineBuilder)
313+
REG_AMC_ENGINE_BUILDER(ore::data::LgmAmcBermudanSwaptionEngineBuilder)
314+
REG_AMC_ENGINE_BUILDER(ore::data::CamAmcSwapEngineBuilder)
315+
REG_AMC_ENGINE_BUILDER(ore::data::CamAmcFxOptionEngineBuilder)
244316
}
245317

246318
} // namespace ore::analytics

OREData/ored/portfolio/builders/currencyswap.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,6 @@ struct CcyComp {
3838
};
3939
} // namespace
4040

41-
ORE_REGISTER_AMC_ENGINE_BUILDER_IMPL(CamAmcCurrencySwapEngineBuilder)
42-
4341
boost::shared_ptr<PricingEngine> CamAmcCurrencySwapEngineBuilder::engineImpl(const std::vector<Currency>& ccys,
4442
const Currency& base) {
4543

OREData/ored/portfolio/builders/currencyswap.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ namespace data {
3131

3232
//! Multileg option engine builder for external cam, with additional simulation dates (AMC)
3333
class CamAmcCurrencySwapEngineBuilder : public CrossCurrencySwapEngineBuilderBase {
34-
ORE_REGISTER_AMC_ENGINE_BUILDER(CamAmcCurrencySwapEngineBuilder)
35-
3634
public:
3735
// for external cam, with additional simulation dates (AMC)
3836
CamAmcCurrencySwapEngineBuilder(const boost::shared_ptr<QuantExt::CrossAssetModel>& cam,

OREData/ored/portfolio/builders/fxoption.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ ORE_REGISTER_ENGINE_BUILDER_IMPL(FxEuropeanOptionEngineBuilder)
3636
ORE_REGISTER_ENGINE_BUILDER_IMPL(FxEuropeanCSOptionEngineBuilder)
3737
ORE_REGISTER_ENGINE_BUILDER_IMPL(FxAmericanOptionFDEngineBuilder)
3838
ORE_REGISTER_ENGINE_BUILDER_IMPL(FxAmericanOptionBAWEngineBuilder)
39-
ORE_REGISTER_AMC_ENGINE_BUILDER_IMPL(CamAmcFxOptionEngineBuilder)
4039

4140
boost::shared_ptr<PricingEngine> CamAmcFxOptionEngineBuilder::engineImpl(const string& assetName,
4241
const Currency& domCcy,

OREData/ored/portfolio/builders/fxoption.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,6 @@ class FxAmericanOptionBAWEngineBuilder : public AmericanOptionBAWEngineBuilder {
8080

8181
//! FX option engine builder for external cam, with additional simulation dates (AMC)
8282
class CamAmcFxOptionEngineBuilder : public VanillaOptionEngineBuilder {
83-
ORE_REGISTER_AMC_ENGINE_BUILDER(CamAmcFxOptionEngineBuilder)
84-
8583
public:
8684
// for external cam, with additional simulation dates (AMC)
8785
CamAmcFxOptionEngineBuilder(const boost::shared_ptr<QuantExt::CrossAssetModel>& cam,

OREData/ored/portfolio/builders/swap.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ using namespace QuantExt;
3434
ORE_REGISTER_ENGINE_BUILDER_IMPL(SwapEngineBuilder)
3535
ORE_REGISTER_ENGINE_BUILDER_IMPL(SwapEngineBuilderOptimised);
3636
ORE_REGISTER_ENGINE_BUILDER_IMPL(CrossCurrencySwapEngineBuilder)
37-
ORE_REGISTER_AMC_ENGINE_BUILDER_IMPL(CamAmcSwapEngineBuilder)
3837

3938
boost::shared_ptr<PricingEngine> CamAmcSwapEngineBuilder::buildMcEngine(const boost::shared_ptr<LGM>& lgm,
4039
const Handle<YieldTermStructure>& discountCurve,

OREData/ored/portfolio/builders/swap.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,6 @@ class CrossCurrencySwapEngineBuilder : public CrossCurrencySwapEngineBuilderBase
138138
/*! \ingroup portfolio
139139
*/
140140
class CamAmcSwapEngineBuilder : public SwapEngineBuilderBase {
141-
ORE_REGISTER_AMC_ENGINE_BUILDER(CamAmcSwapEngineBuilder)
142-
143141
public:
144142
CamAmcSwapEngineBuilder(const boost::shared_ptr<QuantExt::CrossAssetModel>& cam,
145143
const std::vector<Date>& simulationDates)

OREData/ored/portfolio/builders/swaption.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ namespace data {
6262
ORE_REGISTER_ENGINE_BUILDER_IMPL(EuropeanSwaptionEngineBuilder)
6363
ORE_REGISTER_ENGINE_BUILDER_IMPL(LGMGridBermudanSwaptionEngineBuilder)
6464
ORE_REGISTER_ENGINE_BUILDER_IMPL(LgmMcBermudanSwaptionEngineBuilder)
65-
ORE_REGISTER_AMC_ENGINE_BUILDER_IMPL(LgmAmcBermudanSwaptionEngineBuilder)
6665

6766
boost::shared_ptr<PricingEngine> EuropeanSwaptionEngineBuilder::engineImpl(const string& key) {
6867
boost::shared_ptr<IborIndex> index;

OREData/ored/portfolio/builders/swaption.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,6 @@ class LgmMcBermudanSwaptionEngineBuilder : public LGMBermudanSwaptionEngineBuild
139139

140140
// Implementation of BermudanSwaptionEngineBuilder for external cam, with additional simulation dates (AMC)
141141
class LgmAmcBermudanSwaptionEngineBuilder : public BermudanSwaptionEngineBuilder {
142-
ORE_REGISTER_AMC_ENGINE_BUILDER(LgmAmcBermudanSwaptionEngineBuilder)
143142
public:
144143
LgmAmcBermudanSwaptionEngineBuilder(const boost::shared_ptr<QuantExt::CrossAssetModel>& cam,
145144
const std::vector<Date>& simulationDates)

OREData/ored/portfolio/enginefactory.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,6 @@
3939

4040
#define ORE_REGISTER_ENGINE_BUILDER(CLASSNAME) static ore::data::EngineBuilderRegister<CLASSNAME> reg_eb_;
4141
#define ORE_REGISTER_ENGINE_BUILDER_IMPL(CLASSNAME) ore::data::EngineBuilderRegister<CLASSNAME> CLASSNAME::reg_eb_;
42-
#define ORE_REGISTER_AMC_ENGINE_BUILDER(CLASSNAME) static ore::data::AmcEngineBuilderRegister<CLASSNAME> reg_amceb_;
43-
#define ORE_REGISTER_AMC_ENGINE_BUILDER_IMPL(CLASSNAME) ore::data::AmcEngineBuilderRegister<CLASSNAME> CLASSNAME::reg_amceb_;
4442

4543
namespace ore {
4644
namespace data {

0 commit comments

Comments
 (0)