12#include <ql/time/date.hpp>
25 const QuantLib::ext::shared_ptr<ore::data::CurrencyHedgedEquityIndexReferenceDatum>&
indexRefData,
26 const QuantLib::ext::shared_ptr<ore::data::EquityIndexReferenceDatum>
underlyingRefData,
32 QL_REQUIRE(
indexRefData_,
"CurrencyHedgedDecomposition requires a valid indexRefData");
33 QL_REQUIRE(
underlyingRefData_,
"CurrencyHedgedDecomposition requires a valid underlyingRefData");
34 QL_REQUIRE(!
indexCurrency_.empty(),
"CurrencyHedgedDecomposition requires the currency of the index");
35 QL_REQUIRE(!
underlyingIndexCurrency_.empty(),
"CurrencyHedgedDecomposition requires the currency of the underlying index");
37 "CurrencyHedgedDecomposition requires the FXIndex name to convert underlyingIndexCurrency to IndexCurrency");
52 QuantLib::Date
referenceDate(
const QuantLib::Date& asof)
const;
56 static QuantLib::Date
referenceDate(
const QuantLib::ext::shared_ptr<CurrencyHedgedEquityIndexReferenceDatum>& refData,
57 const QuantLib::Date& asof);
59 static QuantLib::Date
rebalancingDate(
const QuantLib::ext::shared_ptr<CurrencyHedgedEquityIndexReferenceDatum>& refData,
60 const QuantLib::Date& asof);
67 const double quantity,
const QuantLib::Date& asof,
68 const QuantLib::ext::shared_ptr<ore::data::Market>& todaysMarket,
const double shiftsize)
const;
70 double unhedgedSpotExposure(
double hedgedExposure,
const double quantity,
const QuantLib::Date& asof,
71 const QuantLib::ext::shared_ptr<ore::data::Market>& todaysMarket)
const;
79 std::map<std::string, RequiredFixings::FixingDates>& fixings)
const;
83 QuantLib::ext::shared_ptr<ore::data::CurrencyHedgedEquityIndexReferenceDatum>
indexRefData_;
91QuantLib::ext::shared_ptr<CurrencyHedgedEquityIndexDecomposition>
93 const QuantLib::ext::shared_ptr<ore::data::ReferenceDataManager>& refDataMgr,
94 const QuantLib::ext::shared_ptr<ore::data::CurveConfigurations>&
curveConfigs);
const std::string & underlyingIndexName() const
const std::string & underlyingIndexCurrency() const
QuantLib::ext::shared_ptr< ore::data::EquityIndexReferenceDatum > underlyingRefData() const
double unhedgedSpotExposure(double hedgedExposure, const double quantity, const QuantLib::Date &asof, const QuantLib::ext::shared_ptr< ore::data::Market > &todaysMarket) const
std::map< std::string, std::pair< double, std::string > > currencyWeightsAndFxIndexNames_
const std::string & indexName() const
QuantLib::ext::shared_ptr< ore::data::CurrencyHedgedEquityIndexReferenceDatum > indexRefData() const
const std::map< std::string, std::pair< double, std::string > > & currencyWeightsAndFxIndexNames() const
std::string underlyingIndexCurrency_
std::map< std::string, double > fxSpotRiskFromForwards(const double quantity, const QuantLib::Date &asof, const QuantLib::ext::shared_ptr< ore::data::Market > &todaysMarket, const double shiftsize) const
QuantLib::ext::shared_ptr< ore::data::EquityIndexReferenceDatum > underlyingRefData_
const std::string & indexCurrency() const
const std::string & fxIndexName() const
QuantLib::Date rebalancingDate(const QuantLib::Date &asof) const
std::string indexCurrency_
CurrencyHedgedEquityIndexDecomposition(const std::string indexName, const QuantLib::ext::shared_ptr< ore::data::CurrencyHedgedEquityIndexReferenceDatum > &indexRefData, const QuantLib::ext::shared_ptr< ore::data::EquityIndexReferenceDatum > underlyingRefData, const std::string &indexCurrency, const std::string &underlyingIndexCurrency, const std::string &fxIndexName, const std::map< std::string, std::pair< double, std::string > > ¤cyWeightsAndFxIndexNames)
QuantLib::ext::shared_ptr< ore::data::CurrencyHedgedEquityIndexReferenceDatum > indexRefData_
void addAdditionalFixingsForEquityIndexDecomposition(const QuantLib::Date &asof, std::map< std::string, RequiredFixings::FixingDates > &fixings) const
Curve configuration repository.
QuantLib::ext::shared_ptr< CurrencyHedgedEquityIndexDecomposition > loadCurrencyHedgedIndexDecomposition(const std::string &name, const QuantLib::ext::shared_ptr< ReferenceDataManager > &refDataMgr, const QuantLib::ext::shared_ptr< CurveConfigurations > &curveConfigs)
Serializable Credit Default Swap.
Reference data model and serialization.
vector< string > curveConfigs