Skip to content

Commit 0cb024d

Browse files
pcaspersjenkins
authored andcommitted
Merge branch 'master' of gitlab.acadiasoft.net:qs/oreplus
2 parents 74e4716 + 1c56260 commit 0cb024d

12 files changed

Lines changed: 34 additions & 176 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
@@ -309,6 +309,7 @@ class InputParameters {
309309
void setSimmResultCurrency(const std::string& s) { simmResultCurrency_ = s; }
310310
void setSimmReportingCurrency(const std::string& s) { simmReportingCurrency_ = s; }
311311
void setEnforceIMRegulations(bool b) { enforceIMRegulations_= b; }
312+
void setWriteSimmIntermediateReports(bool b) { writeSimmIntermediateReports_ = b; }
312313

313314
// Setters for ZeroToParSensiConversion
314315
void setParConversionXbsParConversion(bool b) { parConversionXbsParConversion_ = b; }
@@ -570,6 +571,7 @@ class InputParameters {
570571
const std::string& simmReportingCurrency() { return simmReportingCurrency_; }
571572
bool enforceIMRegulations() { return enforceIMRegulations_; }
572573
boost::shared_ptr<SimmConfiguration> getSimmConfiguration();
574+
bool writeSimmIntermediateReports() { return writeSimmIntermediateReports_; }
573575

574576
/**************************************************
575577
* Getters for Zero to Par Sensi conversion
@@ -824,6 +826,7 @@ class InputParameters {
824826
std::string simmReportingCurrency_ = "";
825827
bool enforceIMRegulations_ = false;
826828
bool useSimmParameters_ = true;
829+
bool writeSimmIntermediateReports_ = true;
827830

828831
/***************
829832
* Zero to Par Conversion analytic

OREAnalytics/orea/app/oreapp.cpp

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

651+
if (params_->has("setup", "csvCommentReportHeader"))
652+
inputs->setCsvCommentCharacter(parseBool(params_->get("setup", "csvCommentReportHeader")));
653+
654+
if (params_->has("setup", "csvSeparator")) {
655+
tmp = params_->get("setup", "csvSeparator");
656+
QL_REQUIRE(tmp.size() == 1, "csvSeparator must be exactly one character");
657+
inputs->setCsvSeparator(tmp[0]);
658+
}
659+
651660
/*************
652661
* NPV
653662
*************/
@@ -922,6 +931,10 @@ void OREApp::buildInputParameters(boost::shared_ptr<InputParameters> inputs,
922931
tmp = params_->get("simm", "enforceIMRegulations", false);
923932
if (tmp != "")
924933
inputs->setEnforceIMRegulations(parseBool(tmp));
934+
935+
tmp = params_->get("simm", "writeIntermediateReports", false);
936+
if (tmp != "")
937+
inputs->setWriteSimmIntermediateReports(parseBool(tmp));
925938
}
926939

927940
/************

OREData/ored/utilities/calendarparser.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
#include <qle/calendars/ireland.hpp>
3636
#include <qle/calendars/islamicweekendsonly.hpp>
3737
#include <qle/calendars/israel.hpp>
38-
#include <qle/calendars/largejointcalendar.hpp>
3938
#include <qle/calendars/luxembourg.hpp>
4039
#include <qle/calendars/malaysia.hpp>
4140
#include <qle/calendars/mauritius.hpp>
@@ -88,7 +87,7 @@ QuantLib::Calendar CalendarParser::parseCalendar(const std::string& name) const
8887
QL_FAIL("Cannot convert \"" << name << "\" to Calendar [unhandled exception]");
8988
}
9089
}
91-
return QuantExt::LargeJointCalendar(calendars);
90+
return QuantLib::JointCalendar(calendars);
9291
}
9392
}
9493

OREData/test/parser.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@
2727
#include <ql/time/calendars/austria.hpp>
2828
#include <ql/time/calendars/chile.hpp>
2929
#include <ql/time/calendars/france.hpp>
30+
#include <ql/time/calendars/jointcalendar.hpp>
3031
#include <ql/time/calendars/thailand.hpp>
3132
#include <ql/time/daycounters/all.hpp>
3233
#include <qle/calendars/colombia.hpp>
3334
#include <qle/calendars/israel.hpp>
34-
#include <qle/calendars/largejointcalendar.hpp>
3535
#include <qle/calendars/malaysia.hpp>
3636
#include <qle/calendars/netherlands.hpp>
3737
#include <qle/calendars/peru.hpp>
@@ -927,7 +927,7 @@ BOOST_AUTO_TEST_CASE(testJointCalendar) {
927927
Calendar peru = QuantExt::Peru();
928928

929929
cals.push_back(peru);
930-
Calendar joint1 = QuantExt::LargeJointCalendar(cals);
930+
Calendar joint1 = QuantLib::JointCalendar(cals);
931931

932932
std::vector<Date> hol = joint1.holidayList(Date(1, January, 2018), Date(31, December, 2018));
933933
BOOST_CHECK(hol.size() == expectedHolidays.size());
@@ -955,7 +955,7 @@ BOOST_AUTO_TEST_CASE(testJointCalendar) {
955955

956956
Calendar col = Colombia();
957957
cals.push_back(col);
958-
Calendar joint2 = QuantExt::LargeJointCalendar(cals);
958+
Calendar joint2 = QuantLib::JointCalendar(cals);
959959

960960
hol = joint2.holidayList(Date(1, January, 2018), Date(31, December, 2018));
961961
BOOST_CHECK(hol.size() == expectedHolidays.size());
@@ -978,7 +978,7 @@ BOOST_AUTO_TEST_CASE(testJointCalendar) {
978978

979979
Calendar phil = Philippines();
980980
cals.push_back(phil);
981-
Calendar joint3 = QuantExt::LargeJointCalendar(cals);
981+
Calendar joint3 = QuantLib::JointCalendar(cals);
982982

983983
hol = joint3.holidayList(Date(1, January, 2018), Date(31, December, 2018));
984984
BOOST_CHECK(hol.size() == expectedHolidays.size());
@@ -1004,7 +1004,7 @@ BOOST_AUTO_TEST_CASE(testJointCalendar) {
10041004

10051005
Calendar thai = Thailand();
10061006
cals.push_back(thai);
1007-
Calendar joint4 = QuantExt::LargeJointCalendar(cals);
1007+
Calendar joint4 = QuantLib::JointCalendar(cals);
10081008

10091009
hol = joint4.holidayList(Date(1, January, 2018), Date(31, December, 2018));
10101010
BOOST_CHECK(hol.size() == expectedHolidays.size());
@@ -1020,7 +1020,7 @@ BOOST_AUTO_TEST_CASE(testJointCalendar) {
10201020

10211021
Calendar mal = Malaysia();
10221022
cals.push_back(mal);
1023-
Calendar joint5 = QuantExt::LargeJointCalendar(cals);
1023+
Calendar joint5 = QuantLib::JointCalendar(cals);
10241024

10251025
hol = joint5.holidayList(Date(1, January, 2018), Date(31, December, 2018));
10261026
BOOST_CHECK(hol.size() == expectedHolidays.size());
@@ -1044,7 +1044,7 @@ BOOST_AUTO_TEST_CASE(testJointCalendar) {
10441044

10451045
Calendar chil = Chile();
10461046
cals.push_back(chil);
1047-
Calendar joint6 = QuantExt::LargeJointCalendar(cals);
1047+
Calendar joint6 = QuantLib::JointCalendar(cals);
10481048

10491049
hol = joint6.holidayList(Date(1, January, 2018), Date(31, December, 2018));
10501050
BOOST_CHECK(hol.size() == expectedHolidays.size());
@@ -1062,7 +1062,7 @@ BOOST_AUTO_TEST_CASE(testJointCalendar) {
10621062

10631063
Calendar net = Netherlands();
10641064
cals.push_back(net);
1065-
Calendar joint7 = QuantExt::LargeJointCalendar(cals);
1065+
Calendar joint7 = QuantLib::JointCalendar(cals);
10661066

10671067
hol = joint7.holidayList(Date(1, January, 2018), Date(31, December, 2018));
10681068
BOOST_CHECK(hol.size() == expectedHolidays.size());
@@ -1083,7 +1083,7 @@ BOOST_AUTO_TEST_CASE(testJointCalendar) {
10831083

10841084
Calendar fre = France();
10851085
cals.push_back(fre);
1086-
Calendar joint8 = QuantExt::LargeJointCalendar(cals);
1086+
Calendar joint8 = QuantLib::JointCalendar(cals);
10871087

10881088
hol = joint8.holidayList(Date(1, January, 2018), Date(31, December, 2018));
10891089
BOOST_CHECK(hol.size() == expectedHolidays.size());

QuantExt/qle/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ calendars/ice.cpp
1515
calendars/ireland.cpp
1616
calendars/islamicweekendsonly.cpp
1717
calendars/israel.cpp
18-
calendars/largejointcalendar.cpp
1918
calendars/luxembourg.cpp
2019
calendars/malaysia.cpp
2120
calendars/mauritius.cpp
@@ -415,7 +414,6 @@ calendars/ice.hpp
415414
calendars/ireland.hpp
416415
calendars/islamicweekendsonly.hpp
417416
calendars/israel.hpp
418-
calendars/largejointcalendar.hpp
419417
calendars/luxembourg.hpp
420418
calendars/malaysia.hpp
421419
calendars/mauritius.hpp

QuantExt/qle/calendars/largejointcalendar.cpp

Lines changed: 0 additions & 97 deletions
This file was deleted.

QuantExt/qle/calendars/largejointcalendar.hpp

Lines changed: 0 additions & 61 deletions
This file was deleted.

0 commit comments

Comments
 (0)