Skip to content

Commit 3f1051d

Browse files
pcaspersjenkins
authored andcommitted
QPR-11568 move trade builders
1 parent e6a5843 commit 3f1051d

110 files changed

Lines changed: 128 additions & 242 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

OREAnalytics/orea/app/initbuilders.cpp

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,80 @@
2222
#include <ored/model/calibrationinstruments/cpicapfloor.hpp>
2323
#include <ored/model/calibrationinstruments/yoycapfloor.hpp>
2424
#include <ored/model/calibrationinstruments/yoyswap.hpp>
25+
#include <ored/portfolio/asianoption.hpp>
26+
#include <ored/portfolio/barrieroption.hpp>
27+
#include <ored/portfolio/barrieroptionwrapper.hpp>
28+
#include <ored/portfolio/bond.hpp>
29+
#include <ored/portfolio/bondoption.hpp>
30+
#include <ored/portfolio/bondrepo.hpp>
31+
#include <ored/portfolio/bondtotalreturnswap.hpp>
32+
#include <ored/portfolio/capfloor.hpp>
33+
#include <ored/portfolio/cdo.hpp>
34+
#include <ored/portfolio/cliquetoption.hpp>
35+
#include <ored/portfolio/commodityapo.hpp>
36+
#include <ored/portfolio/commoditydigitalapo.hpp>
37+
#include <ored/portfolio/commoditydigitaloption.hpp>
38+
#include <ored/portfolio/commodityforward.hpp>
39+
#include <ored/portfolio/commoditylegbuilder.hpp>
2540
#include <ored/portfolio/commoditylegdata.hpp>
41+
#include <ored/portfolio/commodityoption.hpp>
42+
#include <ored/portfolio/commodityoptionstrip.hpp>
43+
#include <ored/portfolio/commodityspreadoption.hpp>
44+
#include <ored/portfolio/commodityswap.hpp>
45+
#include <ored/portfolio/commodityswaption.hpp>
46+
#include <ored/portfolio/compositeinstrumentwrapper.hpp>
47+
#include <ored/portfolio/compositetrade.hpp>
2648
#include <ored/portfolio/convertiblebondreferencedata.hpp>
49+
#include <ored/portfolio/creditdefaultswap.hpp>
50+
#include <ored/portfolio/creditdefaultswapoption.hpp>
51+
#include <ored/portfolio/creditlinkedswap.hpp>
52+
#include <ored/portfolio/crosscurrencyswap.hpp>
53+
#include <ored/portfolio/durationadjustedcmslegbuilder.hpp>
2754
#include <ored/portfolio/durationadjustedcmslegdata.hpp>
55+
#include <ored/portfolio/equitybarrieroption.hpp>
56+
#include <ored/portfolio/equityderivative.hpp>
57+
#include <ored/portfolio/equitydigitaloption.hpp>
58+
#include <ored/portfolio/equitydoublebarrieroption.hpp>
59+
#include <ored/portfolio/equitydoubletouchoption.hpp>
60+
#include <ored/portfolio/equityeuropeanbarrieroption.hpp>
61+
#include <ored/portfolio/equityforward.hpp>
62+
#include <ored/portfolio/equityfuturesoption.hpp>
63+
#include <ored/portfolio/equityfxlegbuilder.hpp>
2864
#include <ored/portfolio/equityfxlegdata.hpp>
65+
#include <ored/portfolio/equityoption.hpp>
66+
#include <ored/portfolio/equityswap.hpp>
67+
#include <ored/portfolio/equitytouchoption.hpp>
68+
#include <ored/portfolio/failedtrade.hpp>
69+
#include <ored/portfolio/forwardbond.hpp>
70+
#include <ored/portfolio/forwardrateagreement.hpp>
71+
#include <ored/portfolio/fxaverageforward.hpp>
72+
#include <ored/portfolio/fxbarrieroption.hpp>
73+
#include <ored/portfolio/fxderivative.hpp>
74+
#include <ored/portfolio/fxdigitalbarrieroption.hpp>
75+
#include <ored/portfolio/fxdigitaloption.hpp>
76+
#include <ored/portfolio/fxdoublebarrieroption.hpp>
77+
#include <ored/portfolio/fxdoubletouchoption.hpp>
78+
#include <ored/portfolio/fxeuropeanbarrieroption.hpp>
79+
#include <ored/portfolio/fxforward.hpp>
80+
#include <ored/portfolio/fxkikobarrieroption.hpp>
81+
#include <ored/portfolio/fxoption.hpp>
82+
#include <ored/portfolio/fxswap.hpp>
83+
#include <ored/portfolio/fxtouchoption.hpp>
84+
#include <ored/portfolio/indexcreditdefaultswap.hpp>
85+
#include <ored/portfolio/indexcreditdefaultswapdata.hpp>
86+
#include <ored/portfolio/indexcreditdefaultswapoption.hpp>
87+
#include <ored/portfolio/indexing.hpp>
88+
#include <ored/portfolio/inflationswap.hpp>
89+
#include <ored/portfolio/instrumentwrapper.hpp>
2990
#include <ored/portfolio/legdata.hpp>
3091
#include <ored/portfolio/legdatafactory.hpp>
92+
#include <ored/portfolio/multilegoption.hpp>
3193
#include <ored/portfolio/referencedata.hpp>
3294
#include <ored/portfolio/referencedatafactory.hpp>
95+
#include <ored/portfolio/swap.hpp>
96+
#include <ored/portfolio/swaption.hpp>
97+
#include <ored/portfolio/vanillaoption.hpp>
98+
#include <ored/portfolio/varianceswap.hpp>
3399

