Skip to content

Commit 8083248

Browse files
committed
Merge remote-tracking branch 'nicoB77/pr_setup' into gh_206_210
2 parents 2073438 + 5804ba2 commit 8083248

5 files changed

Lines changed: 22 additions & 2 deletions

File tree

Examples/Example_44/ExpectedOutput/SIMM2.6_10D/simm.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#Portfolio,ProductClass,RiskClass,MarginType,Bucket,SimmSide,Regulation,InitialMargin,Currency,CalculationCurrency
1+
Portfolio,ProductClass,RiskClass,MarginType,Bucket,SimmSide,Regulation,InitialMargin,Currency,CalculationCurrency
22
CRIF_20191230,RatesFX,InterestRate,Delta,All,Call,ESA,811888.16,USD,USD
33
CRIF_20191230,RatesFX,InterestRate,Delta,USD,Call,ESA,811888.16,USD,USD
44
CRIF_20191230,RatesFX,InterestRate,Vega,All,Call,ESA,210187.75,USD,USD

Examples/Example_44/Input/ore_SIMM2.6_10D.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
<Parameter name="pricingEnginesFile">../../Input/pricingengine.xml</Parameter>
1616
<Parameter name="portfolioFile"></Parameter>
1717
<Parameter name="observationModel">None</Parameter>
18+
<Parameter name="csvCommentReportHeader">N</Parameter>
1819
</Setup>
1920
<Markets>
2021
<Parameter name="lgmcalibration">default</Parameter>
@@ -30,6 +31,7 @@
3031
<Parameter name="crif">crif.csv</Parameter>
3132
<Parameter name="calculationCurrency">USD</Parameter>
3233
<Parameter name="enforceIMRegulations">Y</Parameter>
34+
<Parameter name="writeIntermediateReports">N</Parameter>
3335
<Parameter name="mporDays">10</Parameter>
3436
</Analytic>
3537
</Analytics>

OREAnalytics/orea/app/analytics/simmanalytic.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,9 @@ class SimmAnalytic : public Analytic {
4747
: Analytic(std::make_unique<SimmAnalyticImpl>(inputs), {"SIMM"}, inputs, false, false, false, false),
4848
crif_(crif),
4949
hasNettingSetDetails_(hasNettingSetDetails),
50-
determineWinningRegulations_(determineWinningRegulations) {}
50+
determineWinningRegulations_(determineWinningRegulations) {
51+
setWriteIntermediateReports(inputs->writeSimmIntermediateReports());
52+
}
5153

5254
const Crif& crif() const { return crif_; }
5355
bool hasNettingSetDetails() { return hasNettingSetDetails_; }

OREAnalytics/orea/app/inputparameters.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,7 @@ class InputParameters {
307307
void setSimmResultCurrency(const std::string& s) { simmResultCurrency_ = s; }
308308
void setSimmReportingCurrency(const std::string& s) { simmReportingCurrency_ = s; }
309309
void setEnforceIMRegulations(bool b) { enforceIMRegulations_= b; }
310+
void setWriteSimmIntermediateReports(bool b) { writeSimmIntermediateReports_ = b; }
310311

311312
// Setters for ZeroToParSensiConversion
312313
void setParConversionXbsParConversion(bool b) { parConversionXbsParConversion_ = b; }
@@ -567,6 +568,7 @@ class InputParameters {
567568
const std::string& simmReportingCurrency() { return simmReportingCurrency_; }
568569
bool enforceIMRegulations() { return enforceIMRegulations_; }
569570
boost::shared_ptr<SimmConfiguration> getSimmConfiguration();
571+
bool writeSimmIntermediateReports() { return writeSimmIntermediateReports_; }
570572

571573
/**************************************************
572574
* Getters for Zero to Par Sensi conversion
@@ -820,6 +822,7 @@ class InputParameters {
820822
std::string simmReportingCurrency_ = "";
821823
bool enforceIMRegulations_ = false;
822824
bool useSimmParameters_ = true;
825+
bool writeSimmIntermediateReports_ = true;
823826

824827
/***************
825828
* Zero to Par Conversion analytic

OREAnalytics/orea/app/oreapp.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -647,6 +647,15 @@ void OREApp::buildInputParameters(boost::shared_ptr<InputParameters> inputs,
647647
LOG("MarketContext::" << m.first << " = " << m.second);
648648
}
649649

650+
if (params_->has("setup", "csvCommentReportHeader"))
651+
inputs->setCsvCommentCharacter(parseBool(params_->get("setup", "csvCommentReportHeader")));
652+
653+
if (params_->has("setup", "csvSeparator")) {
654+
tmp = params_->get("setup", "csvSeparator");
655+
QL_REQUIRE(tmp.size() == 1, "csvSeparator must be exactly one character");
656+
inputs->setCsvSeparator(tmp[0]);
657+
}
658+
650659
/*************
651660
* NPV
652661
*************/
@@ -917,6 +926,10 @@ void OREApp::buildInputParameters(boost::shared_ptr<InputParameters> inputs,
917926
tmp = params_->get("simm", "enforceIMRegulations", false);
918927
if (tmp != "")
919928
inputs->setEnforceIMRegulations(parseBool(tmp));
929+
930+
tmp = params_->get("simm", "writeIntermediateReports", false);
931+
if (tmp != "")
932+
inputs->setWriteSimmIntermediateReports(parseBool(tmp));
920933
}
921934

922935
/************

0 commit comments

Comments
 (0)