Skip to content

Commit b8eda2c

Browse files
pcaspersjenkins
authored andcommitted
QPR-11979 map credit free convertible bonds to Equity instead of Rates, general clean-up
1 parent 8fef25b commit b8eda2c

2 files changed

Lines changed: 0 additions & 233 deletions

File tree

OREAnalytics/orea/simm/simmconfiguration.cpp

Lines changed: 0 additions & 229 deletions
Original file line numberDiff line numberDiff line change
@@ -116,223 +116,6 @@ const Size SimmConfiguration::numberOfMarginTypes = marginTypeMap.size();
116116
const Size SimmConfiguration::numberOfProductClasses = productClassMap.size();
117117
const Size SimmConfiguration::numberOfRegulations = regulationsMap.size();
118118

119-
// Initialise the ORE trade to product class mapping
120-
// Note that not all trade types are here, some are defined by logic (e.g. FxForward)
121-
const map<string, SimmConfiguration::ProductClass> tradeProductClassMap = {
122-
{"CommodityAccumulator", SimmConfiguration::ProductClass::Commodity},
123-
{"CommodityAsianOption", SimmConfiguration::ProductClass::Commodity},
124-
{"CommodityAveragePriceOption", SimmConfiguration::ProductClass::Commodity},
125-
{"CommodityBasketOption", SimmConfiguration::ProductClass::Commodity},
126-
{"CommodityForward", SimmConfiguration::ProductClass::Commodity},
127-
{"CommodityOption", SimmConfiguration::ProductClass::Commodity},
128-
{"CommodityDigitalAveragePriceOption", SimmConfiguration::ProductClass::Commodity},
129-
{"CommodityDigitalOption", SimmConfiguration::ProductClass::Commodity},
130-
{"CommodityOptionStrip", SimmConfiguration::ProductClass::Commodity},
131-
{"CommodityPosition", SimmConfiguration::ProductClass::Commodity},
132-
{"CommodityRainbowOption", SimmConfiguration::ProductClass::Commodity},
133-
{"CommoditySpreadOption", SimmConfiguration::ProductClass::Commodity},
134-
{"CommoditySwap", SimmConfiguration::ProductClass::Commodity},
135-
{"CommoditySwaption", SimmConfiguration::ProductClass::Commodity},
136-
{"CommodityTaRF", SimmConfiguration::ProductClass::Commodity},
137-
{"CommodityVarianceSwap", SimmConfiguration::ProductClass::Commodity},
138-
{"CommodityPairwiseVarianceSwap", SimmConfiguration::ProductClass::Commodity},
139-
{"CommodityBasketVarianceSwap", SimmConfiguration::ProductClass::Commodity},
140-
{"Ascot", SimmConfiguration::ProductClass::Credit},
141-
{"AssetBackedCreditDefaultSwap", SimmConfiguration::ProductClass::Credit},
142-
{"CBO", SimmConfiguration::ProductClass::Credit},
143-
{"CreditDefaultSwap", SimmConfiguration::ProductClass::Credit},
144-
{"CreditDefaultSwapOption", SimmConfiguration::ProductClass::Credit},
145-
{"CreditLinkedSwap", SimmConfiguration::ProductClass::Credit},
146-
{"IndexCreditDefaultSwap", SimmConfiguration::ProductClass::Credit},
147-
{"IndexCreditDefaultSwapOption", SimmConfiguration::ProductClass::Credit},
148-
{"RiskParticipationAgreement", SimmConfiguration::ProductClass::Credit},
149-
{"SyntheticCDO", SimmConfiguration::ProductClass::Credit},
150-
{"Failed", SimmConfiguration::ProductClass::Empty},
151-
{"IMScheduleTrade", SimmConfiguration::ProductClass::Empty},
152-
{"SensiTrade", SimmConfiguration::ProductClass::Empty},
153-
{"UseCounterparty", SimmConfiguration::ProductClass::Empty},
154-
{"EquityAccumulator", SimmConfiguration::ProductClass::Equity},
155-
{"EquityAsianOption", SimmConfiguration::ProductClass::Equity},
156-
{"EquityAsianOption", SimmConfiguration::ProductClass::Equity},
157-
{"EquityBarrierOption", SimmConfiguration::ProductClass::Equity},
158-
{"EquityBasketOption", SimmConfiguration::ProductClass::Equity},
159-
{"EquityCliquetOption", SimmConfiguration::ProductClass::Equity},
160-
{"EquityDigitalOption", SimmConfiguration::ProductClass::Equity},
161-
{"EquityDoubleBarrierOption", SimmConfiguration::ProductClass::Equity},
162-
{"EquityDoubleTouchOption", SimmConfiguration::ProductClass::Equity},
163-
{"EquityEuropeanBarrierOption", SimmConfiguration::ProductClass::Equity},
164-
{"EquityForward", SimmConfiguration::ProductClass::Equity},
165-
{"EquityFutureOption", SimmConfiguration::ProductClass::Equity},
166-
{"EquityOption", SimmConfiguration::ProductClass::Equity},
167-
{"EquityOptionPosition", SimmConfiguration::ProductClass::Equity},
168-
{"EquityOutperformanceOption", SimmConfiguration::ProductClass::Equity},
169-
{"EquityPosition", SimmConfiguration::ProductClass::Equity},
170-
{"EquityRainbowOption", SimmConfiguration::ProductClass::Equity},
171-
{"EquitySwap", SimmConfiguration::ProductClass::Equity},
172-
{"EquityWorstOfBasketSwap", SimmConfiguration::ProductClass::Equity},
173-
{"EquityTaRF", SimmConfiguration::ProductClass::Equity},
174-
{"EquityTouchOption", SimmConfiguration::ProductClass::Equity},
175-
{"EquityVarianceSwap", SimmConfiguration::ProductClass::Equity},
176-
{"EquityPairwiseVarianceSwap", SimmConfiguration::ProductClass::Equity},
177-
{"EquityBasketVarianceSwap", SimmConfiguration::ProductClass::Equity},
178-
{"FxAccumulator", SimmConfiguration::ProductClass::RatesFX},
179-
{"FxAsianOption", SimmConfiguration::ProductClass::RatesFX},
180-
{"FxAsianOption", SimmConfiguration::ProductClass::RatesFX},
181-
{"FxBarrierOption", SimmConfiguration::ProductClass::RatesFX},
182-
{"FxBasketOption", SimmConfiguration::ProductClass::RatesFX},
183-
{"FxDigitalBarrierOption", SimmConfiguration::ProductClass::RatesFX},
184-
{"FxDigitalOption", SimmConfiguration::ProductClass::RatesFX},
185-
{"FxDoubleBarrierOption", SimmConfiguration::ProductClass::RatesFX},
186-
{"FxDoubleTouchOption", SimmConfiguration::ProductClass::RatesFX},
187-
{"FxEuropeanBarrierOption", SimmConfiguration::ProductClass::RatesFX},
188-
{"FxAverageForward", SimmConfiguration::ProductClass::RatesFX},
189-
{"FxForward", SimmConfiguration::ProductClass::RatesFX},
190-
{"FxKIKOBarrierOption", SimmConfiguration::ProductClass::RatesFX},
191-
{"FxOption", SimmConfiguration::ProductClass::RatesFX},
192-
{"FxRainbowOption", SimmConfiguration::ProductClass::RatesFX},
193-
{"FxSwap", SimmConfiguration::ProductClass::RatesFX},
194-
{"FxTaRF", SimmConfiguration::ProductClass::RatesFX},
195-
{"FxTouchOption", SimmConfiguration::ProductClass::RatesFX},
196-
{"FxVarianceSwap", SimmConfiguration::ProductClass::RatesFX},
197-
{"FxPairwiseVarianceSwap", SimmConfiguration::ProductClass::RatesFX},
198-
{"FxBasketVarianceSwap", SimmConfiguration::ProductClass::RatesFX},
199-
{"BalanceGuaranteedSwap", SimmConfiguration::ProductClass::RatesFX},
200-
{"Bond", SimmConfiguration::ProductClass::RatesFX},
201-
{"BondOption", SimmConfiguration::ProductClass::RatesFX},
202-
{"BondRepo", SimmConfiguration::ProductClass::RatesFX},
203-
{"BondTRS", SimmConfiguration::ProductClass::RatesFX},
204-
{"CallableSwap", SimmConfiguration::ProductClass::RatesFX},
205-
{"CapFloor", SimmConfiguration::ProductClass::RatesFX},
206-
{"ConvertibleBond", SimmConfiguration::ProductClass::RatesFX},
207-
{"FlexiSwap", SimmConfiguration::ProductClass::RatesFX},
208-
{"ForwardBond", SimmConfiguration::ProductClass::RatesFX},
209-
{"ForwardRateAgreement", SimmConfiguration::ProductClass::RatesFX},
210-
{"MultiLegOption", SimmConfiguration::ProductClass::RatesFX},
211-
{"CrossCurrencySwap", SimmConfiguration::ProductClass::RatesFX},
212-
{"Swap", SimmConfiguration::ProductClass::RatesFX},
213-
{"InflationSwap", SimmConfiguration::ProductClass::RatesFX},
214-
{"Swaption", SimmConfiguration::ProductClass::RatesFX},
215-
{"TotalReturnSwap", SimmConfiguration::ProductClass::RatesFX},
216-
{"ContractForDifference", SimmConfiguration::ProductClass::RatesFX},
217-
{"Autocallable_01", SimmConfiguration::ProductClass::Equity},
218-
// These are generic products that need logic to determine the product class, see
219-
// utilities.cpp/simmProductClassFromOreTrade()
220-
{"Autocallable_01", SimmConfiguration::ProductClass::Equity},
221-
{"CompositeTrade", SimmConfiguration::ProductClass::RatesFX},
222-
{"DoubleDigitalOption", SimmConfiguration::ProductClass::RatesFX},
223-
{"EuropeanOptionBarrier", SimmConfiguration::ProductClass::Equity},
224-
{"PerformanceOption_01", SimmConfiguration::ProductClass::Equity},
225-
{"ScriptedTrade", SimmConfiguration::ProductClass::Equity}};
226-
227-
// Initialise the ORE trade to product class mapping
228-
// Note that not all trade types are here, some are defined by logic (e.g. FxForward)
229-
const map<string, SimmConfiguration::ProductClass> tradeScheduleProductClassMap = {
230-
{"CommodityAccumulator", SimmConfiguration::ProductClass::Commodity},
231-
{"CommodityAsianOption", SimmConfiguration::ProductClass::Commodity},
232-
{"CommodityAveragePriceOption", SimmConfiguration::ProductClass::Commodity},
233-
{"CommodityBasketOption", SimmConfiguration::ProductClass::Commodity},
234-
{"CommodityDigitalAveragePriceOption", SimmConfiguration::ProductClass::Commodity},
235-
{"CommodityDigitalOption", SimmConfiguration::ProductClass::Commodity},
236-
{"CommodityForward", SimmConfiguration::ProductClass::Commodity},
237-
{"CommodityOption", SimmConfiguration::ProductClass::Commodity},
238-
{"CommodityOptionStrip", SimmConfiguration::ProductClass::Commodity},
239-
{"CommodityPosition", SimmConfiguration::ProductClass::Commodity},
240-
{"CommodityRainbowOption", SimmConfiguration::ProductClass::Commodity},
241-
{"CommodityWorstOfBasketSwap", SimmConfiguration::ProductClass::Commodity},
242-
{"CommoditySpreadOption", SimmConfiguration::ProductClass::Commodity},
243-
{"CommoditySwap", SimmConfiguration::ProductClass::Commodity},
244-
{"CommoditySwaption", SimmConfiguration::ProductClass::Commodity},
245-
{"CommodityTaRF", SimmConfiguration::ProductClass::Commodity},
246-
{"CommodityVarianceSwap", SimmConfiguration::ProductClass::Commodity},
247-
{"CommodityPairwiseVarianceSwap", SimmConfiguration::ProductClass::Commodity},
248-
{"CommodityBasketVarianceSwap", SimmConfiguration::ProductClass::Commodity},
249-
{"Ascot", SimmConfiguration::ProductClass::Credit},
250-
{"AssetBackedCreditDefaultSwap", SimmConfiguration::ProductClass::Credit},
251-
{"CBO", SimmConfiguration::ProductClass::Credit},
252-
{"CreditDefaultSwap", SimmConfiguration::ProductClass::Credit},
253-
{"CreditDefaultSwapOption", SimmConfiguration::ProductClass::Credit},
254-
{"CreditLinkedSwap", SimmConfiguration::ProductClass::Credit},
255-
{"IndexCreditDefaultSwap", SimmConfiguration::ProductClass::Credit},
256-
{"IndexCreditDefaultSwapOption", SimmConfiguration::ProductClass::Credit},
257-
{"RiskParticipationAgreement", SimmConfiguration::ProductClass::Credit},
258-
{"SyntheticCDO", SimmConfiguration::ProductClass::Credit},
259-
{"Failed", SimmConfiguration::ProductClass::Empty},
260-
{"IMScheduleTrade", SimmConfiguration::ProductClass::Empty},
261-
{"SensiTrade", SimmConfiguration::ProductClass::Empty},
262-
{"UseCounterparty", SimmConfiguration::ProductClass::Empty},
263-
{"EquityAccumulator", SimmConfiguration::ProductClass::Equity},
264-
{"EquityAsianOption", SimmConfiguration::ProductClass::Equity},
265-
{"EquityAsianOption", SimmConfiguration::ProductClass::Equity},
266-
{"EquityBarrierOption", SimmConfiguration::ProductClass::Equity},
267-
{"EquityBasketOption", SimmConfiguration::ProductClass::Equity},
268-
{"EquityCliquetOption", SimmConfiguration::ProductClass::Equity},
269-
{"EquityDigitalOption", SimmConfiguration::ProductClass::Equity},
270-
{"EquityDoubleBarrierOption", SimmConfiguration::ProductClass::Equity},
271-
{"EquityDoubleTouchOption", SimmConfiguration::ProductClass::Equity},
272-
{"EquityEuropeanBarrierOption", SimmConfiguration::ProductClass::Equity},
273-
{"EquityForward", SimmConfiguration::ProductClass::Equity},
274-
{"EquityFutureOption", SimmConfiguration::ProductClass::Equity},
275-
{"EquityOption", SimmConfiguration::ProductClass::Equity},
276-
{"EquityOptionPosition", SimmConfiguration::ProductClass::Equity},
277-
{"EquityOutperformanceOption", SimmConfiguration::ProductClass::Equity},
278-
{"EquityPosition", SimmConfiguration::ProductClass::Equity},
279-
{"EquityRainbowOption", SimmConfiguration::ProductClass::Equity},
280-
{"EquitySwap", SimmConfiguration::ProductClass::Equity},
281-
{"EquityTaRF", SimmConfiguration::ProductClass::Equity},
282-
{"EquityTouchOption", SimmConfiguration::ProductClass::Equity},
283-
{"EquityVarianceSwap", SimmConfiguration::ProductClass::Equity},
284-
{"EquityPairwiseVarianceSwap", SimmConfiguration::ProductClass::Equity},
285-
{"EquityBasketVarianceSwap", SimmConfiguration::ProductClass::Equity},
286-
{"FxAccumulator", SimmConfiguration::ProductClass::FX},
287-
{"FxAsianOption", SimmConfiguration::ProductClass::FX},
288-
{"FxAsianOption", SimmConfiguration::ProductClass::FX},
289-
{"FxBarrierOption", SimmConfiguration::ProductClass::FX},
290-
{"FxBasketOption", SimmConfiguration::ProductClass::FX},
291-
{"FxDigitalBarrierOption", SimmConfiguration::ProductClass::FX},
292-
{"FxDigitalOption", SimmConfiguration::ProductClass::FX},
293-
{"FxDoubleBarrierOption", SimmConfiguration::ProductClass::FX},
294-
{"FxDoubleTouchOption", SimmConfiguration::ProductClass::FX},
295-
{"FxEuropeanBarrierOption", SimmConfiguration::ProductClass::FX},
296-
{"FxWorstOfBasketSwap", SimmConfiguration::ProductClass::FX},
297-
{"FxAverageForward", SimmConfiguration::ProductClass::FX},
298-
{"FxForward", SimmConfiguration::ProductClass::FX},
299-
{"FxKIKOBarrierOption", SimmConfiguration::ProductClass::FX},
300-
{"FxOption", SimmConfiguration::ProductClass::FX},
301-
{"FxRainbowOption", SimmConfiguration::ProductClass::FX},
302-
{"FxSwap", SimmConfiguration::ProductClass::FX},
303-
{"FxTaRF", SimmConfiguration::ProductClass::FX},
304-
{"FxTouchOption", SimmConfiguration::ProductClass::FX},
305-
{"FxVarianceSwap", SimmConfiguration::ProductClass::FX},
306-
{"FxPairwiseVarianceSwap", SimmConfiguration::ProductClass::FX},
307-
{"FxBasketVarianceSwap", SimmConfiguration::ProductClass::FX},
308-
{"BalanceGuaranteedSwap", SimmConfiguration::ProductClass::Rates},
309-
{"Bond", SimmConfiguration::ProductClass::Rates},
310-
{"BondOption", SimmConfiguration::ProductClass::Rates},
311-
{"BondRepo", SimmConfiguration::ProductClass::Rates},
312-
{"BondTRS", SimmConfiguration::ProductClass::Rates},
313-
{"CallableSwap", SimmConfiguration::ProductClass::Rates},
314-
{"CapFloor", SimmConfiguration::ProductClass::Rates},
315-
{"ConvertibleBond", SimmConfiguration::ProductClass::Rates},
316-
{"FlexiSwap", SimmConfiguration::ProductClass::Rates},
317-
{"ForwardBond", SimmConfiguration::ProductClass::Rates},
318-
{"ForwardRateAgreement", SimmConfiguration::ProductClass::Rates},
319-
{"MultiLegOption", SimmConfiguration::ProductClass::Rates},
320-
{"CrossCurrencySwap", SimmConfiguration::ProductClass::Rates},
321-
{"Swap", SimmConfiguration::ProductClass::Rates},
322-
{"InflationSwap", SimmConfiguration::ProductClass::Rates},
323-
{"Swaption", SimmConfiguration::ProductClass::Rates},
324-
{"TotalReturnSwap", SimmConfiguration::ProductClass::Rates},
325-
{"ContractForDifference", SimmConfiguration::ProductClass::Rates},
326-
{"Autocallable_01", SimmConfiguration::ProductClass::Equity},
327-
// These are generic products that need logic to determine the product class, see
328-
// utilities.cpp/simmProductClassFromOreTrade()
329-
{"Autocallable_01", SimmConfiguration::ProductClass::Equity},
330-
{"CompositeTrade", SimmConfiguration::ProductClass::Rates},
331-
{"DoubleDigitalOption", SimmConfiguration::ProductClass::Rates},
332-
{"EuropeanOptionBarrier", SimmConfiguration::ProductClass::Equity},
333-
{"PerformanceOption_01", SimmConfiguration::ProductClass::Equity},
334-
{"ScriptedTrade", SimmConfiguration::ProductClass::Equity}};
335-
336119
set<SimmConfiguration::RiskClass> SimmConfiguration::riskClasses(bool includeAll) {
337120

338121
// This only works if 'All' is the last enum value
@@ -385,18 +168,6 @@ set<SimmConfiguration::ProductClass> SimmConfiguration::productClasses(bool incl
385168
return result;
386169
}
387170

388-
SimmConfiguration::ProductClass simmProductClassFromOreTradeType(const string& tradeType) {
389-
QL_REQUIRE(tradeProductClassMap.count(tradeType) > 0,
390-
"simmProductClassFromOreTradeType: tradeType '" << tradeType << "' not recognised");
391-
return tradeProductClassMap.at(tradeType);
392-
}
393-
394-
SimmConfiguration::ProductClass scheduleProductClassFromOreTradeType(const string& tradeType) {
395-
QL_REQUIRE(tradeScheduleProductClassMap.count(tradeType) > 0,
396-
"scheduleProductClassFromOreTradeType: tradeType '" << tradeType << "' not recognised");
397-
return tradeScheduleProductClassMap.at(tradeType);
398-
}
399-
400171
ostream& operator<<(ostream& out, const SimmConfiguration::SimmSide& s) {
401172
string side = s == SimmConfiguration::SimmSide::Call ? "Call" : "Post";
402173
return out << side;

OREAnalytics/orea/simm/simmconfiguration.hpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -349,9 +349,5 @@ std::string filterRegulations(const std::string& regsString, const std::vector<s
349349
//! From a vector of regulations, determine the winning regulation based on order of priority
350350
SimmConfiguration::Regulation getWinningRegulation(const std::vector<std::string>& winningRegulations);
351351

352-
SimmConfiguration::ProductClass simmProductClassFromOreTradeType(const std::string& tradeType);
353-
354-
SimmConfiguration::ProductClass scheduleProductClassFromOreTradeType(const std::string& tradeType);
355-
356352
} // namespace analytics
357353
} // namespace ore

0 commit comments

Comments
 (0)