Logo
Reference manual - version orea_version
Public Member Functions | List of all members
SimmConfiguration_ISDA_V1_3_38 Class Reference

Class giving the SIMM configuration for v1.3.38. More...

#include <orea/simm/simmconfigurationisdav1_3_38.hpp>

+ Inheritance diagram for SimmConfiguration_ISDA_V1_3_38:

Public Member Functions

 SimmConfiguration_ISDA_V1_3_38 (const boost::shared_ptr< SimmBucketMapper > &simmBucketMapper, const std::string &name="SIMM ISDA V1_3_38 (24 May 2017)", const std::string version="1.3.38")
 
std::string labels2 (const boost::shared_ptr< QuantLib::InterestRateIndex > &irIndex) const override
 Return the SIMM Label2 value for the given interest rate index.
 
void addLabels2 (const RiskType &rt, const std::string &label_2) override
 Add SIMM Label2 values under certain circumstances.
 
- Public Member Functions inherited from SimmConfigurationBase
const std::string & name () const override
 Returns the SIMM configuration name.
 
const std::string & version () const override
 Returns the SIMM configuration version.
 
const boost::shared_ptr< SimmBucketMapper > & bucketMapper () const override
 Returns the SIMM bucket mapper used by the configuration.
 
bool hasBuckets (const RiskType &rt) const override
 Return true if the SIMM risk type rt has buckets.
 
std::string bucket (const RiskType &rt, const std::string &qualifier) const override
 
std::vector< std::string > buckets (const RiskType &rt) const override
 
std::vector< std::string > labels1 (const RiskType &rt) const override
 
std::vector< std::string > labels2 (const RiskType &rt) const override
 
std::string labels2 (const QuantLib::Period &p) const override
 Return the SIMM Label2 value for the given Libor tenor.
 
QuantLib::Real weight (const RiskType &rt, boost::optional< std::string > qualifier=boost::none, boost::optional< std::string > label_1=boost::none, const std::string &calculationCurrency="") const override
 
QuantLib::Real curvatureWeight (const RiskType &rt, const std::string &label_1) const override
 
QuantLib::Real historicalVolatilityRatio (const RiskType &rt) const override
 
QuantLib::Real sigma (const RiskType &rt, boost::optional< std::string > qualifier=boost::none, boost::optional< std::string > label_1=boost::none, const std::string &calculationCurrency="") const override
 
QuantLib::Real curvatureMarginScaling () const override
 
QuantLib::Real concentrationThreshold (const RiskType &rt, const std::string &qualifier) const override
 
bool isValidRiskType (const RiskType &rt) const override
 
QuantLib::Real correlationRiskClasses (const RiskClass &rc_1, const RiskClass &rc_2) const override
 Return the correlation between SIMM risk classes rc_1 and rc_2.
 
QuantLib::Real correlation (const RiskType &firstRt, const std::string &firstQualifier, const std::string &firstLabel_1, const std::string &firstLabel_2, const RiskType &secondRt, const std::string &secondQualifier, const std::string &secondLabel_1, const std::string &secondLabel_2, const std::string &calculationCurrency="") const override
 
QuantLib::Size mporDays () const
 MPOR in days.
 

Additional Inherited Members

- Public Types inherited from SimmConfiguration
enum class  SimmSide { Call , Post }
 Enum indicating the relevant side of the SIMM calculation.
 
enum class  RiskClass {
  InterestRate , CreditQualifying , CreditNonQualifying , Equity ,
  Commodity , FX , All
}
 
enum class  RiskType {
  Commodity , CommodityVol , CreditNonQ , CreditQ ,
  CreditVol , CreditVolNonQ , Equity , EquityVol ,
  FX , FXVol , Inflation , IRCurve ,
  IRVol , InflationVol , BaseCorr , XCcyBasis ,
  ProductClassMultiplier , AddOnNotionalFactor , Notional , AddOnFixedAmount ,
  PV , All
}
 
enum class  MarginType {
  Delta , Vega , Curvature , BaseCorr ,
  AdditionalIM , All
}
 
enum class  ProductClass {
  RatesFX , Rates , FX , Credit ,
  Equity , Commodity , Empty , Other ,
  AddOnNotionalFactor , AddOnFixedAmount , All
}
 
enum class  IMModel { Schedule , SIMM , SIMM_R , SIMM_P }
 
enum  Regulation {
  APRA , CFTC , ESA , FINMA ,
  KFSC , HKMA , JFSA , MAS ,
  OSFI , RBI , SEC , SEC_unseg ,
  USPR , NONREG , BACEN , SANT ,
  SFC , UK , AMFQ , Included ,
  Unspecified , Invalid
}
 SIMM regulators.
 
- Static Public Member Functions inherited from SimmConfiguration
static std::set< RiskClassriskClasses (bool includeAll=false)
 Give back a set containing the RiskClass values optionally excluding 'All'.
 
static std::set< RiskTyperiskTypes (bool includeAll=false)
 Give back a set containing the RiskType values optionally excluding 'All'.
 
static std::set< MarginTypemarginTypes (bool includeAll=false)
 Give back a set containing the MarginType values optionally excluding 'All'.
 
