41 std::map<ore::analytics::RiskFactorKey, QuantLib::ext::shared_ptr<QuantLib::Instrument>>
parHelpers_;
43 std::map<ore::analytics::RiskFactorKey, QuantLib::ext::shared_ptr<QuantLib::CapFloor>>
parCaps_;
44 std::map<ore::analytics::RiskFactorKey, QuantLib::Handle<QuantLib::YieldTermStructure>>
parCapsYts_;
45 std::map<ore::analytics::RiskFactorKey, QuantLib::Handle<QuantLib::OptionletVolatilityStructure>>
parCapsVts_;
47 std::map<ore::analytics::RiskFactorKey, QuantLib::Handle<QuantLib::YieldTermStructure>>
parYoYCapsYts_;
48 std::map<ore::analytics::RiskFactorKey, QuantLib::Handle<QuantLib::YoYInflationIndex>>
parYoYCapsIndex_;
49 std::map<ore::analytics::RiskFactorKey, QuantLib::ext::shared_ptr<QuantLib::YoYInflationCapFloor>>
parYoYCaps_;
50 std::map<ore::analytics::RiskFactorKey, QuantLib::Handle<QuantExt::YoYOptionletVolatilitySurface>>
parYoYCapsVts_;
65 const QuantLib::ext::shared_ptr<ore::analytics::ScenarioSimMarketParameters>& simMarketParams,
67 const std::set<ore::analytics::RiskFactorKey::KeyType>& typesDisabled = {},
68 const std::set<ore::analytics::RiskFactorKey::KeyType>& parTypes = {},
69 const std::set<ore::analytics::RiskFactorKey>& relevantRiskFactors = {},
70 const bool continueOnError =
false,
72 const QuantLib::ext::shared_ptr<ore::analytics::Market>& simMarket =
nullptr)
const;
76 std::pair<QuantLib::ext::shared_ptr<QuantLib::Instrument>, Date>
77 makeDeposit(
const QuantLib::Date&
asof,
const QuantLib::ext::shared_ptr<ore::data::Market>& market, std::string ccy,
78 std::string indexName, std::string yieldCurveName, std::string equityForecastCurveName, QuantLib::Period term,
79 const QuantLib::ext::shared_ptr<ore::data::Convention>& conventions,
83 std::pair<QuantLib::ext::shared_ptr<QuantLib::Instrument>, Date>
84 makeFRA(
const QuantLib::Date&
asof,
const QuantLib::ext::shared_ptr<ore::data::Market>& market, std::string ccy,
85 std::string indexName, std::string yieldCurveName, std::string equityForecastCurveName,
86 QuantLib::Period term,
const QuantLib::ext::shared_ptr<ore::data::Convention>& conventions,
90 std::pair<QuantLib::ext::shared_ptr<QuantLib::Instrument>, Date>
91 makeSwap(
const QuantLib::ext::shared_ptr<ore::data::Market>& market, std::string ccy, std::string indexName,
92 std::string yieldCurveName, std::string equityForecastCurveName, QuantLib::Period term,
93 const QuantLib::ext::shared_ptr<ore::data::Convention>& conventions,
bool singleCurve,
94 std::set<ore::analytics::RiskFactorKey>& parHelperDependencies,
95 std::set<std::string>& removeTodaysFixingIndices,
const std::string& expDiscountCurve =
"",
99 std::pair<QuantLib::ext::shared_ptr<QuantLib::Instrument>, Date>
100 makeOIS(
const QuantLib::ext::shared_ptr<ore::data::Market>& market, std::string ccy, std::string indexName,
101 std::string yieldCurveName, std::string equityForecastCurveName, QuantLib::Period term,
102 const QuantLib::ext::shared_ptr<ore::data::Convention>& conventions,
bool singleCurve,
103 std::set<ore::analytics::RiskFactorKey>& parHelperDependencies,
104 std::set<std::string>& removeTodaysFixingIndices,
const std::string& expDiscountCurve =
"",
108 std::pair<QuantLib::ext::shared_ptr<QuantLib::Instrument>, Date>
109 makeTenorBasisSwap(
const QuantLib::Date&
asof,
const QuantLib::ext::shared_ptr<ore::data::Market>& market, std::string ccy,
110 std::string receiveIndexName, std::string payIndexName, std::string yieldCurveName,
111 std::string equityForecastCurveName, QuantLib::Period term,
const QuantLib::ext::shared_ptr<ore::data::Convention>& conventions,
112 const bool singleCurve, std::set<ore::analytics::RiskFactorKey>& parHelperDependencies,
113 std::set<std::string>& removeTodaysFixingIndices,
const std::string& expDiscountCurve =
"",
117 QuantLib::ext::shared_ptr<QuantLib::CapFloor>
makeCapFloor(
118 const QuantLib::ext::shared_ptr<ore::data::Market>& market, std::string ccy, std::string indexName, QuantLib::Period term,
double strike,
120 std::set<ore::analytics::RiskFactorKey>& parHelperDependencies,
const std::string& expDiscountCurve =
"",
124 std::pair<QuantLib::ext::shared_ptr<QuantLib::Instrument>, Date>
125 makeCrossCcyBasisSwap(
const QuantLib::ext::shared_ptr<ore::data::Market>& market, std::string baseCcy, std::string ccy, QuantLib::Period term,
126 const QuantLib::ext::shared_ptr<ore::data::Convention>& conventions,
127 std::set<ore::analytics::RiskFactorKey>& parHelperDependencies,
128 std::set<std::string>& removeTodaysFixingIndices,
132 std::pair<QuantLib::ext::shared_ptr<QuantLib::Instrument>, Date>
133 makeFxForward(
const QuantLib::ext::shared_ptr<ore::data::Market>& market, std::string baseCcy, std::string ccy, QuantLib::Period term,
134 const QuantLib::ext::shared_ptr<ore::data::Convention>& conventions,
135 std::set<ore::analytics::RiskFactorKey>& parHelperDependencies,
139 std::pair<QuantLib::ext::shared_ptr<QuantLib::Instrument>, Date>
140 makeCDS(
const QuantLib::ext::shared_ptr<ore::data::Market>& market, std::string name, std::string ccy, QuantLib::Period term,
141 const QuantLib::ext::shared_ptr<ore::data::Convention>& conventions,
142 std::set<ore::analytics::RiskFactorKey>& parHelperDependencies,
const std::string& expDiscountCurve =
"",
146 QuantLib::ext::shared_ptr<QuantLib::Instrument>
147 makeZeroInflationSwap(
const QuantLib::ext::shared_ptr<ore::data::Market>& market, std::string indexName, QuantLib::Period term,
148 const QuantLib::ext::shared_ptr<ore::data::Convention>& conventions,
bool singleCurve,
149 std::set<ore::analytics::RiskFactorKey>& parHelperDependencies,
150 const std::string& expDiscountCurve =
"",
154 QuantLib::ext::shared_ptr<QuantLib::Instrument>
155 makeYoyInflationSwap(
const QuantLib::ext::shared_ptr<ore::data::Market>& market, std::string indexName, QuantLib::Period term,
156 const QuantLib::ext::shared_ptr<ore::data::Convention>& conventions,
bool singleCurve,
bool fromZero,
157 std::set<ore::analytics::RiskFactorKey>& parHelperDependencies,
158 const std::string& expDiscountCurve =
"",
162 void makeYoYCapFloor(ParSensitivityInstrumentBuilder::Instruments& instruments,
163 const QuantLib::ext::shared_ptr<Market>& market, std::string indexName, QuantLib::Period term,
164 double strike,
const QuantLib::ext::shared_ptr<ore::data::Convention>& convention,
bool singleCurve,
std::pair< QuantLib::ext::shared_ptr< QuantLib::Instrument >, Date > makeSwap(const QuantLib::ext::shared_ptr< ore::data::Market > &market, std::string ccy, std::string indexName, std::string yieldCurveName, std::string equityForecastCurveName, QuantLib::Period term, const QuantLib::ext::shared_ptr< ore::data::Convention > &conventions, bool singleCurve, std::set< ore::analytics::RiskFactorKey > &parHelperDependencies, std::set< std::string > &removeTodaysFixingIndices, const std::string &expDiscountCurve="", const std::string &marketConfiguration=ore::data::Market::defaultConfiguration) const
Create Swap for implying par rate sensitivity from zero rate sensitivity.
QuantLib::ext::shared_ptr< QuantLib::CapFloor > makeCapFloor(const QuantLib::ext::shared_ptr< ore::data::Market > &market, std::string ccy, std::string indexName, QuantLib::Period term, double strike, bool generatePillar, std::set< ore::analytics::RiskFactorKey > &parHelperDependencies, const std::string &expDiscountCurve="", const std::string &marketConfiguration=ore::data::Market::defaultConfiguration) const
Create Cap/Floor QuantLib::Instrument for implying flat vol sensitivity from optionlet vol sensitivit...
std::pair< QuantLib::ext::shared_ptr< QuantLib::Instrument >, Date > makeTenorBasisSwap(const QuantLib::Date &asof, const QuantLib::ext::shared_ptr< ore::data::Market > &market, std::string ccy, std::string receiveIndexName, std::string payIndexName, std::string yieldCurveName, std::string equityForecastCurveName, QuantLib::Period term, const QuantLib::ext::shared_ptr< ore::data::Convention > &conventions, const bool singleCurve, std::set< ore::analytics::RiskFactorKey > &parHelperDependencies, std::set< std::string > &removeTodaysFixingIndices, const std::string &expDiscountCurve="", const std::string &marketConfiguration=ore::data::Market::defaultConfiguration) const
Create Basis Swap for implying par rate sensitivity from zero rate sensitivity.
std::pair< QuantLib::ext::shared_ptr< QuantLib::Instrument >, Date > makeCrossCcyBasisSwap(const QuantLib::ext::shared_ptr< ore::data::Market > &market, std::string baseCcy, std::string ccy, QuantLib::Period term, const QuantLib::ext::shared_ptr< ore::data::Convention > &conventions, std::set< ore::analytics::RiskFactorKey > &parHelperDependencies, std::set< std::string > &removeTodaysFixingIndices, const std::string &marketConfiguration=ore::data::Market::defaultConfiguration) const
Create Cross Ccy Basis Swap for implying par rate sensitivity from zero rate sensitivity.
void createParInstruments(ParSensitivityInstrumentBuilder::Instruments &instruments, const QuantLib::Date &asof, const QuantLib::ext::shared_ptr< ore::analytics::ScenarioSimMarketParameters > &simMarketParams, const ore::analytics::SensitivityScenarioData &sensitivityData, const std::set< ore::analytics::RiskFactorKey::KeyType > &typesDisabled={}, const std::set< ore::analytics::RiskFactorKey::KeyType > &parTypes={}, const std::set< ore::analytics::RiskFactorKey > &relevantRiskFactors={}, const bool continueOnError=false, const std::string &marketConfiguration=ore::data::Market::defaultConfiguration, const QuantLib::ext::shared_ptr< ore::analytics::Market > &simMarket=nullptr) const
Create par QuantLib::Instruments.
void makeYoYCapFloor(ParSensitivityInstrumentBuilder::Instruments &instruments, const QuantLib::ext::shared_ptr< Market > &market, std::string indexName, QuantLib::Period term, double strike, const QuantLib::ext::shared_ptr< ore::data::Convention > &convention, bool singleCurve, bool fromZero, const std::string &expDiscountCurve, const ore::analytics::RiskFactorKey &key, const std::string &marketConfiguration=ore::data::Market::defaultConfiguration) const
Create YoY Cap/Floor for implying rate rate sensitivity from yoy optionlet vol sensitivity.
ParSensitivityInstrumentBuilder()=default
std::pair< QuantLib::ext::shared_ptr< QuantLib::Instrument >, Date > makeDeposit(const QuantLib::Date &asof, const QuantLib::ext::shared_ptr< ore::data::Market > &market, std::string ccy, std::string indexName, std::string yieldCurveName, std::string equityForecastCurveName, QuantLib::Period term, const QuantLib::ext::shared_ptr< ore::data::Convention > &conventions, const std::string &marketConfiguration=ore::data::Market::defaultConfiguration) const
Create Deposit for implying par rate sensitivity from zero rate sensitivity.
std::pair< QuantLib::ext::shared_ptr< QuantLib::Instrument >, Date > makeFRA(const QuantLib::Date &asof, const QuantLib::ext::shared_ptr< ore::data::Market > &market, std::string ccy, std::string indexName, std::string yieldCurveName, std::string equityForecastCurveName, QuantLib::Period term, const QuantLib::ext::shared_ptr< ore::data::Convention > &conventions, const std::string &marketConfiguration=ore::data::Market::defaultConfiguration) const
Create FRA for implying par rate sensitivity from zero rate sensitivity.
std::pair< QuantLib::ext::shared_ptr< QuantLib::Instrument >, Date > makeOIS(const QuantLib::ext::shared_ptr< ore::data::Market > &market, std::string ccy, std::string indexName, std::string yieldCurveName, std::string equityForecastCurveName, QuantLib::Period term, const QuantLib::ext::shared_ptr< ore::data::Convention > &conventions, bool singleCurve, std::set< ore::analytics::RiskFactorKey > &parHelperDependencies, std::set< std::string > &removeTodaysFixingIndices, const std::string &expDiscountCurve="", const std::string &marketConfiguration=ore::data::Market::defaultConfiguration) const
Create OIS Swap for implying par rate sensitivity from zero rate sensitivity.
QuantLib::ext::shared_ptr< QuantLib::Instrument > makeYoyInflationSwap(const QuantLib::ext::shared_ptr< ore::data::Market > &market, std::string indexName, QuantLib::Period term, const QuantLib::ext::shared_ptr< ore::data::Convention > &conventions, bool singleCurve, bool fromZero, std::set< ore::analytics::RiskFactorKey > &parHelperDependencies, const std::string &expDiscountCurve="", const std::string &marketConfiguration=ore::data::Market::defaultConfiguration) const
Create YoY Swap for implying par rate sensitivity from yoy rate sensitivity.
std::pair< QuantLib::ext::shared_ptr< QuantLib::Instrument >, Date > makeFxForward(const QuantLib::ext::shared_ptr< ore::data::Market > &market, std::string baseCcy, std::string ccy, QuantLib::Period term, const QuantLib::ext::shared_ptr< ore::data::Convention > &conventions, std::set< ore::analytics::RiskFactorKey > &parHelperDependencies, const std::string &marketConfiguration=ore::data::Market::defaultConfiguration) const
Create FX Forwrad for implying par rate sensitivity from zero rate sensitivity.
std::pair< QuantLib::ext::shared_ptr< QuantLib::Instrument >, Date > makeCDS(const QuantLib::ext::shared_ptr< ore::data::Market > &market, std::string name, std::string ccy, QuantLib::Period term, const QuantLib::ext::shared_ptr< ore::data::Convention > &conventions, std::set< ore::analytics::RiskFactorKey > &parHelperDependencies, const std::string &expDiscountCurve="", const std::string &marketConfiguration=ore::data::Market::defaultConfiguration) const
Create CDS for implying par rate sensitivity from Hazard Rate sensitivity.
QuantLib::ext::shared_ptr< QuantLib::Instrument > makeZeroInflationSwap(const QuantLib::ext::shared_ptr< ore::data::Market > &market, std::string indexName, QuantLib::Period term, const QuantLib::ext::shared_ptr< ore::data::Convention > &conventions, bool singleCurve, std::set< ore::analytics::RiskFactorKey > &parHelperDependencies, const std::string &expDiscountCurve="", const std::string &marketConfiguration=ore::data::Market::defaultConfiguration) const
Create Zero Swap for implying par rate sensitivity from zero rate sensitivity.
Data types stored in the scenario class.
Description of sensitivity shift scenarios.
static const string defaultConfiguration
A Market class that can be updated by Scenarios.
A class to hold Scenario parameters for scenarioSimMarket.
A class to hold the parametrisation for building sensitivity scenarios.
std::map< ore::analytics::RiskFactorKey, QuantLib::Handle< QuantExt::YoYOptionletVolatilitySurface > > parYoYCapsVts_
std::map< std::string, std::vector< QuantLib::Period > > zeroInflationPillars_
std::set< std::string > removeTodaysFixingIndices_
std::map< ore::analytics::RiskFactorKey, QuantLib::Handle< QuantLib::YieldTermStructure > > parYoYCapsYts_
par helpers: YoY cap / floors
std::map< ore::analytics::RiskFactorKey, QuantLib::ext::shared_ptr< QuantLib::Instrument > > parHelpers_
par helpers (all except cap/floors)
std::map< ore::analytics::RiskFactorKey, std::set< ore::analytics::RiskFactorKey > > parHelperDependencies_
list of (raw) risk factors on which a par helper depends
std::map< std::string, std::vector< QuantLib::Period > > yieldCurvePillars_
par QuantLib::Instrument pillars
std::map< std::string, std::vector< QuantLib::Period > > equityForecastCurvePillars_
std::map< ore::analytics::RiskFactorKey, QuantLib::Handle< QuantLib::YieldTermStructure > > parCapsYts_
std::map< ore::analytics::RiskFactorKey, QuantLib::ext::shared_ptr< QuantLib::CapFloor > > parCaps_
par helpers: IR cap / floors
std::map< ore::analytics::RiskFactorKey, QuantLib::Handle< QuantLib::OptionletVolatilityStructure > > parCapsVts_
std::map< ore::analytics::RiskFactorKey, QuantLib::ext::shared_ptr< QuantLib::YoYInflationCapFloor > > parYoYCaps_
std::map< ore::analytics::RiskFactorKey, QuantLib::Handle< QuantLib::YoYInflationIndex > > parYoYCapsIndex_
std::map< std::string, std::vector< QuantLib::Period > > yoyCapFloorPillars_
std::map< std::string, std::vector< QuantLib::Period > > capFloorPillars_
std::map< std::string, std::vector< QuantLib::Period > > cdsPillars_
std::map< std::string, std::vector< QuantLib::Period > > yoyInflationPillars_