Skip to content

Commit c95debf

Browse files
committed
Merge branch 'gh_206_210' into 'master'
Gh 206 210 See merge request qs/ore-github!25
2 parents 3aaa012 + 8083248 commit c95debf

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
@@ -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
/************

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
@@ -413,7 +412,6 @@ calendars/ice.hpp
413412
calendars/ireland.hpp
414413
calendars/islamicweekendsonly.hpp
415414
calendars/israel.hpp
416-
calendars/largejointcalendar.hpp
417415
calendars/luxembourg.hpp
418416
calendars/malaysia.hpp
419417
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)