34100
#include <boost/thread/lock_types.hpp>
35101
#include <boost/thread/shared_mutex.hpp>
@@ -47,6 +113,9 @@
47113

48114
#define REG_BONDBUILDER(NAME, CLASS) ore::data::BondFactory::instance().addBuilder(NAME, boost::make_shared<CLASS>());
49115

116+
#define REG_TRADEBUILDER(NAME, CLASS) \
117+
ore::data::TradeFactory::instance().addBuilder(NAME, boost::make_shared<ore::data::TradeBuilder<CLASS>>());
118+
50119
namespace ore::analytics {
51120

52121
void initBuilders() {
@@ -92,6 +161,65 @@ void initBuilders() {
92161
REG_REFDATUM("ConvertibleBond", ore::data::BondBasketReferenceDatum)
93162

94163
REG_BONDBUILDER("Bond", ore::data::VanillaBondBuilder)
164+
165+
REG_TRADEBUILDER("CrossCurrencySwap", ore::data::CrossCurrencySwap)
166+
REG_TRADEBUILDER("CommoditySpreadOption", ore::data::CommoditySpreadOption)
167+
REG_TRADEBUILDER("EquityFutureOption", ore::data::EquityFutureOption)
168+
REG_TRADEBUILDER("BondTRS", ore::data::BondTRS)
169+
REG_TRADEBUILDER("CommodityOption", ore::data::CommodityOption)
170+
REG_TRADEBUILDER("CapFloor", ore::data::CapFloor)
171+
REG_TRADEBUILDER("FxDigitalOption", ore::data::FxDigitalOption)
172+
REG_TRADEBUILDER("CommoditySwaption", ore::data::CommoditySwaption)
173+
REG_TRADEBUILDER("FxDigitalBarrierOption", ore::data::FxDigitalBarrierOption)
174+
REG_TRADEBUILDER("ForwardRateAgreement", ore::data::ForwardRateAgreement)
175+
REG_TRADEBUILDER("CommodityDigitalAveragePriceOption", ore::data::CommodityDigitalAveragePriceOption)
176+
REG_TRADEBUILDER("CommoditySwap", ore::data::CommoditySwap)
177+
REG_TRADEBUILDER("EquitySwap", ore::data::EquitySwap)
178+
REG_TRADEBUILDER("FxForward", ore::data::FxForward)
179+
REG_TRADEBUILDER("BondRepo", ore::data::BondRepo)
180+
REG_TRADEBUILDER("FxAverageForward", ore::data::FxAverageForward)
181+
REG_TRADEBUILDER("FxEuropeanBarrierOption", ore::data::FxEuropeanBarrierOption)
182+
REG_TRADEBUILDER("FxTouchOption", ore::data::FxTouchOption)
183+
REG_TRADEBUILDER("EquityAsianOption", ore::data::EquityAsianOption)
184+
REG_TRADEBUILDER("FxAsianOption", ore::data::FxAsianOption)
185+
REG_TRADEBUILDER("CommodityAsianOption", ore::data::CommodityAsianOption)
186+
REG_TRADEBUILDER("Swaption", ore::data::Swaption)
187+
REG_TRADEBUILDER("EquityVarianceSwap", ore::data::EqVarSwap)
188+
REG_TRADEBUILDER("FxVarianceSwap", ore::data::FxVarSwap)
189+
REG_TRADEBUILDER("CommodityVarianceSwap", ore::data::ComVarSwap)
190+
REG_TRADEBUILDER("FxDoubleTouchOption", ore::data::FxDoubleTouchOption)
191+
REG_TRADEBUILDER("FxDoubleBarrierOption", ore::data::FxDoubleBarrierOption)
192+
REG_TRADEBUILDER("EquityBarrierOption", ore::data::EquityBarrierOption)
193+
REG_TRADEBUILDER("FxSwap", ore::data::FxSwap)
194+
REG_TRADEBUILDER("EquityTouchOption", ore::data::EquityTouchOption)
195+
REG_TRADEBUILDER("EquityDigitalOption", ore::data::EquityDigitalOption)
196+
REG_TRADEBUILDER("CompositeTrade", ore::data::CompositeTrade)
197+
REG_TRADEBUILDER("MultiLegOption", ore::data::MultiLegOption)
198+
REG_TRADEBUILDER("Swap", ore::data::Swap)
199+
REG_TRADEBUILDER("IndexCreditDefaultSwap", ore::data::IndexCreditDefaultSwap)
200+
REG_TRADEBUILDER("CommodityForward", ore::data::CommodityForward)
201+
REG_TRADEBUILDER("EquityCliquetOption", ore::data::EquityCliquetOption)
202+
REG_TRADEBUILDER("CommodityDigitalOption", ore::data::CommodityDigitalOption)
203+
REG_TRADEBUILDER("EquityForward", ore::data::EquityForward)
204+
REG_TRADEBUILDER("IndexCreditDefaultSwapOption", ore::data::IndexCreditDefaultSwapOption)
205+
REG_TRADEBUILDER("CommodityAveragePriceOption", ore::data::CommodityAveragePriceOption)
206+
REG_TRADEBUILDER("CreditDefaultSwapOption", ore::data::CreditDefaultSwapOption)
207+
REG_TRADEBUILDER("FailedTrade", ore::data::FailedTrade)
208+
REG_TRADEBUILDER("ForwardBond", ore::data::ForwardBond)
209+
REG_TRADEBUILDER("EquityDoubleTouchOption", ore::data::EquityDoubleTouchOption)
210+
REG_TRADEBUILDER("CommodityOptionStrip", ore::data::CommodityOptionStrip)
211+
REG_TRADEBUILDER("SyntheticCDO", ore::data::SyntheticCDO)
212+
REG_TRADEBUILDER("Bond", ore::data::Bond)
213+
REG_TRADEBUILDER("CreditLinkedSwap", ore::data::CreditLinkedSwap)
214+
REG_TRADEBUILDER("EquityEuropeanBarrierOption", ore::data::EquityEuropeanBarrierOption)
215+
REG_TRADEBUILDER("InflationSwap", ore::data::InflationSwap)
216+
REG_TRADEBUILDER("EquityDoubleBarrierOption", ore::data::EquityDoubleBarrierOption)
217+
REG_TRADEBUILDER("BondOption", ore::data::BondOption)
218+
REG_TRADEBUILDER("CreditDefaultSwap", ore::data::CreditDefaultSwap)
219+
REG_TRADEBUILDER("FxKIKOBarrierOption", ore::data::FxKIKOBarrierOption)
220+
REG_TRADEBUILDER("FxBarrierOption", ore::data::FxBarrierOption)
221+
REG_TRADEBUILDER("EquityOption", ore::data::EquityOption)
222+
REG_TRADEBUILDER("FxOption", ore::data::FxOption)
95223
}
96224

97225
} // namespace ore::analytics

OREData/ored/portfolio/asianoption.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,6 @@
3232
namespace ore {
3333
namespace data {
3434

35-
TradeBuilderRegister<TradeBuilder<FxAsianOption>> FxAsianOption::reg_("FxAsianOption");
36-
TradeBuilderRegister<TradeBuilder<EquityAsianOption>> EquityAsianOption::reg_("EquityAsianOption");
37-
TradeBuilderRegister<TradeBuilder<CommodityAsianOption>> CommodityAsianOption::reg_("CommodityAsianOption");
38-
3935
void AsianOption::build(const boost::shared_ptr<EngineFactory>& engineFactory) {
4036

4137
Currency payCcy = parseCurrency(currency_);

OREData/ored/portfolio/asianoption.hpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,24 +100,18 @@ class AsianOption : public Trade {
100100
};
101101

102102
class EquityAsianOption : public AsianOption {
103-
static TradeBuilderRegister<TradeBuilder<EquityAsianOption>> reg_;
104-
105103
public:
106104
EquityAsianOption() : AsianOption("EquityAsianOption") {}
107105
using AsianOption::AsianOption;
108106
};
109107

110108
class FxAsianOption : public AsianOption {
111-
static TradeBuilderRegister<TradeBuilder<FxAsianOption>> reg_;
112-
113109
public:
114110
FxAsianOption() : AsianOption("FxAsianOption") {}
115111
using AsianOption::AsianOption;
116112
};
117113

118114
class CommodityAsianOption : public AsianOption {
119-
static TradeBuilderRegister<TradeBuilder<CommodityAsianOption>> reg_;
120-
121115
public:
122116
CommodityAsianOption() : AsianOption("CommodityAsianOption") {}
123117
using AsianOption::AsianOption;

OREData/ored/portfolio/bond.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,6 @@ void BondData::checkData() const {
207207
<< securityId_ << "'");
208208
}
209209

210-
TradeBuilderRegister<TradeBuilder<Bond>> Bond::reg_("Bond");
211-
212210
void Bond::build(const boost::shared_ptr<EngineFactory>& engineFactory) {
213211
DLOG("Bond::build() called for trade " << id());
214212

OREData/ored/portfolio/bond.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,6 @@ class BondData : public XMLSerializable {
146146
\ingroup tradedata
147147
*/
148148
class Bond : public Trade {
149-
static TradeBuilderRegister<TradeBuilder<Bond>> reg_;
150-
151149
public:
152150
//! Default Constructor
153151
explicit Bond() : Trade("Bond") {}

OREData/ored/portfolio/bondoption.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ using namespace QuantExt;
4646
namespace ore {
4747
namespace data {
4848

49-
TradeBuilderRegister<TradeBuilder<BondOption>> BondOption::reg_("BondOption");
50-
5149
void BondOption::build(const boost::shared_ptr<EngineFactory>& engineFactory) {
5250
DLOG("Building Bond Option: " << id());
5351

OREData/ored/portfolio/bondoption.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ namespace data {
3737
\ingroup tradedata
3838
*/
3939
class BondOption : public Trade {
40-
static TradeBuilderRegister<TradeBuilder<BondOption>> reg_;
41-
4240
public:
4341
//! Default constructor
4442
BondOption() : Trade("BondOption"), redemption_(0.0), knocksOut_(false) {}

OREData/ored/portfolio/bondrepo.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,6 @@ using namespace QuantExt;
3838
namespace ore {
3939
namespace data {
4040

41-
TradeBuilderRegister<TradeBuilder<BondRepo>> BondRepo::reg_("BondRepo");
42-
4341
void BondRepo::build(const boost::shared_ptr<EngineFactory>& engineFactory) {
4442
DLOG("BondRepo::build() called for trade " << id());
4543

OREData/ored/portfolio/bondrepo.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@ namespace ore {
3232
namespace data {
3333

3434
class BondRepo : public Trade {
35-
static TradeBuilderRegister<TradeBuilder<BondRepo>> reg_;
36-
3735
public:
3836
BondRepo() : Trade("BondRepo") {}
3937

OREData/ored/portfolio/bondtotalreturnswap.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ using namespace QuantExt;
4646
namespace ore {
4747
namespace data {
4848

49-
TradeBuilderRegister<TradeBuilder<BondTRS>> BondTRS::reg_("BondTRS");
50-
5149
void BondTRS::build(const boost::shared_ptr<EngineFactory>& engineFactory) {
5250
DLOG("BondTRS::build() called for trade " << id());
5351

0 commit comments

Comments
 (0)