Skip to content

Commit 4cdc4d0

Browse files
NathanielVolfangojenkins
authored andcommitted
QPR-11462 -- Add back in SIMMResultCurrency to SIMM backtest reports and redefine 'Currency' as the 'discounting' currency
1 parent d66fa9a commit 4cdc4d0

4 files changed

Lines changed: 16 additions & 14 deletions

File tree

OREAnalytics/orea/engine/marketriskbacktest.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,15 @@ const QuantLib::ext::shared_ptr<ore::data::Report>& MarketRiskBacktest::Backtest
4646
}
4747

4848
MarketRiskBacktest::MarketRiskBacktest(
49-
const std::string& baseCurrency,
49+
const std::string& calculationCurrency,
5050
std::unique_ptr<BacktestArgs> btArgs,
5151
std::unique_ptr<SensiRunArgs> sensiArgs,
5252
std::unique_ptr<FullRevalArgs> revalArgs,
5353
std::unique_ptr<MultiThreadArgs> mtArgs,
5454
const ext::shared_ptr<HistoricalScenarioGenerator>& hisScenGen,
5555
const bool breakdown,
5656
const bool requireTradePnl)
57-
: MarketRiskReport(baseCurrency, btArgs->backtestPeriod_, hisScenGen, std::move(sensiArgs), std::move(revalArgs),
57+
: MarketRiskReport(calculationCurrency, btArgs->backtestPeriod_, hisScenGen, std::move(sensiArgs), std::move(revalArgs),
5858
std::move(mtArgs), breakdown, requireTradePnl),
5959
btArgs_(std::move(btArgs)) {
6060
init();
@@ -403,7 +403,7 @@ void MarketRiskBacktest::addPnlRow(const QuantLib::ext::shared_ptr<BacktestRepor
403403
.add(shift_2)
404404
.add(deltaPnl)
405405
.add(gammaPnl)
406-
.add(baseCurrency_);
406+
.add(calculationCurrency_);
407407
}
408408

409409
void BacktestPNLCalculator::writePNL(Size scenarioIdx, bool isCall, const RiskFactorKey& key_1, Real shift_1,

OREAnalytics/orea/engine/marketriskbacktest.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ class MarketRiskBacktest : public ore::analytics::MarketRiskReport {
122122
void reset() { var = 0.0; }
123123
};
124124

125-
MarketRiskBacktest(const std::string& baseCurrency,
125+
MarketRiskBacktest(const std::string& calculationCurrency,
126126
std::unique_ptr<BacktestArgs> btArgs,
127127
std::unique_ptr<SensiRunArgs> sensiArgs = nullptr,
128128
std::unique_ptr<FullRevalArgs> revalArgs = nullptr,

OREAnalytics/orea/engine/marketriskreport.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,11 @@ void MarketRiskReport::init() {
8383
vector<Date>(1, fullRevalArgs_->simMarket_->asofDate()), hisScenGen_->numScenarios());
8484

8585
histPnlGen_ = QuantLib::ext::make_shared<HistoricalPnlGenerator>(
86-
baseCurrency_, fullRevalArgs_->portfolio_, fullRevalArgs_->simMarket_,
86+
calculationCurrency_, fullRevalArgs_->portfolio_, fullRevalArgs_->simMarket_,
8787
hisScenGen_, cube, factory_->modelBuilders(), fullRevalArgs_->dryRun_);
8888
} else {
8989
histPnlGen_ = QuantLib::ext::make_shared<HistoricalPnlGenerator>(
90-
baseCurrency_, fullRevalArgs_->portfolio_, hisScenGen_,
90+
calculationCurrency_, fullRevalArgs_->portfolio_, hisScenGen_,
9191
fullRevalArgs_->engineData_,
9292
multiThreadArgs_->nThreads_, multiThreadArgs_->today_, multiThreadArgs_->loader_,
9393
multiThreadArgs_->curveConfigs_, multiThreadArgs_->todaysMarketParams_,

OREAnalytics/orea/engine/marketriskreport.hpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -154,13 +154,15 @@ class MarketRiskReport : public ore::data::ProgressReporter {
154154
std::vector<QuantLib::ext::shared_ptr<ore::data::Report>> reports_;
155155
};
156156

157-
MarketRiskReport(const std::string& baseCurrency, boost::optional<ore::data::TimePeriod> period, const QuantLib::ext::shared_ptr<HistoricalScenarioGenerator>& hisScenGen = nullptr,
158-
std::unique_ptr<SensiRunArgs> sensiArgs = nullptr, std::unique_ptr<FullRevalArgs> fullRevalArgs = nullptr,
159-
std::unique_ptr<MultiThreadArgs> multiThreadArgs = nullptr, const bool breakdown = false,
160-
const bool requireTradePnl = false)
161-
: baseCurrency_(baseCurrency), period_(period), hisScenGen_(hisScenGen), sensiArgs_(std::move(sensiArgs)),
162-
fullRevalArgs_(std::move(fullRevalArgs)), multiThreadArgs_(std::move(multiThreadArgs)), breakdown_(breakdown),
163-
requireTradePnl_(requireTradePnl) {}
157+
MarketRiskReport(const std::string& calculationCurrency, boost::optional<ore::data::TimePeriod> period,
158+
const QuantLib::ext::shared_ptr<HistoricalScenarioGenerator>& hisScenGen = nullptr,
159+
std::unique_ptr<SensiRunArgs> sensiArgs = nullptr,
160+
std::unique_ptr<FullRevalArgs> fullRevalArgs = nullptr,
161+
std::unique_ptr<MultiThreadArgs> multiThreadArgs = nullptr, const bool breakdown = false,
162+
const bool requireTradePnl = false)
163+
: calculationCurrency_(calculationCurrency), period_(period), hisScenGen_(hisScenGen),
164+
sensiArgs_(std::move(sensiArgs)), fullRevalArgs_(std::move(fullRevalArgs)),
165+
multiThreadArgs_(std::move(multiThreadArgs)), breakdown_(breakdown), requireTradePnl_(requireTradePnl) {}
164166
virtual ~MarketRiskReport() {}
165167

166168
virtual void init();
@@ -183,7 +185,7 @@ class MarketRiskReport : public ore::data::ProgressReporter {
183185
bool sensiBased_ = false;
184186
bool fullReval_ = false;
185187

186-
std::string baseCurrency_;
188+
std::string calculationCurrency_;
187189
boost::optional<ore::data::TimePeriod> period_;
188190
QuantLib::ext::shared_ptr<HistoricalScenarioGenerator> hisScenGen_;
189191
std::unique_ptr<SensiRunArgs> sensiArgs_;

0 commit comments

Comments
 (0)