Skip to content

Commit 509e4ec

Browse files
nathaniel.volfangopcaspers
nathaniel.volfango
authored andcommitted
QPR-12883 -- Add SIMM calibration files to open source and fix OREApp so that it can run new versions, i.e. versions that are not listed in the SimmVersion enum
1 parent a3301a8 commit 509e4ec

9 files changed

+9030
-5
lines changed

Configurations/SIMM/simmcalibration_2.2.xml

+1,284
Large diffs are not rendered by default.

Configurations/SIMM/simmcalibration_2.3.8.xml

+1,293
Large diffs are not rendered by default.

Configurations/SIMM/simmcalibration_2.3.xml

+1,282
Large diffs are not rendered by default.

Configurations/SIMM/simmcalibration_2.5.xml

+1,291
Large diffs are not rendered by default.

Configurations/SIMM/simmcalibration_2.5A.xml

+1,291
Large diffs are not rendered by default.

Configurations/SIMM/simmcalibration_2.6.5.xml

+1,291
Large diffs are not rendered by default.

Configurations/SIMM/simmcalibration_2.6.xml

+1,291
Large diffs are not rendered by default.

Docs/UserGuide/simmcalibration.tex

+2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ \subsection{SIMM Calibration: {\tt simmcalibration.xml}}\label{sec:simmcalibrati
44

55
The SIMM Calibration can be used to add or override SIMM versions by specifying the risk weights, correlations,
66
concentration thresholds along with associated buckets/labels and currency groups (for risk class FX and IR).
7+
78
See Example\_44 for a full SIMM calibration file for SIMM 2.5A \cite{SIMM2.5A}.
9+
The official configuration files for each version (SIMM 2.2 and greater) can be found in folder {\tt Configurations/SIMM/}
810

911
The file consists of a {\tt <SIMMCalibrationData>} node, with {\tt <SIMMCalibration>} subnodes that each define a given
1012
SIMM version, as in Listing \ref{lst:simmcalibration_data} below.

OREAnalytics/orea/app/oreapp.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -1285,17 +1285,17 @@ void OREAppInputParameters::loadParameters() {
12851285
if (tmp != "")
12861286
setMporDays(static_cast<Size>(parseInteger(tmp)));
12871287

1288-
tmp = params_->get("simm", "crif", false);
1288+
tmp = params_->get("simm", "simmCalibration", false);
12891289
if (tmp != "") {
12901290
string file = (inputPath / tmp).generic_string();
1291-
setCrifFromFile(file, csvEolChar(), csvSeparator(), '\"', csvEscapeChar());
1291+
if (boost::filesystem::exists(file))
1292+
setSimmCalibrationDataFromFile(file);
12921293
}
12931294

1294-
tmp = params_->get("simm", "simmCalibration", false);
1295+
tmp = params_->get("simm", "crif", false);
12951296
if (tmp != "") {
12961297
string file = (inputPath / tmp).generic_string();
1297-
if (boost::filesystem::exists(file))
1298-
setSimmCalibrationDataFromFile(file);
1298+
setCrifFromFile(file, csvEolChar(), csvSeparator(), '\"', csvEscapeChar());
12991299
}
13001300

13011301
tmp = params_->get("simm", "calculationCurrency", false);

0 commit comments

Comments
 (0)