27#include <boost/any.hpp>
39 typedef std::map<std::tuple<std::string, std::string, std::string>, std::string>
Amounts;
40 typedef std::map<std::tuple<std::string, std::string, std::string>, std::set<std::string>>
CurrencyLists;
45 const std::string&
value)
47 Amount(
const std::tuple<std::string, std::string, std::string>&
key,
const std::string&
value);
53 const std::tuple<std::string, std::string, std::string>
key()
const;
72 virtual const std::map<CrifRecord::RiskType, std::map<QuantLib::Size, QuantLib::ext::shared_ptr<Amount>>>
74 return std::map<CrifRecord::RiskType, std::map<QuantLib::Size, QuantLib::ext::shared_ptr<Amount>>>();
83 const std::map<QuantLib::Size, Amounts>&
delta()
const {
return delta_; }
84 const std::map<QuantLib::Size, Amounts>&
vega()
const {
return vega_; }
92 std::map<QuantLib::Size, Amounts>
delta_;
93 std::map<QuantLib::Size, Amounts>
vega_;
104 virtual const std::map<CrifRecord::RiskType, std::map<QuantLib::Size, QuantLib::ext::shared_ptr<Amount>>>
107 const std::map<QuantLib::Size, QuantLib::ext::shared_ptr<Amount>>&
inflation()
const {
return inflation_; }
108 const std::map<QuantLib::Size, QuantLib::ext::shared_ptr<Amount>>&
xCcyBasis()
const {
return xCcyBasis_; }
112 std::map<QuantLib::Size, QuantLib::ext::shared_ptr<Amount>>
inflation_;
113 std::map<QuantLib::Size, QuantLib::ext::shared_ptr<Amount>>
xCcyBasis_;
124 virtual const std::map<CrifRecord::RiskType, std::map<QuantLib::Size, QuantLib::ext::shared_ptr<Amount>>>
171 const QuantLib::ext::shared_ptr<Amount>&
outer()
const {
return outer_; }
177 QuantLib::ext::shared_ptr<Amount>
outer_;
253 const std::map<CrifRecord::RiskType, std::vector<std::string>>&
buckets()
const {
return buckets_; }
254 const std::map<CrifRecord::RiskType, std::vector<std::string>>&
labels1()
const {
return labels1_; }
255 const std::map<CrifRecord::RiskType, std::vector<std::string>>&
labels2()
const {
return labels2_; }
262 std::map<CrifRecord::RiskType, std::vector<std::string>>
buckets_;
263 std::map<CrifRecord::RiskType, std::vector<std::string>>
labels1_;
264 std::map<CrifRecord::RiskType, std::vector<std::string>>
labels2_;
270 const std::string&
version()
const;
279 const std::map<SimmConfiguration::RiskClass, QuantLib::ext::shared_ptr<RiskClassData>>&
riskClassData()
const {
287 const std::string&
id()
const {
return id_; }
293 std::map<SimmConfiguration::RiskClass, QuantLib::ext::shared_ptr<RiskClassData>>
riskClassData_;
308 void add(
const QuantLib::ext::shared_ptr<SimmCalibration>&);
310 const QuantLib::ext::shared_ptr<SimmCalibration>&
getById(
const std::string&
id)
const;
311 const QuantLib::ext::shared_ptr<SimmCalibration>
getBySimmVersion(
const std::string&
id)
const;
314 std::map<std::string, QuantLib::ext::shared_ptr<SimmCalibration>>
data_;
void fromXML(ore::data::XMLNode *node) override
const std::string & value() const
const std::string & label2() const
Amount(const std::tuple< std::string, std::string, std::string > &key, const std::string &value)
Amount(ore::data::XMLNode *node)
Amount(const std::string &bucket, const std::string &label1, const std::string &label2, const std::string &value)
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
const std::string & label1() const
const std::tuple< std::string, std::string, std::string > key() const
const std::string & bucket() const
const Amounts & delta() const
ConcentrationThresholds()
void fromXML(ore::data::XMLNode *node) override
ConcentrationThresholds(ore::data::XMLNode *node)
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
const Amounts & vega() const
void fromXML(ore::data::XMLNode *node) override
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
Correlations(ore::data::XMLNode *node)
Amounts interBucketCorrelations_
const Amounts & interBucketCorrelations() const
const Amounts & intraBucketCorrelations() const
Amounts intraBucketCorrelations_
const QuantLib::ext::shared_ptr< Amount > & baseCorrelation() const
QuantLib::ext::shared_ptr< Amount > baseCorrelation_
void fromXML(ore::data::XMLNode *node) override
CreditQCorrelations(ore::data::XMLNode *node)
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
void fromXML(ore::data::XMLNode *node) override
virtual const std::map< CrifRecord::RiskType, std::map< QuantLib::Size, QuantLib::ext::shared_ptr< Amount > > > uniqueRiskWeights() const override
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
std::map< QuantLib::Size, QuantLib::ext::shared_ptr< Amount > > baseCorrelation_
void fromXML(ore::data::XMLNode *node) override
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
FXCorrelations(ore::data::XMLNode *node)
const QuantLib::ext::shared_ptr< Amount > & volatility() const
QuantLib::ext::shared_ptr< Amount > volatility_
void fromXML(ore::data::XMLNode *node) override
CurrencyLists currencyLists_
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
const CurrencyLists & currencyLists() const
const QuantLib::ext::shared_ptr< Amount > & inflation() const
QuantLib::ext::shared_ptr< Amount > xCcyBasis_
QuantLib::ext::shared_ptr< Amount > inflation_
void fromXML(ore::data::XMLNode *node) override
const QuantLib::ext::shared_ptr< Amount > & subCurves() const
const QuantLib::ext::shared_ptr< Amount > & xCcyBasis() const
const QuantLib::ext::shared_ptr< Amount > & outer() const
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
QuantLib::ext::shared_ptr< Amount > outer_
IRCorrelations(ore::data::XMLNode *node)
QuantLib::ext::shared_ptr< Amount > subCurves_
IRFXConcentrationThresholds(ore::data::XMLNode *node)
void fromXML(ore::data::XMLNode *node) override
CurrencyLists currencyLists_
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
IRFXConcentrationThresholds()
const CurrencyLists & currencyLists() const
void fromXML(ore::data::XMLNode *node) override
virtual const std::map< CrifRecord::RiskType, std::map< QuantLib::Size, QuantLib::ext::shared_ptr< Amount > > > uniqueRiskWeights() const override
CurrencyLists currencyLists_
const std::map< QuantLib::Size, QuantLib::ext::shared_ptr< Amount > > & xCcyBasis() const
std::map< QuantLib::Size, QuantLib::ext::shared_ptr< Amount > > inflation_
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
const std::map< QuantLib::Size, QuantLib::ext::shared_ptr< Amount > > & inflation() const
std::map< QuantLib::Size, QuantLib::ext::shared_ptr< Amount > > xCcyBasis_
const CurrencyLists & currencyLists() const
std::map< QuantLib::Size, Amounts > delta_
const std::map< QuantLib::Size, Amounts > & delta() const
void fromXML(ore::data::XMLNode *node) override
SimmConfiguration::RiskClass riskClass_
RiskWeights(const SimmConfiguration::RiskClass &rc)
const std::map< QuantLib::Size, Amounts > & vega() const
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
const std::map< QuantLib::Size, QuantLib::ext::shared_ptr< Amount > > & historicalVolatilityRatio() const
std::map< QuantLib::Size, Amounts > vega_
virtual const std::map< CrifRecord::RiskType, std::map< QuantLib::Size, QuantLib::ext::shared_ptr< Amount > > > uniqueRiskWeights() const
std::map< QuantLib::Size, QuantLib::ext::shared_ptr< Amount > > historicalVolatilityRatio_
std::map< CrifRecord::RiskType, std::vector< std::string > > buckets_
const std::map< CrifRecord::RiskType, std::vector< std::string > > & labels2() const
void fromXML(ore::data::XMLNode *node) override
SimmConfiguration::RiskClass riskClass_
std::map< CrifRecord::RiskType, std::vector< std::string > > labels1_
QuantLib::ext::shared_ptr< ConcentrationThresholds > concentrationThresholds_
QuantLib::ext::shared_ptr< Correlations > correlations_
const std::map< CrifRecord::RiskType, std::vector< std::string > > & labels1() const
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
RiskClassData(const SimmConfiguration::RiskClass &riskClass)
std::map< CrifRecord::RiskType, std::vector< std::string > > labels2_
QuantLib::ext::shared_ptr< RiskWeights > riskWeights_
const QuantLib::ext::shared_ptr< ConcentrationThresholds > & concentrationThresholds() const
const std::map< CrifRecord::RiskType, std::vector< std::string > > & buckets() const
const QuantLib::ext::shared_ptr< Correlations > & correlations() const
const QuantLib::ext::shared_ptr< RiskWeights > & riskWeights() const
void fromXML(ore::data::XMLNode *node) override
std::map< std::string, QuantLib::ext::shared_ptr< SimmCalibration > > data_
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
void add(const QuantLib::ext::shared_ptr< SimmCalibration > &)
const QuantLib::ext::shared_ptr< SimmCalibration > getBySimmVersion(const std::string &id) const
const QuantLib::ext::shared_ptr< SimmCalibration > & getById(const std::string &id) const
bool hasId(const std::string &id) const
const std::string & version() const
const std::vector< std::pair< std::string, std::string > > & additionalFields() const
const std::string & id() const
Amounts riskClassCorrelations_
const std::map< SimmConfiguration::RiskClass, QuantLib::ext::shared_ptr< RiskClassData > > & riskClassData() const
void fromXML(ore::data::XMLNode *node) override
std::map< std::tuple< std::string, std::string, std::string >, std::string > Amounts
const std::vector< std::string > & versionNames() const
std::vector< std::string > versionNames_
std::vector< std::pair< std::string, std::string > > additionalFields_
ore::data::XMLNode * toXML(ore::data::XMLDocument &doc) const override
std::map< SimmConfiguration::RiskClass, QuantLib::ext::shared_ptr< RiskClassData > > riskClassData_
std::map< std::tuple< std::string, std::string, std::string >, std::set< std::string > > CurrencyLists
const Amounts & riskClassCorrelations() const
SimmCalibration(ore::data::XMLNode *node)
Abstract base class defining the interface for a SIMM configuration.
SIMM configuration interface.