Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
simmconcentrationcalibration.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2023 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
19/*! \file orea/simm/simmconcentrationcalibration.hpp
20 \brief SIMM concentration thresholds built from SIMM calibration
21*/
22
23#pragma once
24
27
28#include <map>
31#include <set>
32#include <string>
33
34namespace ore{
35namespace analytics {
36
37//! Class giving the ISDA SIMM concentration thresholds as defined by a SIMM calibration
39public:
40 //! Default constructor that adds fixed known mappings
41 SimmConcentrationCalibration(const QuantLib::ext::shared_ptr<SimmCalibration>& simmCalibration,
42 const QuantLib::ext::shared_ptr<SimmBucketMapper>& simmBucketMapper);
43
44 /*! Return the SIMM <em>concentration threshold</em> for a given SIMM
45 <em>RiskType</em> and SIMM <em>Qualifier</em>.
46
47 \warning If the risk type is not covered <code>QL_MAX_REAL</code> is
48 returned i.e. no concentration threshold
49 */
50 QuantLib::Real threshold(const CrifRecord::RiskType& riskType, const std::string& qualifier) const override;
51
52private:
53 //! Help getting SIMM buckets from SIMM qualifiers
54 QuantLib::ext::shared_ptr<SimmBucketMapper> simmBucketMapper_;
55};
56
57} // namespace analytics
58} // namespace ore
Class giving the ISDA SIMM concentration thresholds as defined by a SIMM calibration.
QuantLib::Real threshold(const CrifRecord::RiskType &riskType, const std::string &qualifier) const override
QuantLib::ext::shared_ptr< SimmBucketMapper > simmBucketMapper_
Help getting SIMM buckets from SIMM qualifiers.
Struct for holding a CRIF record.
Abstract base class for classes that map SIMM qualifiers to buckets.
SIMM class for defining SIMM risk weights, thresholds, buckets, and labels. Currently only supports t...
Abstract base class for retrieving SIMM concentration thresholds.