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

#include <orea/simm/simmconfigurationisdav1_3.hpp>

+ Inheritance diagram for SimmConfiguration_ISDA_V1_3:

Public Member Functions

 SimmConfiguration_ISDA_V1_3 (const boost::shared_ptr< SimmBucketMapper > &simmBucketMapper, const std::string &name="SIMM ISDA V1_3 (1 April 2017)", const std::string version="1.3")
 
- Public Member Functions inherited from SimmConfiguration_ISDA_V1_0
 SimmConfiguration_ISDA_V1_0 (const boost::shared_ptr< SimmBucketMapper > &simmBucketMapper, const std::string &name="SIMM ISDA V1_0 (7 April 2016)", const std::string version="1.0")
 
- 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 boost::shared_ptr< QuantLib::InterestRateIndex > &irIndex) const override
 Return the SIMM Label2 value for the given interest rate index.
 
std::string labels2 (const QuantLib::Period &p) const override
 Return the SIMM Label2 value for the given Libor tenor.
 
void addLabels2 (const RiskType &rt, const std::string &label_2) override
 Add SIMM Label2 values under certain circumstances.
 
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 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 simmconfigurationisdav329.hpp This class used to be called SimmConfiguration_ISDA_V329