static std::set< ProductClassproductClasses (bool includeAll=false)
 Give back a set containing the ProductClass values optionally excluding 'All'.
 
static bool less_than (const ProductClass &lhs, const ProductClass &rhs)
 Define ordering for ProductClass according to a waterfall:
 
static bool greater_than (const ProductClass &lhs, const ProductClass &rhs)
 
static bool less_than_or_equal_to (const ProductClass &lhs, const ProductClass &rhs)
 
static bool greater_than_or_equal_to (const ProductClass &lhs, const ProductClass &rhs)
 
static ProductClass maxProductClass (ProductClass pc1, ProductClass pc2)
 Return the "worse" ProductClass using a waterfall logic:
 
- Protected Member Functions inherited from SimmConfigurationBase
 SimmConfigurationBase (const boost::shared_ptr< SimmBucketMapper > &simmBucketMapper, const std::string &name, const std::string version, QuantLib::Size mporDays=10)
 Constructor taking the SIMM configuration name and version.
 
QuantLib::Size labelIndex (const std::string &label, const std::vector< std::string > &labels) const
 Helper method to find the index of the label in labels.
 
void addLabels2Impl (const RiskType &rt, const std::string &label_2)
 A base implementation of addLabels2 that can be shared by derived classes.
 
- Protected Attributes inherited from SimmConfigurationBase
boost::shared_ptr< SimmBucketMappersimmBucketMapper_
 Used to map SIMM Qualifier names to SIMM bucket values.
 
boost::shared_ptr< SimmConcentrationsimmConcentration_
 Used to get the concentration thresholds for a given risk type and qualifier.
 
std::map< RiskType, std::vector< std::string > > mapBuckets_
 
std::map< RiskType, std::vector< std::string > > mapLabels_1_
 
std::map< RiskType, std::vector< std::string > > mapLabels_2_
 
std::map< RiskType, QuantLib::Real > rwRiskType_
 
std::map< RiskType, std::vector< QuantLib::Real > > rwBucket_
 
std::map< std::pair< RiskType, std::string >, std::vector< QuantLib::Real > > rwLabel_1_
 
std::map< RiskType, std::vector< QuantLib::Real > > curvatureWeights_
 
std::map< RiskType, QuantLib::Real > historicalVolatilityRatios_
 Map from risk type to a historical volatility ratio.
 
std::set< RiskTypevalidRiskTypes_
 Set of valid risk types for the current configuration.
 
QuantLib::Matrix riskClassCorrelation_
 Risk class correlation matrix.
 
QuantLib::Matrix irTenorCorrelation_
 Correlation matrix giving correlation between interest rate tenors.
 
std::map< RiskType, QuantLib::Matrix > interBucketCorrelation_
 
std::map< RiskType, std::vector< QuantLib::Real > > intraBucketCorrelation_
 
QuantLib::Size mporDays_
 
QuantLib::Real xccyCorr_
 
QuantLib::Real infCorr_
 Correlation between any yield and inflation in same currency.
 
QuantLib::Real infVolCorr_
 Correlation between any yield volatility and inflation volatility in same currency.
 
QuantLib::Real irSubCurveCorr_
 IR Label2 level i.e. sub-curve correlation.
 
QuantLib::Real irInterCurrencyCorr_
 IR correlation across currencies.
 
QuantLib::Real crqResidualIntraCorr_
 Credit-Q residual intra correlation.
 
QuantLib::Real crqSameIntraCorr_
 Credit-Q non-residual intra correlation when same qualifier but different vertex/source.
 
QuantLib::Real crqDiffIntraCorr_
 Credit-Q non-residual intra correlation when different qualifier.
 
QuantLib::Real crnqResidualIntraCorr_
 Credit-NonQ residual intra correlation.
 
QuantLib::Real crnqSameIntraCorr_
 Credit-NonQ non-residual intra correlation when same underlying names.
 
QuantLib::Real crnqDiffIntraCorr_
 Credit-NonQ non-residual intra correlation when different underlying names.
 
QuantLib::Real crnqInterCorr_
 Credit-NonQ non-residual inter bucket correlation.
 
QuantLib::Real fxCorr_
 FX correlation.
 
QuantLib::Real basecorrCorr_
 Base correlation risk factor correlation.
 
- Static Protected Attributes inherited from SimmConfiguration
static const QuantLib::Size numberOfRiskClasses
 Number of risk classes including RiskClass::All.
 
static const QuantLib::Size numberOfRiskTypes
 Number of risk types including RiskType::All.
 
static const QuantLib::Size numberOfMarginTypes
 Number of margin types including MarginType::All.
 
static const QuantLib::Size numberOfProductClasses
 Number of product classes including ProductClass::All.
 
static const QuantLib::Size numberOfRegulations
 Number of regulations.
 

Detailed Description

Class giving the SIMM configuration for v1.3.38.

Class giving the SIMM configuration as outlined in the document ISDA SIMM Methodology, version R1.3 (based on v3.29: 1 April 2017). Effective Date: April 1, 2017.

This file used to be called simmconfigurationisdav338.hpp This class used to be called SimmConfiguration_ISDA_V338