Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
simmconfigurationisdav1_0.cpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2016 Quaternion Risk Management Ltd.
3 All rights reserved.
4
5 This file is part of ORE, a free-software/open-source library
6 for transparent pricing and risk analysis - http://opensourcerisk.org
7
8 ORE is free software: you can redistribute it and/or modify it
9 under the terms of the Modified BSD License. You should have received a
10 copy of the license along with this program.
11 The license is also available online at <http://opensourcerisk.org>
12
13 This program is distributed on the basis that it will form a useful
14 contribution to risk analytics and model standardisation, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 FITNESS FOR A PARTICULAR PURPOSE. See the license for more details.
17*/
18
22
23#include <boost/make_shared.hpp>
24
25#include <ql/math/matrix.hpp>
26
28using QuantLib::Integer;
29using QuantLib::Matrix;
30using QuantLib::Real;
31using std::string;
32using std::vector;
33
34namespace ore {
35namespace analytics {
36
37SimmConfiguration_ISDA_V1_0::SimmConfiguration_ISDA_V1_0(const QuantLib::ext::shared_ptr<SimmBucketMapper>& simmBucketMapper,
38 const std::string& name, const std::string version)
39 : SimmConfigurationBase(simmBucketMapper, name, version) {
40
41 // Set up the correct concentration threshold getter
42 simmConcentration_ = QuantLib::ext::make_shared<SimmConcentrationBase>();
43
44 // clang-format off
45
46 // Set up the members for this configuration
47 // Explanations of all these members are given in the hpp file
48
49 mapBuckets_ = {
50 { CrifRecord::RiskType::IRCurve, { "1", "2", "3" } },
51 { CrifRecord::RiskType::CreditQ, { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "Residual" } },
52 { CrifRecord::RiskType::CreditVol, { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "Residual" } },
53 { CrifRecord::RiskType::CreditNonQ, { "1", "2", "Residual" } },
54 { CrifRecord::RiskType::CreditVolNonQ, { "1", "2", "Residual" } },
55 { CrifRecord::RiskType::Equity, { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "Residual" } },
56 { CrifRecord::RiskType::EquityVol, { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "Residual" } },
57 { CrifRecord::RiskType::Commodity, { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16" } },
58 { CrifRecord::RiskType::CommodityVol, { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16" } }
59 };
60
61 mapLabels_1_ = {
62 { CrifRecord::RiskType::IRCurve, { "2w", "1m", "3m", "6m", "1y", "2y", "3y", "5y", "10y", "15y", "20y", "30y" } },
63 { CrifRecord::RiskType::CreditQ, { "1y", "2y", "3y", "5y", "10y" } }
64 };
65 mapLabels_1_[CrifRecord::RiskType::IRVol] = mapLabels_1_[CrifRecord::RiskType::IRCurve];
66 mapLabels_1_[CrifRecord::RiskType::EquityVol] = mapLabels_1_[CrifRecord::RiskType::IRCurve];
67 mapLabels_1_[CrifRecord::RiskType::CommodityVol] = mapLabels_1_[CrifRecord::RiskType::IRCurve];
68 mapLabels_1_[CrifRecord::RiskType::FXVol] = mapLabels_1_[CrifRecord::RiskType::IRCurve];
69 mapLabels_1_[CrifRecord::RiskType::CreditNonQ] = mapLabels_1_[CrifRecord::RiskType::CreditQ];
70 mapLabels_1_[CrifRecord::RiskType::CreditVol] = mapLabels_1_[CrifRecord::RiskType::CreditQ];
71 mapLabels_1_[CrifRecord::RiskType::CreditVolNonQ] = mapLabels_1_[CrifRecord::RiskType::CreditQ];
72
73 mapLabels_2_ = {
74 { CrifRecord::RiskType::IRCurve, { "OIS", "Libor1m", "Libor3m", "Libor6m", "Libor12m", "Prime" } },
75 { CrifRecord::RiskType::CreditQ, { "", "Sec" } }
76 };
77
78 // Risk weights
79 rwRiskType_ = {
80 { CrifRecord::RiskType::Inflation, 32 },
81 { CrifRecord::RiskType::IRVol, 0.21 },
82 { CrifRecord::RiskType::CreditVol, 0.35 },
83 { CrifRecord::RiskType::CreditVolNonQ, 0.35 },
84 { CrifRecord::RiskType::EquityVol, 0.21 },
85 { CrifRecord::RiskType::CommodityVol, 0.36 },
86 { CrifRecord::RiskType::FX, 7.9 },
87 { CrifRecord::RiskType::FXVol, 0.21 },
88 { CrifRecord::RiskType::BaseCorr, 18.0 }
89 };
90
91 rwBucket_ = {{CrifRecord::RiskType::CreditQ,
92 {{{"1", "", ""}, 97.0},
93 {{"2", "", ""}, 110.0},
94 {{"3", "", ""}, 73.0},
95 {{"4", "", ""}, 65.0},
96 {{"5", "", ""}, 52.0},
97 {{"6", "", ""}, 39.0},
98 {{"7", "", ""}, 198.0},
99 {{"8", "", ""}, 638.0},
100 {{"9", "", ""}, 210.0},
101 {{"10", "", ""}, 375.0},
102 {{"11", "", ""}, 240.0},
103 {{"12", "", ""}, 152.0},
104 {{"Residual", "", ""}, 638.0}}},
105 {CrifRecord::RiskType::CreditNonQ,
106 {{{"1", "", ""}, 169.0},
107 {{"2", "", ""}, 1646.0},
108 {{"Residual", "", ""}, 1646.0}}},
109 {CrifRecord::RiskType::Equity,
110 {{{"1", "", ""}, 22.0},
111 {{"2", "", ""}, 28.0},
112 {{"3", "", ""}, 28.0},
113 {{"4", "", ""}, 25.0},
114 {{"5", "", ""}, 18.0},
115 {{"6", "", ""}, 20.0},
116 {{"7", "", ""}, 24.0},
117 {{"8", "", ""}, 23.0},
118 {{"9", "", ""}, 26.0},
119 {{"10", "", ""}, 27.0},
120 {{"11", "", ""}, 15.0},
121 {{"Residual", "", ""}, 28.0}}},
122 {CrifRecord::RiskType::Commodity,
123 {{{"1", "", ""}, 9.0},
124 {{"2", "", ""}, 19.0},
125 {{"3", "", ""}, 18.0},
126 {{"4", "", ""}, 13.0},
127 {{"5", "", ""}, 24.0},
128 {{"6", "", ""}, 17.0},
129 {{"7", "", ""}, 21.0},
130 {{"8", "", ""}, 35.0},
131 {{"9", "", ""}, 20.0},
132 {{"10", "", ""}, 50.0},
133 {{"11", "", ""}, 21.0},
134 {{"12", "", ""}, 19.0},
135 {{"13", "", ""}, 17.0},
136 {{"14", "", ""}, 15.0},
137 {{"15", "", ""}, 8.0},
138 {{"16", "", ""}, 50.0}}}
139 };
140
141 rwLabel_1_ = {
142 {CrifRecord::RiskType::IRCurve,
143 {{{"1", "2w", ""}, 77.0},
144 {{"1", "1m", ""}, 77.0},
145 {{"1", "3m", ""}, 77.0},
146 {{"1", "6m", ""}, 64.0},
147 {{"1", "1y", ""}, 58.0},
148 {{"1", "2y", ""}, 49.0},
149 {{"1", "3y", ""}, 47.0},
150 {{"1", "5y", ""}, 47.0},
151 {{"1", "10y", ""}, 45.0},
152 {{"1", "15y", ""}, 45.0},
153 {{"1", "20y", ""}, 48.0},
154 {{"1", "30y", ""}, 56.0},
155 {{"2", "2w", ""}, 10.0},
156 {{"2", "1m", ""}, 10.0},
157 {{"2", "3m", ""}, 10.0},
158 {{"2", "6m", ""}, 10.0},
159 {{"2", "1y", ""}, 13.0},
160 {{"2", "2y", ""}, 16.0},
161 {{"2", "3y", ""}, 18.0},
162 {{"2", "5y", ""}, 20.0},
163 {{"2", "10y", ""}, 25.0},
164 {{"2", "15y", ""}, 22.0},
165 {{"2", "20y", ""}, 22.0},
166 {{"2", "30y", ""}, 23.0},
167 {{"3", "2w", ""}, 89.0},
168 {{"3", "1m", ""}, 89.0},
169 {{"3", "3m", ""}, 89.0},
170 {{"3", "6m", ""}, 94.0},
171 {{"3", "1y", ""}, 104.0},
172 {{"3", "2y", ""}, 99.0},
173 {{"3", "3y", ""}, 96.0},
174 {{"3", "5y", ""}, 99.0},
175 {{"3", "10y", ""}, 87.0},
176 {{"3", "15y", ""}, 97.0},
177 {{"3", "20y", ""}, 97.0},
178 {{"3", "30y", ""}, 98.0}}}
179 };
180
181 // Curvature weights
183 { CrifRecord::RiskType::IRVol, { 0.5,
184 0.5 * 14.0 / (365.0 / 12.0),
185 0.5 * 14.0 / (3.0 * 365.0 / 12.0),
186 0.5 * 14.0 / (6.0 * 365.0 / 12.0),
187 0.5 * 14.0 / 365.0,
188 0.5 * 14.0 / (2.0 * 365.0),
189 0.5 * 14.0 / (3.0 * 365.0),
190 0.5 * 14.0 / (5.0 * 365.0),
191 0.5 * 14.0 / (10.0 * 365.0),
192 0.5 * 14.0 / (15.0 * 365.0),
193 0.5 * 14.0 / (20.0 * 365.0),
194 0.5 * 14.0 / (30.0 * 365.0) }
195 },
196 { CrifRecord::RiskType::CreditVol, { 0.5 * 14.0 / 365.0,
197 0.5 * 14.0 / (2.0 * 365.0),
198 0.5 * 14.0 / (3.0 * 365.0),
199 0.5 * 14.0 / (5.0 * 365.0),
200 0.5 * 14.0 / (10.0 * 365.0) }
201 }
202 };
203 curvatureWeights_[CrifRecord::RiskType::EquityVol] = curvatureWeights_[CrifRecord::RiskType::IRVol];
204 curvatureWeights_[CrifRecord::RiskType::CommodityVol] = curvatureWeights_[CrifRecord::RiskType::IRVol];
205 curvatureWeights_[CrifRecord::RiskType::FXVol] = curvatureWeights_[CrifRecord::RiskType::IRVol];
206 curvatureWeights_[CrifRecord::RiskType::CreditVolNonQ] = curvatureWeights_[CrifRecord::RiskType::CreditVol];
207
208 // Historical volatility ratios empty (1.0 for everything)
209
210 // Valid risk types
212 CrifRecord::RiskType::Commodity,
213 CrifRecord::RiskType::CommodityVol,
214 CrifRecord::RiskType::CreditNonQ,
215 CrifRecord::RiskType::CreditQ,
216 CrifRecord::RiskType::CreditVol,
217 CrifRecord::RiskType::CreditVolNonQ,
218 CrifRecord::RiskType::Equity,
219 CrifRecord::RiskType::EquityVol,
220 CrifRecord::RiskType::FX,
221 CrifRecord::RiskType::FXVol,
222 CrifRecord::RiskType::Inflation,
223 CrifRecord::RiskType::IRCurve,
224 CrifRecord::RiskType::IRVol
225 };
226
227 // Risk class correlation matrix
229 {{"", "InterestRate", "CreditQualifying"}, 0.09},
230 {{"", "InterestRate", "CreditNonQualifying"}, 0.1},
231 {{"", "InterestRate", "Equity"}, 0.18},
232 {{"", "InterestRate", "Commodity"}, 0.32},
233 {{"", "InterestRate", "FX"}, 0.27},
234 {{"", "CreditQualifying", "InterestRate"}, 0.09},
235 {{"", "CreditQualifying", "CreditNonQualifying"}, 0.24},
236 {{"", "CreditQualifying", "Equity"}, 0.58},
237 {{"", "CreditQualifying", "Commodity"}, 0.34},
238 {{"", "CreditQualifying", "FX"}, 0.29},
239 {{"", "CreditNonQualifying", "InterestRate"}, 0.1},
240 {{"", "CreditNonQualifying", "CreditQualifying"}, 0.24},
241 {{"", "CreditNonQualifying", "Equity"}, 0.23},
242 {{"", "CreditNonQualifying", "Commodity"}, 0.24},
243 {{"", "CreditNonQualifying", "FX"}, 0.12},
244 {{"", "Equity", "InterestRate"}, 0.18},
245 {{"", "Equity", "CreditQualifying"}, 0.58},
246 {{"", "Equity", "CreditNonQualifying"}, 0.23},
247 {{"", "Equity", "Commodity"}, 0.26},
248 {{"", "Equity", "FX"}, 0.31},
249 {{"", "Commodity", "InterestRate"}, 0.32},
250 {{"", "Commodity", "CreditQualifying"}, 0.34},
251 {{"", "Commodity", "CreditNonQualifying"}, 0.24},
252 {{"", "Commodity", "Equity"}, 0.26},
253 {{"", "Commodity", "FX"}, 0.37},
254 {{"", "FX", "InterestRate"}, 0.27},
255 {{"", "FX", "CreditQualifying"}, 0.29},
256 {{"", "FX", "CreditNonQualifying"}, 0.12},
257 {{"", "FX", "Equity"}, 0.31},
258 {{"", "FX", "Commodity"}, 0.37}
259 };
260
261 // Interest rate tenor correlations (i.e. Label1 level correlations)
262 intraBucketCorrelation_[CrifRecord::RiskType::IRCurve] = {
263 {{"", "2w", "1m"}, 1.0},
264 {{"", "2w", "3m"}, 1.0},
265 {{"", "2w", "6m"}, 0.782},
266 {{"", "2w", "1y"}, 0.618},
267 {{"", "2w", "2y"}, 0.498},
268 {{"", "2w", "3y"}, 0.438},
269 {{"", "2w", "5y"}, 0.361},
270 {{"", "2w", "10y"}, 0.27},
271 {{"", "2w", "15y"}, 0.196},
272 {{"", "2w", "20y"}, 0.174},
273 {{"", "2w", "30y"}, 0.129},
274 {{"", "1m", "2w"}, 1.0},
275 {{"", "1m", "3m"}, 1.0},
276 {{"", "1m", "6m"}, 0.782},
277 {{"", "1m", "1y"}, 0.618},
278 {{"", "1m", "2y"}, 0.498},
279 {{"", "1m", "3y"}, 0.438},
280 {{"", "1m", "5y"}, 0.361},
281 {{"", "1m", "10y"}, 0.27},
282 {{"", "1m", "15y"}, 0.196},
283 {{"", "1m", "20y"}, 0.174},
284 {{"", "1m", "30y"}, 0.129},
285 {{"", "3m", "2w"}, 1.0},
286 {{"", "3m", "1m"}, 1.0},
287 {{"", "3m", "6m"}, 0.782},
288 {{"", "3m", "1y"}, 0.618},
289 {{"", "3m", "2y"}, 0.498},
290 {{"", "3m", "3y"}, 0.438},
291 {{"", "3m", "5y"}, 0.361},
292 {{"", "3m", "10y"}, 0.27},
293 {{"", "3m", "15y"}, 0.196},
294 {{"", "3m", "20y"}, 0.174},
295 {{"", "3m", "30y"}, 0.129},
296 {{"", "6m", "2w"}, 0.782},
297 {{"", "6m", "1m"}, 0.782},
298 {{"", "6m", "3m"}, 0.782},
299 {{"", "6m", "1y"}, 0.84},
300 {{"", "6m", "2y"}, 0.739},
301 {{"", "6m", "3y"}, 0.667},
302 {{"", "6m", "5y"}, 0.569},
303 {{"", "6m", "10y"}, 0.444},
304 {{"", "6m", "15y"}, 0.375},
305 {{"", "6m", "20y"}, 0.349},
306 {{"", "6m", "30y"}, 0.296},
307 {{"", "1y", "2w"}, 0.618},
308 {{"", "1y", "1m"}, 0.618},
309 {{"", "1y", "3m"}, 0.618},
310 {{"", "1y", "6m"}, 0.84},
311 {{"", "1y", "2y"}, 0.917},
312 {{"", "1y", "3y"}, 0.859},
313 {{"", "1y", "5y"}, 0.757},
314 {{"", "1y", "10y"}, 0.626},
315 {{"", "1y", "15y"}, 0.555},
316 {{"", "1y", "20y"}, 0.526},
317 {{"", "1y", "30y"}, 0.471},
318 {{"", "2y", "2w"}, 0.498},
319 {{"", "2y", "1m"}, 0.498},
320 {{"", "2y", "3m"}, 0.498},
321 {{"", "2y", "6m"}, 0.739},
322 {{"", "2y", "1y"}, 0.917},
323 {{"", "2y", "3y"}, 0.976},
324 {{"", "2y", "5y"}, 0.895},
325 {{"", "2y", "10y"}, 0.749},
326 {{"", "2y", "15y"}, 0.69},
327 {{"", "2y", "20y"}, 0.66},
328 {{"", "2y", "30y"}, 0.602},
329 {{"", "3y", "2w"}, 0.438},
330 {{"", "3y", "1m"}, 0.438},
331 {{"", "3y", "3m"}, 0.438},
332 {{"", "3y", "6m"}, 0.667},
333 {{"", "3y", "1y"}, 0.859},
334 {{"", "3y", "2y"}, 0.976},
335 {{"", "3y", "5y"}, 0.958},
336 {{"", "3y", "10y"}, 0.831},
337 {{"", "3y", "15y"}, 0.779},
338 {{"", "3y", "20y"}, 0.746},
339 {{"", "3y", "30y"}, 0.69},
340 {{"", "5y", "2w"}, 0.361},
341 {{"", "5y", "1m"}, 0.361},
342 {{"", "5y", "3m"}, 0.361},
343 {{"", "5y", "6m"}, 0.569},
344 {{"", "5y", "1y"}, 0.757},
345 {{"", "5y", "2y"}, 0.895},
346 {{"", "5y", "3y"}, 0.958},
347 {{"", "5y", "10y"}, 0.925},
348 {{"", "5y", "15y"}, 0.893},
349 {{"", "5y", "20y"}, 0.859},
350 {{"", "5y", "30y"}, 0.812},
351 {{"", "10y", "2w"}, 0.27},
352 {{"", "10y", "1m"}, 0.27},
353 {{"", "10y", "3m"}, 0.27},
354 {{"", "10y", "6m"}, 0.444},
355 {{"", "10y", "1y"}, 0.626},
356 {{"", "10y", "2y"}, 0.749},
357 {{"", "10y", "3y"}, 0.831},
358 {{"", "10y", "5y"}, 0.925},
359 {{"", "10y", "15y"}, 0.98},
360 {{"", "10y", "20y"}, 0.961},
361 {{"", "10y", "30y"}, 0.931},
362 {{"", "15y", "2w"}, 0.196},
363 {{"", "15y", "1m"}, 0.196},
364 {{"", "15y", "3m"}, 0.196},
365 {{"", "15y", "6m"}, 0.375},
366 {{"", "15y", "1y"}, 0.555},
367 {{"", "15y", "2y"}, 0.69},
368 {{"", "15y", "3y"}, 0.779},
369 {{"", "15y", "5y"}, 0.893},
370 {{"", "15y", "10y"}, 0.98},
371 {{"", "15y", "20y"}, 0.989},
372 {{"", "15y", "30y"}, 0.97},
373 {{"", "20y", "2w"}, 0.174},
374 {{"", "20y", "1m"}, 0.174},
375 {{"", "20y", "3m"}, 0.174},
376 {{"", "20y", "6m"}, 0.349},
377 {{"", "20y", "1y"}, 0.526},
378 {{"", "20y", "2y"}, 0.66},
379 {{"", "20y", "3y"}, 0.746},
380 {{"", "20y", "5y"}, 0.859},
381 {{"", "20y", "10y"}, 0.961},
382 {{"", "20y", "15y"}, 0.989},
383 {{"", "20y", "30y"}, 0.988},
384 {{"", "30y", "2w"}, 0.129},
385 {{"", "30y", "1m"}, 0.129},
386 {{"", "30y", "3m"}, 0.129},
387 {{"", "30y", "6m"}, 0.296},
388 {{"", "30y", "1y"}, 0.471},
389 {{"", "30y", "2y"}, 0.602},
390 {{"", "30y", "3y"}, 0.69},
391 {{"", "30y", "5y"}, 0.812},
392 {{"", "30y", "10y"}, 0.931},
393 {{"", "30y", "15y"}, 0.97},
394 {{"", "30y", "20y"}, 0.988}
395 };
396
397 // CreditQ inter-bucket correlations
398 interBucketCorrelation_[CrifRecord::RiskType::CreditQ] = {
399 {{"", "1", "2"}, 0.51},
400 {{"", "1", "3"}, 0.47},
401 {{"", "1", "4"}, 0.49},
402 {{"", "1", "5"}, 0.46},
403 {{"", "1", "6"}, 0.47},
404 {{"", "1", "7"}, 0.41},
405 {{"", "1", "8"}, 0.36},
406 {{"", "1", "9"}, 0.45},
407 {{"", "1", "10"}, 0.47},
408 {{"", "1", "11"}, 0.47},
409 {{"", "1", "12"}, 0.43},
410 {{"", "2", "1"}, 0.51},
411 {{"", "2", "3"}, 0.52},
412 {{"", "2", "4"}, 0.52},
413 {{"", "2", "5"}, 0.49},
414 {{"", "2", "6"}, 0.52},
415 {{"", "2", "7"}, 0.37},
416 {{"", "2", "8"}, 0.41},
417 {{"", "2", "9"}, 0.51},
418 {{"", "2", "10"}, 0.5},
419 {{"", "2", "11"}, 0.51},
420 {{"", "2", "12"}, 0.46},
421 {{"", "3", "1"}, 0.47},
422 {{"", "3", "2"}, 0.52},
423 {{"", "3", "4"}, 0.54},
424 {{"", "3", "5"}, 0.51},
425 {{"", "3", "6"}, 0.55},
426 {{"", "3", "7"}, 0.37},
427 {{"", "3", "8"}, 0.37},
428 {{"", "3", "9"}, 0.51},
429 {{"", "3", "10"}, 0.49},
430 {{"", "3", "11"}, 0.5},
431 {{"", "3", "12"}, 0.47},
432 {{"", "4", "1"}, 0.49},
433 {{"", "4", "2"}, 0.52},
434 {{"", "4", "3"}, 0.54},
435 {{"", "4", "5"}, 0.53},
436 {{"", "4", "6"}, 0.56},
437 {{"", "4", "7"}, 0.36},
438 {{"", "4", "8"}, 0.37},
439 {{"", "4", "9"}, 0.52},
440 {{"", "4", "10"}, 0.51},
441 {{"", "4", "11"}, 0.51},
442 {{"", "4", "12"}, 0.46},
443 {{"", "5", "1"}, 0.46},
444 {{"", "5", "2"}, 0.49},
445 {{"", "5", "3"}, 0.51},
446 {{"", "5", "4"}, 0.53},
447 {{"", "5", "6"}, 0.54},
448 {{"", "5", "7"}, 0.35},
449 {{"", "5", "8"}, 0.35},
450 {{"", "5", "9"}, 0.49},
451 {{"", "5", "10"}, 0.48},
452 {{"", "5", "11"}, 0.5},
453 {{"", "5", "12"}, 0.44},
454 {{"", "6", "1"}, 0.47},
455 {{"", "6", "2"}, 0.52},
456 {{"", "6", "3"}, 0.55},
457 {{"", "6", "4"}, 0.56},
458 {{"", "6", "5"}, 0.54},
459 {{"", "6", "7"}, 0.37},
460 {{"", "6", "8"}, 0.37},
461 {{"", "6", "9"}, 0.52},
462 {{"", "6", "10"}, 0.49},
463 {{"", "6", "11"}, 0.51},
464 {{"", "6", "12"}, 0.48},
465 {{"", "7", "1"}, 0.41},
466 {{"", "7", "2"}, 0.37},
467 {{"", "7", "3"}, 0.37},
468 {{"", "7", "4"}, 0.36},
469 {{"", "7", "5"}, 0.35},
470 {{"", "7", "6"}, 0.37},
471 {{"", "7", "8"}, 0.29},
472 {{"", "7", "9"}, 0.36},
473 {{"", "7", "10"}, 0.34},
474 {{"", "7", "11"}, 0.36},
475 {{"", "7", "12"}, 0.36},
476 {{"", "8", "1"}, 0.36},
477 {{"", "8", "2"}, 0.41},
478 {{"", "8", "3"}, 0.37},
479 {{"", "8", "4"}, 0.37},
480 {{"", "8", "5"}, 0.35},
481 {{"", "8", "6"}, 0.37},
482 {{"", "8", "7"}, 0.29},
483 {{"", "8", "9"}, 0.37},
484 {{"", "8", "10"}, 0.36},
485 {{"", "8", "11"}, 0.37},
486 {{"", "8", "12"}, 0.33},
487 {{"", "9", "1"}, 0.45},
488 {{"", "9", "2"}, 0.51},
489 {{"", "9", "3"}, 0.51},
490 {{"", "9", "4"}, 0.52},
491 {{"", "9", "5"}, 0.49},
492 {{"", "9", "6"}, 0.52},
493 {{"", "9", "7"}, 0.36},
494 {{"", "9", "8"}, 0.37},
495 {{"", "9", "10"}, 0.49},
496 {{"", "9", "11"}, 0.5},
497 {{"", "9", "12"}, 0.46},
498 {{"", "10", "1"}, 0.47},
499 {{"", "10", "2"}, 0.5},
500 {{"", "10", "3"}, 0.49},
501 {{"", "10", "4"}, 0.51},
502 {{"", "10", "5"}, 0.48},
503 {{"", "10", "6"}, 0.49},
504 {{"", "10", "7"}, 0.34},
505 {{"", "10", "8"}, 0.36},
506 {{"", "10", "9"}, 0.49},
507 {{"", "10", "11"}, 0.49},
508 {{"", "10", "12"}, 0.46},
509 {{"", "11", "1"}, 0.47},
510 {{"", "11", "2"}, 0.51},
511 {{"", "11", "3"}, 0.5},
512 {{"", "11", "4"}, 0.51},
513 {{"", "11", "5"}, 0.5},
514 {{"", "11", "6"}, 0.51},
515 {{"", "11", "7"}, 0.36},
516 {{"", "11", "8"}, 0.37},
517 {{"", "11", "9"}, 0.5},
518 {{"", "11", "10"}, 0.49},
519 {{"", "11", "12"}, 0.46},
520 {{"", "12", "1"}, 0.43},
521 {{"", "12", "2"}, 0.46},
522 {{"", "12", "3"}, 0.47},
523 {{"", "12", "4"}, 0.46},
524 {{"", "12", "5"}, 0.44},
525 {{"", "12", "6"}, 0.48},
526 {{"", "12", "7"}, 0.36},
527 {{"", "12", "8"}, 0.33},
528 {{"", "12", "9"}, 0.46},
529 {{"", "12", "10"}, 0.46},
530 {{"", "12", "11"}, 0.46}
531 };
532
533 // Equity inter-bucket correlations
534 interBucketCorrelation_[CrifRecord::RiskType::Equity] = {
535 {{"", "1", "2"}, 0.17},
536 {{"", "1", "3"}, 0.18},
537 {{"", "1", "4"}, 0.16},
538 {{"", "1", "5"}, 0.08},
539 {{"", "1", "6"}, 0.1},
540 {{"", "1", "7"}, 0.1},
541 {{"", "1", "8"}, 0.11},
542 {{"", "1", "9"}, 0.16},
543 {{"", "1", "10"}, 0.08},
544 {{"", "1", "11"}, 0.18},
545 {{"", "2", "1"}, 0.17},
546 {{"", "2", "3"}, 0.24},
547 {{"", "2", "4"}, 0.19},
548 {{"", "2", "5"}, 0.07},
549 {{"", "2", "6"}, 0.1},
550 {{"", "2", "7"}, 0.09},
551 {{"", "2", "8"}, 0.1},
552 {{"", "2", "9"}, 0.19},
553 {{"", "2", "10"}, 0.07},
554 {{"", "2", "11"}, 0.18},
555 {{"", "3", "1"}, 0.18},
556 {{"", "3", "2"}, 0.24},
557 {{"", "3", "4"}, 0.21},
558 {{"", "3", "5"}, 0.09},
559 {{"", "3", "6"}, 0.12},
560 {{"", "3", "7"}, 0.13},
561 {{"", "3", "8"}, 0.13},
562 {{"", "3", "9"}, 0.2},
563 {{"", "3", "10"}, 0.1},
564 {{"", "3", "11"}, 0.24},
565 {{"", "4", "1"}, 0.16},
566 {{"", "4", "2"}, 0.19},
567 {{"", "4", "3"}, 0.21},
568 {{"", "4", "5"}, 0.13},
569 {{"", "4", "6"}, 0.17},
570 {{"", "4", "7"}, 0.16},
571 {{"", "4", "8"}, 0.17},
572 {{"", "4", "9"}, 0.2},
573 {{"", "4", "10"}, 0.13},
574 {{"", "4", "11"}, 0.3},
575 {{"", "5", "1"}, 0.08},
576 {{"", "5", "2"}, 0.07},
577 {{"", "5", "3"}, 0.09},
578 {{"", "5", "4"}, 0.13},
579 {{"", "5", "6"}, 0.28},
580 {{"", "5", "7"}, 0.24},
581 {{"", "5", "8"}, 0.28},
582 {{"", "5", "9"}, 0.1},
583 {{"", "5", "10"}, 0.23},
584 {{"", "5", "11"}, 0.38},
585 {{"", "6", "1"}, 0.1},
586 {{"", "6", "2"}, 0.1},
587 {{"", "6", "3"}, 0.12},
588 {{"", "6", "4"}, 0.17},
589 {{"", "6", "5"}, 0.28},
590 {{"", "6", "7"}, 0.3},
591 {{"", "6", "8"}, 0.33},
592 {{"", "6", "9"}, 0.13},
593 {{"", "6", "10"}, 0.26},
594 {{"", "6", "11"}, 0.45},
595 {{"", "7", "1"}, 0.1},
596 {{"", "7", "2"}, 0.09},
597 {{"", "7", "3"}, 0.13},
598 {{"", "7", "4"}, 0.16},
599 {{"", "7", "5"}, 0.24},
600 {{"", "7", "6"}, 0.3},
601 {{"", "7", "8"}, 0.29},
602 {{"", "7", "9"}, 0.13},
603 {{"", "7", "10"}, 0.25},
604 {{"", "7", "11"}, 0.42},
605 {{"", "8", "1"}, 0.11},
606 {{"", "8", "2"}, 0.1},
607 {{"", "8", "3"}, 0.13},
608 {{"", "8", "4"}, 0.17},
609 {{"", "8", "5"}, 0.28},
610 {{"", "8", "6"}, 0.33},
611 {{"", "8", "7"}, 0.29},
612 {{"", "8", "9"}, 0.14},
613 {{"", "8", "10"}, 0.27},
614 {{"", "8", "11"}, 0.45},
615 {{"", "9", "1"}, 0.16},
616 {{"", "9", "2"}, 0.19},
617 {{"", "9", "3"}, 0.2},
618 {{"", "9", "4"}, 0.2},
619 {{"", "9", "5"}, 0.1},
620 {{"", "9", "6"}, 0.13},
621 {{"", "9", "7"}, 0.13},
622 {{"", "9", "8"}, 0.14},
623 {{"", "9", "10"}, 0.11},
624 {{"", "9", "11"}, 0.25},
625 {{"", "10", "1"}, 0.08},
626 {{"", "10", "2"}, 0.07},
627 {{"", "10", "3"}, 0.1},
628 {{"", "10", "4"}, 0.13},
629 {{"", "10", "5"}, 0.23},
630 {{"", "10", "6"}, 0.26},
631 {{"", "10", "7"}, 0.25},
632 {{"", "10", "8"}, 0.27},
633 {{"", "10", "9"}, 0.11},
634 {{"", "10", "11"}, 0.34},
635 {{"", "11", "1"}, 0.18},
636 {{"", "11", "2"}, 0.18},
637 {{"", "11", "3"}, 0.24},
638 {{"", "11", "4"}, 0.3},
639 {{"", "11", "5"}, 0.38},
640 {{"", "11", "6"}, 0.45},
641 {{"", "11", "7"}, 0.42},
642 {{"", "11", "8"}, 0.45},
643 {{"", "11", "9"}, 0.25},
644 {{"", "11", "10"}, 0.34}
645 };
646
647 // Commodity inter-bucket correlations
648 interBucketCorrelation_[CrifRecord::RiskType::Commodity] = {
649 {{"", "1", "2"}, 0.11},
650 {{"", "1", "3"}, 0.16},
651 {{"", "1", "4"}, 0.13},
652 {{"", "1", "5"}, 0.1},
653 {{"", "1", "6"}, 0.06},
654 {{"", "1", "7"}, 0.2},
655 {{"", "1", "8"}, 0.05},
656 {{"", "1", "9"}, 0.17},
657 {{"", "1", "10"}, 0.03},
658 {{"", "1", "11"}, 0.18},
659 {{"", "1", "12"}, 0.09},
660 {{"", "1", "13"}, 0.1},
661 {{"", "1", "14"}, 0.05},
662 {{"", "1", "15"}, 0.04},
663 {{"", "1", "16"}, 0.0},
664 {{"", "2", "1"}, 0.11},
665 {{"", "2", "3"}, 0.95},
666 {{"", "2", "4"}, 0.95},
667 {{"", "2", "5"}, 0.93},
668 {{"", "2", "6"}, 0.15},
669 {{"", "2", "7"}, 0.27},
670 {{"", "2", "8"}, 0.19},
671 {{"", "2", "9"}, 0.2},
672 {{"", "2", "10"}, 0.14},
673 {{"", "2", "11"}, 0.3},
674 {{"", "2", "12"}, 0.31},
675 {{"", "2", "13"}, 0.26},
676 {{"", "2", "14"}, 0.26},
677 {{"", "2", "15"}, 0.12},
678 {{"", "2", "16"}, 0.0},
679 {{"", "3", "1"}, 0.16},
680 {{"", "3", "2"}, 0.95},
681 {{"", "3", "4"}, 0.92},
682 {{"", "3", "5"}, 0.9},
683 {{"", "3", "6"}, 0.17},
684 {{"", "3", "7"}, 0.24},
685 {{"", "3", "8"}, 0.14},
686 {{"", "3", "9"}, 0.17},
687 {{"", "3", "10"}, 0.12},
688 {{"", "3", "11"}, 0.32},
689 {{"", "3", "12"}, 0.26},
690 {{"", "3", "13"}, 0.16},
691 {{"", "3", "14"}, 0.22},
692 {{"", "3", "15"}, 0.12},
693 {{"", "3", "16"}, 0.0},
694 {{"", "4", "1"}, 0.13},
695 {{"", "4", "2"}, 0.95},
696 {{"", "4", "3"}, 0.92},
697 {{"", "4", "5"}, 0.9},
698 {{"", "4", "6"}, 0.18},
699 {{"", "4", "7"}, 0.26},
700 {{"", "4", "8"}, 0.08},
701 {{"", "4", "9"}, 0.17},
702 {{"", "4", "10"}, 0.08},
703 {{"", "4", "11"}, 0.31},
704 {{"", "4", "12"}, 0.25},
705 {{"", "4", "13"}, 0.15},
706 {{"", "4", "14"}, 0.2},
707 {{"", "4", "15"}, 0.09},
708 {{"", "4", "16"}, 0.0},
709 {{"", "5", "1"}, 0.1},
710 {{"", "5", "2"}, 0.93},
711 {{"", "5", "3"}, 0.9},
712 {{"", "5", "4"}, 0.9},
713 {{"", "5", "6"}, 0.18},
714 {{"", "5", "7"}, 0.37},
715 {{"", "5", "8"}, 0.13},
716 {{"", "5", "9"}, 0.3},
717 {{"", "5", "10"}, 0.21},
718 {{"", "5", "11"}, 0.34},
719 {{"", "5", "12"}, 0.32},
720 {{"", "5", "13"}, 0.27},
721 {{"", "5", "14"}, 0.29},
722 {{"", "5", "15"}, 0.12},
723 {{"", "5", "16"}, 0.0},
724 {{"", "6", "1"}, 0.06},
725 {{"", "6", "2"}, 0.15},
726 {{"", "6", "3"}, 0.17},
727 {{"", "6", "4"}, 0.18},
728 {{"", "6", "5"}, 0.18},
729 {{"", "6", "7"}, 0.07},
730 {{"", "6", "8"}, 0.62},
731 {{"", "6", "9"}, 0.03},
732 {{"", "6", "10"}, 0.15},
733 {{"", "6", "11"}, 0.0},
734 {{"", "6", "12"}, 0.0},
735 {{"", "6", "13"}, 0.23},
736 {{"", "6", "14"}, 0.15},
737 {{"", "6", "15"}, 0.07},
738 {{"", "6", "16"}, 0.0},
739 {{"", "7", "1"}, 0.2},
740 {{"", "7", "2"}, 0.27},
741 {{"", "7", "3"}, 0.24},
742 {{"", "7", "4"}, 0.26},
743 {{"", "7", "5"}, 0.37},
744 {{"", "7", "6"}, 0.07},
745 {{"", "7", "8"}, 0.07},
746 {{"", "7", "9"}, 0.66},
747 {{"", "7", "10"}, 0.2},
748 {{"", "7", "11"}, 0.06},
749 {{"", "7", "12"}, 0.06},
750 {{"", "7", "13"}, 0.12},
751 {{"", "7", "14"}, 0.09},
752 {{"", "7", "15"}, 0.09},
753 {{"", "7", "16"}, 0.0},
754 {{"", "8", "1"}, 0.05},
755 {{"", "8", "2"}, 0.19},
756 {{"", "8", "3"}, 0.14},
757 {{"", "8", "4"}, 0.08},
758 {{"", "8", "5"}, 0.13},
759 {{"", "8", "6"}, 0.62},
760 {{"", "8", "7"}, 0.07},
761 {{"", "8", "9"}, 0.09},
762 {{"", "8", "10"}, 0.12},
763 {{"", "8", "11"}, -0.01},
764 {{"", "8", "12"}, 0.0},
765 {{"", "8", "13"}, 0.18},
766 {{"", "8", "14"}, 0.11},
767 {{"", "8", "15"}, 0.04},
768 {{"", "8", "16"}, 0.0},
769 {{"", "9", "1"}, 0.17},
770 {{"", "9", "2"}, 0.2},
771 {{"", "9", "3"}, 0.17},
772 {{"", "9", "4"}, 0.17},
773 {{"", "9", "5"}, 0.3},
774 {{"", "9", "6"}, 0.03},
775 {{"", "9", "7"}, 0.66},
776 {{"", "9", "8"}, 0.09},
777 {{"", "9", "10"}, 0.12},
778 {{"", "9", "11"}, 0.1},
779 {{"", "9", "12"}, 0.06},
780 {{"", "9", "13"}, 0.12},
781 {{"", "9", "14"}, 0.1},
782 {{"", "9", "15"}, 0.1},
783 {{"", "9", "16"}, 0.0},
784 {{"", "10", "1"}, 0.03},
785 {{"", "10", "2"}, 0.14},
786 {{"", "10", "3"}, 0.12},
787 {{"", "10", "4"}, 0.08},
788 {{"", "10", "5"}, 0.21},
789 {{"", "10", "6"}, 0.15},
790 {{"", "10", "7"}, 0.2},
791 {{"", "10", "8"}, 0.12},
792 {{"", "10", "9"}, 0.12},
793 {{"", "10", "11"}, 0.1},
794 {{"", "10", "12"}, 0.07},
795 {{"", "10", "13"}, 0.09},
796 {{"", "10", "14"}, 0.1},
797 {{"", "10", "15"}, 0.16},
798 {{"", "10", "16"}, 0.0},
799 {{"", "11", "1"}, 0.18},
800 {{"", "11", "2"}, 0.3},
801 {{"", "11", "3"}, 0.32},
802 {{"", "11", "4"}, 0.31},
803 {{"", "11", "5"}, 0.34},
804 {{"", "11", "6"}, 0.0},
805 {{"", "11", "7"}, 0.06},
806 {{"", "11", "8"}, -0.01},
807 {{"", "11", "9"}, 0.1},
808 {{"", "11", "10"}, 0.1},
809 {{"", "11", "12"}, 0.46},
810 {{"", "11", "13"}, 0.2},
811 {{"", "11", "14"}, 0.26},
812 {{"", "11", "15"}, 0.18},
813 {{"", "11", "16"}, 0.0},
814 {{"", "12", "1"}, 0.09},
815 {{"", "12", "2"}, 0.31},
816 {{"", "12", "3"}, 0.26},
817 {{"", "12", "4"}, 0.25},
818 {{"", "12", "5"}, 0.32},
819 {{"", "12", "6"}, 0.0},
820 {{"", "12", "7"}, 0.06},
821 {{"", "12", "8"}, 0.0},
822 {{"", "12", "9"}, 0.06},
823 {{"", "12", "10"}, 0.07},
824 {{"", "12", "11"}, 0.46},
825 {{"", "12", "13"}, 0.25},
826 {{"", "12", "14"}, 0.23},
827 {{"", "12", "15"}, 0.14},
828 {{"", "12", "16"}, 0.0},
829 {{"", "13", "1"}, 0.1},
830 {{"", "13", "2"}, 0.26},
831 {{"", "13", "3"}, 0.16},
832 {{"", "13", "4"}, 0.15},
833 {{"", "13", "5"}, 0.27},
834 {{"", "13", "6"}, 0.23},
835 {{"", "13", "7"}, 0.12},
836 {{"", "13", "8"}, 0.18},
837 {{"", "13", "9"}, 0.12},
838 {{"", "13", "10"}, 0.09},
839 {{"", "13", "11"}, 0.2},
840 {{"", "13", "12"}, 0.25},
841 {{"", "13", "14"}, 0.29},
842 {{"", "13", "15"}, 0.06},
843 {{"", "13", "16"}, 0.0},
844 {{"", "14", "1"}, 0.05},
845 {{"", "14", "2"}, 0.26},
846 {{"", "14", "3"}, 0.22},
847 {{"", "14", "4"}, 0.2},
848 {{"", "14", "5"}, 0.29},
849 {{"", "14", "6"}, 0.15},
850 {{"", "14", "7"}, 0.09},
851 {{"", "14", "8"}, 0.11},
852 {{"", "14", "9"}, 0.1},
853 {{"", "14", "10"}, 0.1},
854 {{"", "14", "11"}, 0.26},
855 {{"", "14", "12"}, 0.23},
856 {{"", "14", "13"}, 0.29},
857 {{"", "14", "15"}, 0.15},
858 {{"", "14", "16"}, 0.0},
859 {{"", "15", "1"}, 0.04},
860 {{"", "15", "2"}, 0.12},
861 {{"", "15", "3"}, 0.12},
862 {{"", "15", "4"}, 0.09},
863 {{"", "15", "5"}, 0.12},
864 {{"", "15", "6"}, 0.07},
865 {{"", "15", "7"}, 0.09},
866 {{"", "15", "8"}, 0.04},
867 {{"", "15", "9"}, 0.1},
868 {{"", "15", "10"}, 0.16},
869 {{"", "15", "11"}, 0.18},
870 {{"", "15", "12"}, 0.14},
871 {{"", "15", "13"}, 0.06},
872 {{"", "15", "14"}, 0.15},
873 {{"", "15", "16"}, 0.0},
874 {{"", "16", "1"}, 0.0},
875 {{"", "16", "2"}, 0.0},
876 {{"", "16", "3"}, 0.0},
877 {{"", "16", "4"}, 0.0},
878 {{"", "16", "5"}, 0.0},
879 {{"", "16", "6"}, 0.0},
880 {{"", "16", "7"}, 0.0},
881 {{"", "16", "8"}, 0.0},
882 {{"", "16", "9"}, 0.0},
883 {{"", "16", "10"}, 0.0},
884 {{"", "16", "11"}, 0.0},
885 {{"", "16", "12"}, 0.0},
886 {{"", "16", "13"}, 0.0},
887 {{"", "16", "14"}, 0.0},
888 {{"", "16", "15"}, 0.0}
889 };
890
891 // Equity intra-bucket correlations (exclude Residual and deal with it in the method - it is 0%)
892 intraBucketCorrelation_[CrifRecord::RiskType::Equity] = {
893 {{"1", "", ""}, 0.14},
894 {{"2", "", ""}, 0.24},
895 {{"3", "", ""}, 0.25},
896 {{"4", "", ""}, 0.2},
897 {{"5", "", ""}, 0.26},
898 {{"6", "", ""}, 0.34},
899 {{"7", "", ""}, 0.33},
900 {{"8", "", ""}, 0.34},
901 {{"9", "", ""}, 0.21},
902 {{"10", "", ""}, 0.24},
903 {{"11", "", ""}, 0.63}
904 };
905
906 // Commodity intra-bucket correlations
907 intraBucketCorrelation_[CrifRecord::RiskType::Commodity] = {
908 {{"1", "", ""}, 0.71},
909 {{"2", "", ""}, 0.92},
910 {{"3", "", ""}, 0.97},
911 {{"4", "", ""}, 0.97},
912 {{"5", "", ""}, 0.99},
913 {{"6", "", ""}, 0.98},
914 {{"7", "", ""}, 1.0},
915 {{"8", "", ""}, 0.69},
916 {{"9", "", ""}, 0.47},
917 {{"10", "", ""}, 0.01},
918 {{"11", "", ""}, 0.67},
919 {{"12", "", ""}, 0.70},
920 {{"13", "", ""}, 0.68},
921 {{"14", "", ""}, 0.22},
922 {{"15", "", ""}, 0.50},
923 {{"16", "", ""}, 0.0 }
924 };
925
926 // Initialise the single, ad-hoc type, correlations
927 xccyCorr_ = 0.0; // not a valid risk type
928 infCorr_ = 0.33;
929 infVolCorr_ = 0.0; // not a valid risk type
930 irSubCurveCorr_ = 0.982;
933 crqSameIntraCorr_ = 0.98;
934 crqDiffIntraCorr_ = 0.55;
936 crnqSameIntraCorr_ = 0.60;
937 crnqDiffIntraCorr_ = 0.21;
938 crnqInterCorr_ = 0.05;
939 fxCorr_ = 0.5;
940 basecorrCorr_ = 0.0; // not a valid risk type
941
942 // clang-format on
943}
944
945} // namespace analytics
946} // namespace ore
SimmConfiguration_ISDA_V1_0(const QuantLib::ext::shared_ptr< SimmBucketMapper > &simmBucketMapper, const std::string &name="SIMM ISDA V1_0 (7 April 2016)", const std::string version="1.0")
QuantLib::Real crqResidualIntraCorr_
Credit-Q residual intra correlation.
QuantLib::Real basecorrCorr_
Base correlation risk factor correlation.
std::map< CrifRecord::RiskType, QuantLib::Real > rwRiskType_
QuantLib::Real crnqResidualIntraCorr_
Credit-NonQ residual intra correlation.
std::map< CrifRecord::RiskType, std::vector< std::string > > mapLabels_2_
QuantLib::Real irInterCurrencyCorr_
IR correlation across currencies.
std::map< CrifRecord::RiskType, Amounts > rwLabel_1_
std::map< CrifRecord::RiskType, Amounts > intraBucketCorrelation_
std::map< CrifRecord::RiskType, std::vector< std::string > > mapBuckets_
QuantLib::Real crnqDiffIntraCorr_
Credit-NonQ non-residual intra correlation when different underlying names.
QuantLib::Real crqSameIntraCorr_
Credit-Q non-residual intra correlation when same qualifier but different vertex/source.
QuantLib::Real crnqSameIntraCorr_
Credit-NonQ non-residual intra correlation when same underlying names.
std::set< CrifRecord::RiskType > validRiskTypes_
Set of valid risk types for the current configuration.
QuantLib::ext::shared_ptr< SimmConcentration > simmConcentration_
Used to get the concentration thresholds for a given risk type and qualifier.
QuantLib::Real infCorr_
Correlation between any yield and inflation in same currency.
Amounts riskClassCorrelation_
Risk class correlation matrix.
QuantLib::Real crnqInterCorr_
Credit-NonQ non-residual inter bucket correlation.
std::map< CrifRecord::RiskType, Amounts > interBucketCorrelation_
std::map< CrifRecord::RiskType, std::vector< std::string > > mapLabels_1_
QuantLib::Real infVolCorr_
Correlation between any yield volatility and inflation volatility in same currency.
QuantLib::Real crqDiffIntraCorr_
Credit-Q non-residual intra correlation when different qualifier.
QuantLib::Real irSubCurveCorr_
IR Label2 level i.e. sub-curve correlation.
std::map< CrifRecord::RiskType, std::vector< QuantLib::Real > > curvatureWeights_
std::map< CrifRecord::RiskType, Amounts > rwBucket_
Integer parseInteger(const string &s)
Abstract base class for retrieving SIMM concentration thresholds.
SIMM configuration for SIMM version R1.0 (v3.15)
string name