Skip to content

Commit 422c299

Browse files
committed
Revert "QPR-13700 add option to use par coupons for curve and trade building"
This reverts commit e9306ef.
1 parent c1139c2 commit 422c299

36 files changed

Lines changed: 206 additions & 296 deletions

ORE-SWIG/OREAnalytics-SWIG/SWIG/orea_app.i

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,6 @@ public:
127127
void setBuildFailedTrades(bool b);
128128
void setObservationModel(const std::string& s);
129129
void setImplyTodaysFixings(bool b);
130-
void setUseAtParCouponCurves(bool b);
131-
void setUseAtParCouponTrades(bool b);
132130
void setMarketConfig(const std::string& config, const std::string& context);
133131
void setResultsPath(boost::filesystem::path resultsPath);
134132
void setRefDataManager(const ext::shared_ptr<ore::data::BasicReferenceDataManager>& refDataManager);

OREAnalytics/orea/app/analytic.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ void Analytic::buildMarket(const QuantLib::ext::shared_ptr<ore::data::InMemoryLo
261261
market_ = QuantLib::ext::make_shared<TodaysMarket>(
262262
configurations().asofDate, configurations().todaysMarketParams, loader_, configurations().curveConfig,
263263
inputs()->continueOnError(), false, inputs()->lazyMarketBuilding(), inputs()->refDataManager(), false,
264-
inputs()->iborFallbackConfig(), true, true, inputs()->useAtParCouponsCurves());
264+
inputs()->iborFallbackConfig());
265265
} catch (const std::exception& e) {
266266
if (marketRequired) {
267267
stopTimer("buildMarket()");
@@ -295,7 +295,7 @@ void Analytic::buildPortfolio(const bool emitStructuredError) {
295295

296296
LOG("Build the portfolio");
297297
QuantLib::ext::shared_ptr<EngineFactory> factory = impl()->engineFactory();
298-
portfolio()->build(factory, "analytic/" + label(), emitStructuredError, inputs()->useAtParCouponsTrades());
298+
portfolio()->build(factory, "analytic/" + label(), emitStructuredError);
299299

300300
// remove dates that will have matured
301301
Date maturityDate = inputs()->asof();
@@ -342,9 +342,9 @@ QuantLib::ext::shared_ptr<Loader> implyBondSpreads(const Date& asof,
342342

343343
if (!securities.empty()) {
344344
// always continue on error and always use lazy market building
345-
QuantLib::ext::shared_ptr<Market> market = QuantLib::ext::make_shared<TodaysMarket>(
346-
asof, todaysMarketParams, loader, curveConfigs, true, false, true, params->refDataManager(), false,
347-
params->iborFallbackConfig(), false, true, params->useAtParCouponsCurves());
345+
QuantLib::ext::shared_ptr<Market> market =
346+
QuantLib::ext::make_shared<TodaysMarket>(asof, todaysMarketParams, loader, curveConfigs, true, false, true,
347+
params->refDataManager(), false, params->iborFallbackConfig());
348348
return BondSpreadImply::implyBondSpreads(securities, params->refDataManager(), market, params->pricingEngine(),
349349
Market::defaultConfiguration, params->iborFallbackConfig());
350350
} else {

OREAnalytics/orea/app/analytics/crifanalytic.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,7 @@ computeSensitivities(QuantLib::ext::shared_ptr<ore::analytics::SensitivityAnalys
6565
analytic->configurations().sensiScenarioData, inputs->sensiRecalibrateModels(),
6666
inputs->sensiLaxFxConversion(), analytic->configurations().curveConfig,
6767
analytic->configurations().todaysMarketParams, false, inputs->refDataManager(),
68-
inputs->iborFallbackConfig(), true, inputs->dryRun(), "analytic/" + analytic->label(),
69-
inputs->useAtParCouponsCurves(), inputs->useAtParCouponsTrades());
68+
inputs->iborFallbackConfig(), true, inputs->dryRun(), "analytic/" + analytic->label());
7069
}
7170

7271
LOG("Sensitivity analysis initialised");
@@ -211,8 +210,7 @@ void CrifAnalyticImpl::runAnalytic(const QuantLib::ext::shared_ptr<ore::data::In
211210
analytic()->startTimer("applySimmExemptions()");
212211
try {
213212
std::tie(removedTrades, modifiedTrades) =
214-
applySimmExemptions(*analytic()->portfolio(), engineFactory(), crifAnalytic->simmExemptionOverrides(),
215-
inputs_->useAtParCouponsTrades());
213+
applySimmExemptions(*analytic()->portfolio(), engineFactory(), crifAnalytic->simmExemptionOverrides());
216214
} catch (std::exception& e) {
217215
QL_FAIL(e.what());
218216
}

OREAnalytics/orea/app/analytics/pnlanalytic.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -334,8 +334,7 @@ void PnlAnalyticImpl::runAnalytic(const QuantLib::ext::shared_ptr<ore::data::InM
334334
sensiAnalytic->setMarket(simMarket1);
335335
sensiAnalytic->configurations().simMarketParams = analytic()->configurations().simMarketParams;
336336
sensiAnalytic->configurations().sensiScenarioData = analytic()->configurations().sensiScenarioData;
337-
mporPortfolioNew->build(analytic()->impl()->engineFactory(), "portfolio_t1_m0_p1_new", true,
338-
inputs_->useAtParCouponsTrades());
337+
mporPortfolioNew->build(analytic()->impl()->engineFactory(), "portfolio_t1_m0_p1_new");
339338
sensiAnalytic->setPortfolio(mporPortfolioNew);
340339
sensiAnalytic->buildPortfolio();
341340

OREAnalytics/orea/app/analytics/pricinganalytic.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,7 @@ void PricingAnalyticImpl::runAnalytic(
159159
analytic()->configurations().sensiScenarioData, inputs_->sensiRecalibrateModels(),
160160
inputs_->sensiLaxFxConversion(), analytic()->configurations().curveConfig,
161161
analytic()->configurations().todaysMarketParams, ccyConv, inputs_->refDataManager(),
162-
inputs_->iborFallbackConfig(), true, inputs_->dryRun(), "sensi analysis",
163-
inputs_->useAtParCouponsCurves(), inputs_->useAtParCouponsTrades());
162+
inputs_->iborFallbackConfig(), true, inputs_->dryRun());
164163
LOG("Multi-threaded sensi analysis created");
165164
}
166165

OREAnalytics/orea/app/analytics/stresstestanalytic.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,21 +99,21 @@ void StressTestAnalyticImpl::runAnalytic(const QuantLib::ext::shared_ptr<ore::da
9999
QuantLib::ext::make_shared<InMemoryReport>(inputs_->reportBufferSize());
100100
analytic()->addReport(label(), "stress_scenarios", scenarioReport);
101101

102-
if (inputs_->scenarioReader()) {
102+
if (inputs_->scenarioReader()) {
103103
runStressTest(analytic()->portfolio(), analytic()->market(), marketConfig, inputs_->pricingEngine(),
104104
analytic()->configurations().simMarketParams, inputs_->scenarioReader(), report, cfReport,
105105
inputs_->stressThreshold(), inputs_->stressPrecision(), inputs_->includePastCashflows(),
106106
*analytic()->configurations().curveConfig, *analytic()->configurations().todaysMarketParams,
107107
inputs_->refDataManager(), inputs_->iborFallbackConfig(), inputs_->continueOnError(),
108-
scenarioReport, inputs_->useAtParCouponsTrades());
108+
scenarioReport);
109109
} else {
110110
QL_REQUIRE(scenarioData, "StressTestAnalytic::runAnalytic: No stress scenario data provided.");
111111
runStressTest(analytic()->portfolio(), analytic()->market(), marketConfig, inputs_->pricingEngine(),
112112
analytic()->configurations().simMarketParams, scenarioData, report, cfReport,
113113
inputs_->stressThreshold(), inputs_->stressPrecision(), inputs_->includePastCashflows(),
114114
*analytic()->configurations().curveConfig, *analytic()->configurations().todaysMarketParams,
115115
nullptr, inputs_->refDataManager(), inputs_->iborFallbackConfig(), inputs_->continueOnError(),
116-
scenarioReport, inputs_->useAtParCouponsTrades());
116+
scenarioReport);
117117
}
118118

119119
analytic()->addReport(label(), "stress", report);

OREAnalytics/orea/app/analytics/varanalytic.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,7 @@ void ParametricVarAnalyticImpl::setVarReport(const QuantLib::ext::shared_ptr<ore
100100

101101
varReport_ = ext::make_shared<ParametricVarReport>(
102102
inputs_->baseCurrency(), analytic()->portfolio(), inputs_->portfolioFilter(), inputs_->varQuantiles(),
103-
varParams, inputs_->getVarSalvagingAlgorithm(), QuantLib::ext::nullopt, std::move(sensiArgs),
104-
inputs_->varBreakDown(), inputs_->useAtParCouponsCurves(), inputs_->useAtParCouponsTrades());
103+
varParams, inputs_->getVarSalvagingAlgorithm(), QuantLib::ext::nullopt, std::move(sensiArgs), inputs_->varBreakDown());
105104
} else {
106105
TimePeriod benchmarkVarPeriod(parseListOfValues<Date>(inputs_->benchmarkVarPeriod(), &parseDate),
107106
inputs_->mporDays(), inputs_->mporCalendar());
@@ -182,10 +181,10 @@ void HistoricalSimulationVarAnalyticImpl::setVarReport(
182181
simMarket, inputs_->pricingEngine(), inputs_->refDataManager(), inputs_->iborFallbackConfig());
183182

184183
varReport_ = ext::make_shared<HistoricalSimulationVarReport>(
185-
inputs_->baseCurrency(), analytic()->portfolio(), inputs_->portfolioFilter(), inputs_->varQuantiles(),
186-
benchmarkVarPeriod, scenarios, std::move(fullRevalArgs), inputs_->varBreakDown(),
187-
inputs_->includeExpectedShortfall(), inputs_->tradePnl(), inputs_->useAtParCouponsCurves(),
188-
inputs_->useAtParCouponsTrades());
184+
inputs_->baseCurrency(), analytic()->portfolio(), inputs_->portfolioFilter(),
185+
inputs_->varQuantiles(), benchmarkVarPeriod, scenarios, std::move(fullRevalArgs), inputs_->varBreakDown(), inputs_->includeExpectedShortfall(),
186+
inputs_->tradePnl());
187+
189188
}
190189

191190
void HistoricalSimulationVarAnalyticImpl::addAdditionalReports(

OREAnalytics/orea/app/analytics/xvaanalytic.cpp

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ XvaAnalyticImpl::classicRun(const QuantLib::ext::shared_ptr<Portfolio>& portfoli
464464
classicPortfolio_->add(trade);
465465
QL_REQUIRE(analytic()->market(), "today's market not set");
466466
QuantLib::ext::shared_ptr<EngineFactory> factory = engineFactory();
467-
classicPortfolio_->build(factory, "analytic/" + label(), true, inputs_->useAtParCouponsTrades());
467+
classicPortfolio_->build(factory, "analytic/" + label());
468468
Date maturityDate = inputs_->asof();
469469
if (inputs_->portfolioFilterDate() != Null<Date>())
470470
maturityDate = inputs_->portfolioFilterDate();
@@ -592,8 +592,7 @@ void XvaAnalyticImpl::buildClassicCube(const QuantLib::ext::shared_ptr<Portfolio
592592
analytic()->configurations().todaysMarketParams, inputs_->marketConfig("simulation"),
593593
analytic()->configurations().simMarketParams, false, false, QuantLib::ext::make_shared<ScenarioFilter>(),
594594
inputs_->refDataManager(), inputs_->iborFallbackConfig(), true, false, false, cubeFactory, {},
595-
cptyCubeFactory, "xva-simulation", offsetScenario_, inputs_->useAtParCouponsCurves(),
596-
inputs_->useAtParCouponsTrades());
595+
cptyCubeFactory, "xva-simulation", offsetScenario_);
597596

598597
engine.setAggregationScenarioData(scenarioData_);
599598
engine.registerProgressIndicator(progressBar);
@@ -664,8 +663,7 @@ void XvaAnalyticImpl::buildAmcPortfolio() {
664663
if (inputs_->amcTradeTypes().find(trade->tradeType()) != inputs_->amcTradeTypes().end()) {
665664
if (inputs_->amcCg() != XvaEngineCG::Mode::CubeGeneration) {
666665
auto t = trade;
667-
auto [ft, success] =
668-
buildTrade(t, factory, "analytic/" + label(), false, true, true, inputs_->useAtParCouponsTrades());
666+
auto [ft, success] = buildTrade(t, factory, "analytic/" + label(), false, true, true);
669667
if (success)
670668
amcPortfolio_->add(trade);
671669
else
@@ -733,8 +731,7 @@ void XvaAnalyticImpl::amcRun(bool doClassicRun, bool continueOnCalibrationError,
733731
inputs_->xvaCgUseRedBlocks(), inputs_->xvaCgUseExternalComputeDevice(),
734732
inputs_->xvaCgExternalDeviceCompatibilityMode(), inputs_->xvaCgUseDoublePrecisionForExternalCalculation(),
735733
inputs_->xvaCgExternalComputeDevice(), inputs_->xvaCgUsePythonIntegration(),
736-
inputs_->xvaCgUsePythonIntegrationDynamicIm(), true, true, true, inputs_->useAtParCouponsCurves(),
737-
inputs_->useAtParCouponsTrades(), "xva analytic");
734+
inputs_->xvaCgUsePythonIntegrationDynamicIm(), true, true, true, "xva analytic");
738735

739736
engine.registerProgressIndicator(progressBar);
740737
engine.registerProgressIndicator(progressLog);
@@ -796,8 +793,7 @@ void XvaAnalyticImpl::amcRun(bool doClassicRun, bool continueOnCalibrationError,
796793
inputs_->marketConfig("simulation"), inputs_->amcPathDataInput(), inputs_->amcPathDataOutput(),
797794
inputs_->amcIndividualTrainingInput(), inputs_->amcIndividualTrainingOutput(),
798795
inputs_->refDataManager(), inputs_->iborFallbackConfig(), true, cubeFactory, offsetScenario_,
799-
simMarketParams, continueOnCalibrationError, allowModelFallbacks, inputs_->useAtParCouponsCurves(),
800-
inputs_->useAtParCouponsTrades());
796+
simMarketParams, continueOnCalibrationError, allowModelFallbacks);
801797

802798
amcEngine.registerProgressIndicator(progressBar);
803799
amcEngine.registerProgressIndicator(progressLog);
@@ -1020,8 +1016,7 @@ void XvaAnalyticImpl::runAnalytic(const QuantLib::ext::shared_ptr<ore::data::InM
10201016
inputs_->xvaCgUseRedBlocks(), inputs_->xvaCgUseExternalComputeDevice(),
10211017
inputs_->xvaCgExternalDeviceCompatibilityMode(), inputs_->xvaCgUseDoublePrecisionForExternalCalculation(),
10221018
inputs_->xvaCgExternalComputeDevice(), inputs_->xvaCgUsePythonIntegration(),
1023-
inputs_->xvaCgUsePythonIntegrationDynamicIm(), true, true, true, inputs_->useAtParCouponsCurves(),
1024-
inputs_->useAtParCouponsTrades(), "xva analytic");
1019+
inputs_->xvaCgUsePythonIntegrationDynamicIm(), true, true, true, "xva analytic");
10251020

10261021
engine.run();
10271022

OREAnalytics/orea/app/inputparameters.hpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,6 @@ class InputParameters {
132132
void setBuildFailedTrades(bool b) { buildFailedTrades_ = b; }
133133
void setObservationModel(const std::string& s) { observationModel_ = s; }
134134
void setImplyTodaysFixings(bool b) { implyTodaysFixings_ = b; }
135-
void setUseAtParCouponsCurves(bool b) { useAtParCouponsCurves_ = b; }
136-
void setUseAtParCouponsTrades(bool b) { useAtParCouponsTrades_ = b; }
137135
void setEnrichIndexFixings(bool b) { enrichIndexFixings_ = b; }
138136
void setIgnoreFixingLead(Size i) { ignoreFixingLead_ = i; }
139137
void setIgnoreFixingLag(Size i) { ignoreFixingLag_ = i; }
@@ -611,8 +609,6 @@ class InputParameters {
611609
bool buildFailedTrades() const { return buildFailedTrades_; }
612610
const std::string& observationModel() const { return observationModel_; }
613611
bool implyTodaysFixings() const { return implyTodaysFixings_; }
614-
bool useAtParCouponsCurves() const { return useAtParCouponsCurves_; }
615-
bool useAtParCouponsTrades() const { return useAtParCouponsTrades_; }
616612
bool enrichIndexFixings() const { return enrichIndexFixings_; }
617613
Size ignoreFixingLead() const { return ignoreFixingLead_; }
618614
Size ignoreFixingLag() const { return ignoreFixingLag_; }
@@ -1104,8 +1100,6 @@ class InputParameters {
11041100
bool buildFailedTrades_ = true;
11051101
std::string observationModel_ = "None";
11061102
bool implyTodaysFixings_ = false;
1107-
bool useAtParCouponsCurves_ = true;
1108-
bool useAtParCouponsTrades_ = true;
11091103
bool enrichIndexFixings_ = false;
11101104
Size ignoreFixingLead_ = 0;
11111105
Size ignoreFixingLag_ = 0;

OREAnalytics/orea/app/oreapp.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -752,14 +752,6 @@ void OREAppInputParameters::loadParameters() {
752752
if (tmp != "")
753753
setImplyTodaysFixings(ore::data::parseBool(tmp));
754754

755-
tmp = params_->get("setup", "useAtParCouponCurves", false);
756-
if (tmp != "")
757-
setUseAtParCouponsCurves(ore::data::parseBool(tmp));
758-
759-
tmp = params_->get("setup", "useAtParCouponTrades", false);
760-
if (tmp != "")
761-
setUseAtParCouponsTrades(ore::data::parseBool(tmp));
762-
763755
tmp = params_->get("setup", "enrichIndexFixings", false);
764756
if (tmp != "")
765757
setEnrichIndexFixings(ore::data::parseBool(tmp));

0 commit comments

Comments
 (0)