Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
SensitivityAnalysis Class Reference

Sensitivity Analysis. More...

#include <orea/engine/sensitivityanalysis.hpp>

+ Inheritance diagram for SensitivityAnalysis:
+ Collaboration diagram for SensitivityAnalysis:

Public Member Functions

 SensitivityAnalysis (const QuantLib::ext::shared_ptr< ore::data::Portfolio > &portfolio, const QuantLib::ext::shared_ptr< ore::data::Market > &market, const string &marketConfiguration, const QuantLib::ext::shared_ptr< ore::data::EngineData > &engineData, const QuantLib::ext::shared_ptr< ScenarioSimMarketParameters > &simMarketData, const QuantLib::ext::shared_ptr< SensitivityScenarioData > &sensitivityData, const bool recalibrateModels, const QuantLib::ext::shared_ptr< ore::data::CurveConfigurations > &curveConfigs=nullptr, const QuantLib::ext::shared_ptr< ore::data::TodaysMarketParameters > &todaysMarketParams=nullptr, const bool nonShiftedBaseCurrencyConversion=false, const QuantLib::ext::shared_ptr< ReferenceDataManager > &referenceData=nullptr, const IborFallbackConfig &iborFallbackConfig=IborFallbackConfig::defaultConfig(), const bool continueOnError=false, bool dryRun=false)
 Constructor using single-threaded engine. More...
 
 SensitivityAnalysis (const Size nThreads, const Date &asof, const QuantLib::ext::shared_ptr< ore::data::Loader > &loader, const QuantLib::ext::shared_ptr< ore::data::Portfolio > &portfolio, const string &marketConfiguration, const QuantLib::ext::shared_ptr< ore::data::EngineData > &engineData, const QuantLib::ext::shared_ptr< ore::analytics::ScenarioSimMarketParameters > &simMarketData, const QuantLib::ext::shared_ptr< ore::analytics::SensitivityScenarioData > &sensitivityData, const bool recalibrateModels, const QuantLib::ext::shared_ptr< ore::data::CurveConfigurations > &curveConfigs, const QuantLib::ext::shared_ptr< ore::data::TodaysMarketParameters > &todaysMarketParams, const bool nonShiftedBaseCurrencyConversion=false, const QuantLib::ext::shared_ptr< ReferenceDataManager > &referenceData=nullptr, const IborFallbackConfig &iborFallbackConfig=IborFallbackConfig::defaultConfig(), const bool continueOnError=false, bool dryRun=false, const std::string &context="sensi analysis")
 Constructor using multi-threaded engine. More...
 
virtual ~SensitivityAnalysis ()
 
void generateSensitivities ()
 Generate the Sensitivities. More...
 
const QuantLib::Date asof () const
 The ASOF date for the sensitivity analysis. More...
 
const std::string marketConfiguration () const
 The market configuration string. More...
 
const QuantLib::ext::shared_ptr< ScenarioSimMarketsimMarket () const
 A getter for the sim market. More...
 
const QuantLib::ext::shared_ptr< SensitivityScenarioGeneratorscenarioGenerator () const
 A getter for SensitivityScenarioGenerator (the main one, without possibly customized shifts) More...
 
const QuantLib::ext::shared_ptr< ScenarioSimMarketParameterssimMarketData () const
 A getter for ScenarioSimMarketParameters. More...
 
const QuantLib::ext::shared_ptr< SensitivityScenarioDatasensitivityData () const
 A getter for SensitivityScenarioData. More...
 
void overrideTenors (const bool b)
 override shift tenors with sim market tenors More...
 
QuantLib::ext::shared_ptr< Portfolioportfolio () const
 the portfolio of trades More...
 
std::vector< QuantLib::ext::shared_ptr< SensitivityCube > > sensiCubes () const
 a wrapper for the sensitivity results cubes (one per shift configuration) More...
 
QuantLib::ext::shared_ptr< SensitivityCubesensiCube () const
 a wrapper for the first sensitivity result cube (if that is unique, otherwise throws, for bwd compatibility) More...
 
- Public Member Functions inherited from ProgressReporter
 ProgressReporter ()
 
void registerProgressIndicator (const QuantLib::ext::shared_ptr< ProgressIndicator > &indicator)
 
void unregisterProgressIndicator (const QuantLib::ext::shared_ptr< ProgressIndicator > &indicator)
 
void unregisterAllProgressIndicators ()
 
void updateProgress (const unsigned long progress, const unsigned long total, const std::string &detail="")
 
void resetProgress ()
 
const std::set< QuantLib::ext::shared_ptr< ProgressIndicator > > & progressIndicators () const
 

Private Attributes

QuantLib::ext::shared_ptr< ore::data::Marketmarket_
 
std::string marketConfiguration_
 
Date asof_
 
QuantLib::ext::shared_ptr< SensitivityScenarioGeneratorscenarioGenerator_
 
QuantLib::ext::shared_ptr< ScenarioSimMarketsimMarket_
 
QuantLib::ext::shared_ptr< ScenarioSimMarketParameterssimMarketData_
 
QuantLib::ext::shared_ptr< SensitivityScenarioDatasensitivityData_
 
bool recalibrateModels_
 
QuantLib::ext::shared_ptr< ore::data::CurveConfigurationscurveConfigs_
 Optional curve configurations. Used in building the scenario sim market. More...
 
QuantLib::ext::shared_ptr< ore::data::TodaysMarketParameterstodaysMarketParams_
 Optional todays market parameters. Used in building the scenario sim market. More...
 
bool overrideTenors_
 
bool nonShiftedBaseCurrencyConversion_
 
QuantLib::ext::shared_ptr< ore::data::ReferenceDataManagerreferenceData_
 
IborFallbackConfig iborFallbackConfig_
 
bool continueOnError_
 
QuantLib::ext::shared_ptr< EngineDataengineData_
 the engine data (provided as input, needed to construct the engine factory) More...
 
QuantLib::ext::shared_ptr< Portfolioportfolio_
 the portfolio (provided as input) More...
 
bool dryRun_
 do dry run More...
 
std::set< std::pair< string, QuantLib::ext::shared_ptr< QuantExt::ModelBuilder > > > modelBuilders_
 model builders More...
 
std::vector< QuantLib::ext::shared_ptr< SensitivityCube > > sensiCubes_
 sensitivityCube More...
 
bool useSingleThreadedEngine_
 
Size nThreads_
 
QuantLib::ext::shared_ptr< ore::data::Loaderloader_
 
std::string context_
 

Detailed Description

Sensitivity Analysis.

This class wraps functionality to perform a sensitivity analysis for a given portfolio. It comprises

Definition at line 64 of file sensitivityanalysis.hpp.

Constructor & Destructor Documentation

◆ SensitivityAnalysis() [1/2]

SensitivityAnalysis ( const QuantLib::ext::shared_ptr< ore::data::Portfolio > &  portfolio,
const QuantLib::ext::shared_ptr< ore::data::Market > &  market,
const string &  marketConfiguration,
const QuantLib::ext::shared_ptr< ore::data::EngineData > &  engineData,
const QuantLib::ext::shared_ptr< ScenarioSimMarketParameters > &  simMarketData,
const QuantLib::ext::shared_ptr< SensitivityScenarioData > &  sensitivityData,
const bool  recalibrateModels,
const QuantLib::ext::shared_ptr< ore::data::CurveConfigurations > &  curveConfigs = nullptr,
const QuantLib::ext::shared_ptr< ore::data::TodaysMarketParameters > &  todaysMarketParams = nullptr,
const bool  nonShiftedBaseCurrencyConversion = false,
const QuantLib::ext::shared_ptr< ReferenceDataManager > &  referenceData = nullptr,
const IborFallbackConfig iborFallbackConfig = IborFallbackConfig::defaultConfig(),
const bool  continueOnError = false,
bool  dryRun = false 
)

Constructor using single-threaded engine.

Definition at line 45 of file sensitivityanalysis.cpp.

54 : market_(market), marketConfiguration_(marketConfiguration), asof_(market ? market->asofDate() : Date()),
56 curveConfigs_(curveConfigs), todaysMarketParams_(todaysMarketParams), overrideTenors_(false),
57 nonShiftedBaseCurrencyConversion_(nonShiftedBaseCurrencyConversion), referenceData_(referenceData),
58 iborFallbackConfig_(iborFallbackConfig), continueOnError_(continueOnError), engineData_(engineData),
QuantLib::ext::shared_ptr< ore::data::CurveConfigurations > curveConfigs_
Optional curve configurations. Used in building the scenario sim market.
QuantLib::ext::shared_ptr< SensitivityScenarioData > sensitivityData_
QuantLib::ext::shared_ptr< ore::data::TodaysMarketParameters > todaysMarketParams_
Optional todays market parameters. Used in building the scenario sim market.
const std::string marketConfiguration() const
The market configuration string.
const QuantLib::ext::shared_ptr< SensitivityScenarioData > sensitivityData() const
A getter for SensitivityScenarioData.
QuantLib::ext::shared_ptr< EngineData > engineData_
the engine data (provided as input, needed to construct the engine factory)
QuantLib::ext::shared_ptr< Portfolio > portfolio() const
the portfolio of trades
QuantLib::ext::shared_ptr< Portfolio > portfolio_
the portfolio (provided as input)
const QuantLib::ext::shared_ptr< ScenarioSimMarketParameters > simMarketData() const
A getter for ScenarioSimMarketParameters.
QuantLib::ext::shared_ptr< ore::data::ReferenceDataManager > referenceData_
QuantLib::ext::shared_ptr< ore::data::Market > market_
QuantLib::ext::shared_ptr< ScenarioSimMarketParameters > simMarketData_

◆ SensitivityAnalysis() [2/2]

SensitivityAnalysis ( const Size  nThreads,
const Date &  asof,
const QuantLib::ext::shared_ptr< ore::data::Loader > &  loader,
const QuantLib::ext::shared_ptr< ore::data::Portfolio > &  portfolio,
const string &  marketConfiguration,
const QuantLib::ext::shared_ptr< ore::data::EngineData > &  engineData,
const QuantLib::ext::shared_ptr< ore::analytics::ScenarioSimMarketParameters > &  simMarketData,
const QuantLib::ext::shared_ptr< ore::analytics::SensitivityScenarioData > &  sensitivityData,
const bool  recalibrateModels,
const QuantLib::ext::shared_ptr< ore::data::CurveConfigurations > &  curveConfigs,
const QuantLib::ext::shared_ptr< ore::data::TodaysMarketParameters > &  todaysMarketParams,
const bool  nonShiftedBaseCurrencyConversion = false,
const QuantLib::ext::shared_ptr< ReferenceDataManager > &  referenceData = nullptr,
const IborFallbackConfig iborFallbackConfig = IborFallbackConfig::defaultConfig(),
const bool  continueOnError = false,
bool  dryRun = false,
const std::string &  context = "sensi analysis" 
)

Constructor using multi-threaded engine.

Definition at line 61 of file sensitivityanalysis.cpp.

72 sensitivityData_(sensitivityData), recalibrateModels_(recalibrateModels), curveConfigs_(curveConfigs),
73 todaysMarketParams_(todaysMarketParams), overrideTenors_(false),
74 nonShiftedBaseCurrencyConversion_(nonShiftedBaseCurrencyConversion), referenceData_(referenceData),
75 iborFallbackConfig_(iborFallbackConfig), continueOnError_(continueOnError), engineData_(engineData),
76 portfolio_(portfolio), dryRun_(dryRun), useSingleThreadedEngine_(false), nThreads_(nThreads), loader_(loader),
77 context_(context) {}
const QuantLib::Date asof() const
The ASOF date for the sensitivity analysis.
QuantLib::ext::shared_ptr< ore::data::Loader > loader_

◆ ~SensitivityAnalysis()

virtual ~SensitivityAnalysis ( )
virtual

Definition at line 94 of file sensitivityanalysis.hpp.

94{}

Member Function Documentation

◆ generateSensitivities()

void generateSensitivities ( )

Generate the Sensitivities.

Definition at line 105 of file sensitivityanalysis.cpp.

105 {
106
107 LOG("Sensitivity analysis started...");
108
110 "SensitivityAnalysis::generateSensitivities(): multi-threaded engine does not support non-shifted base "
111 "ccy conversion currently. This requires a small code extension. Contact Dev.");
112
113 // collect the sensi template ids that are used in the sensitivity config
114
115 std::set<std::string> sensiTemplateIdsFromSensiConfig = getShiftSpecKeys(*sensitivityData_);
116
117 // collect the sensi template ids that are relevant for the portfolio
118
119 std::set<std::string> sensiTemplateIdsFromPortfolio;
120 for (auto const& [_, t] : portfolio_->trades())
121 sensiTemplateIdsFromPortfolio.insert(t->sensitivityTemplate());
122
123 // take the intersection of pricing engine ids and add en empty id for the default config as the first element
124
125 std::vector<std::string> sensiTemplateIds{std::string()};
126 std::set_intersection(sensiTemplateIdsFromSensiConfig.begin(), sensiTemplateIdsFromSensiConfig.end(),
127 sensiTemplateIdsFromPortfolio.begin(), sensiTemplateIdsFromPortfolio.end(),
128 std::back_inserter(sensiTemplateIds));
129
130 LOG("Need to process "
131 << sensiTemplateIds.size() << " sensi scenario sets resulting from " << sensiTemplateIdsFromSensiConfig.size()
132 << " sensi templates in sensi config (different from default config) and "
133 << sensiTemplateIdsFromPortfolio.size()
134 << " sensi templates in portfolio (including default config, if configured in pe config for a trade)");
135
137
138 // handle single threaded sensi analysis
139
140 LOG("SensitivitiyAnalysis::generateSensitivities(): use single-threaded engine to generate sensi cube. Using "
141 "configuration '"
142 << marketConfiguration_ << "'");
143
144 simMarket_ = QuantLib::ext::make_shared<ScenarioSimMarket>(
149
150 std::vector<QuantLib::ext::shared_ptr<SensitivityScenarioGenerator>> scenarioGenerators(sensiTemplateIds.size());
151 for (Size i = 0; i < sensiTemplateIds.size(); ++i) {
152 scenarioGenerators[i] = QuantLib::ext::make_shared<SensitivityScenarioGenerator>(
154 QuantLib::ext::make_shared<DeltaScenarioFactory>(simMarket_->baseScenario()), overrideTenors_,
155 sensiTemplateIds[i], continueOnError_, simMarket_->baseScenarioAbsolute());
156 }
157 scenarioGenerator_ = scenarioGenerators.front();
158
159 map<MarketContext, string> configurations;
160 configurations[MarketContext::pricing] = marketConfiguration_;
161 auto ed = QuantLib::ext::make_shared<EngineData>(*engineData_);
162 ed->globalParameters()["RunType"] =
163 std::string("Sensitivity") + (sensitivityData_->computeGamma() ? "DeltaGamma" : "Delta");
164
165 QuantLib::ext::shared_ptr<DateGrid> dg = QuantLib::ext::make_shared<DateGrid>("1,0W", NullCalendar());
166 vector<QuantLib::ext::shared_ptr<ValuationCalculator>> calculators;
168 // use "original" FX rates to convert sensi to base currency
169 calculators.push_back(QuantLib::ext::make_shared<NPVCalculatorFXT0>(simMarketData_->baseCcy(), market_));
170 else
171 // use the scenario FX rate when converting sensi to base currency
172 calculators.push_back(QuantLib::ext::make_shared<NPVCalculator>(simMarketData_->baseCcy()));
173
174 sensiCubes_.clear();
175 for (auto const& [pf, scenGen] :
176 splitPortfolioByScenarioGenerators(portfolio_, sensiTemplateIds, scenarioGenerators)) {
177 if (pf->trades().empty())
178 continue;
179 LOG("Run Sensitivity Scenarios for " << pf->size() << " out of " << portfolio_->size() << " trades.");
180 QuantLib::ext::shared_ptr<NPVSensiCube> cube =
181 QuantLib::ext::make_shared<DoublePrecisionSensiCube>(pf->ids(), asof_, scenGen->samples());
182 simMarket_->scenarioGenerator() = scenGen;
183 auto factory =
184 QuantLib::ext::make_shared<EngineFactory>(ed, simMarket_, configurations, referenceData_, iborFallbackConfig_);
185 pf->reset();
186 pf->build(factory, "sensi analysis");
188 modelBuilders_ = factory->modelBuilders();
189 else
190 modelBuilders_.clear();
191 ValuationEngine engine(asof_, dg, simMarket_, modelBuilders_);
192 for (auto const& i : this->progressIndicators())
193 engine.registerProgressIndicator(i);
194 engine.buildCube(pf, cube, calculators, true, nullptr, nullptr, {}, dryRun_);
195
196 sensiCubes_.push_back(QuantLib::ext::make_shared<SensitivityCube>(cube, scenGen->scenarioDescriptions(),
197 scenarioGenerator_->shiftSizes(),
198 scenGen->shiftSizes(), scenGen->shiftSchemes()));
199 }
200 } else {
201
202 // handle request to use multi-threaded engine
203
204 LOG("SensitivitiyAnalysis::generateSensitivities(): use multi-threaded engine to generate sensi cube. Using "
205 "configuration '"
206 << marketConfiguration_ << "'");
207
208 market_ =
209 QuantLib::ext::make_shared<ore::data::TodaysMarket>(asof_, todaysMarketParams_, loader_, curveConfigs_, true, true,
210 false, referenceData_, false, iborFallbackConfig_, false);
211
212 simMarket_ = QuantLib::ext::make_shared<ScenarioSimMarket>(
216 sensitivityData_->useSpreadedTermStructures(), false, false, iborFallbackConfig_);
217
218 std::vector<QuantLib::ext::shared_ptr<SensitivityScenarioGenerator>> scenarioGenerators(sensiTemplateIds.size());
219 for (Size i = 0; i < sensiTemplateIds.size(); ++i) {
220 scenarioGenerators[i] = QuantLib::ext::make_shared<SensitivityScenarioGenerator>(
222 QuantLib::ext::make_shared<DeltaScenarioFactory>(simMarket_->baseScenario()), overrideTenors_,
223 sensiTemplateIds[i], continueOnError_, simMarket_->baseScenarioAbsolute());
224 }
225 scenarioGenerator_ = scenarioGenerators.front();
226
227 auto ed = QuantLib::ext::make_shared<EngineData>(*engineData_);
228 ed->globalParameters()["RunType"] =
229 std::string("Sensitivity") + (sensitivityData_->computeGamma() ? "DeltaGamma" : "Delta");
230
231 sensiCubes_.clear();
232 for (auto const& [pf, scenGen] :
233 splitPortfolioByScenarioGenerators(portfolio_, sensiTemplateIds, scenarioGenerators)) {
234 if (pf->trades().empty())
235 continue;
236
237 MultiThreadedValuationEngine engine(
238 nThreads_, asof_, QuantLib::ext::make_shared<ore::analytics::DateGrid>(), scenGen->numScenarios(), loader_,
240 sensitivityData_->useSpreadedTermStructures(), false,
241 QuantLib::ext::make_shared<ore::analytics::ScenarioFilter>(), referenceData_, iborFallbackConfig_, true, true,
243 [](const QuantLib::Date& asof, const std::set<std::string>& ids, const std::vector<QuantLib::Date>&,
244 const QuantLib::Size samples) {
245 return QuantLib::ext::make_shared<ore::analytics::DoublePrecisionSensiCube>(ids, asof, samples);
246 },
247 {}, {}, context_);
248 for (auto const& i : this->progressIndicators())
249 engine.registerProgressIndicator(i);
250
251 auto baseCcy = simMarketData_->baseCcy();
252 engine.buildCube(
253 pf,
254 [&baseCcy]() -> std::vector<QuantLib::ext::shared_ptr<ValuationCalculator>> {
255 return {QuantLib::ext::make_shared<NPVCalculator>(baseCcy)};
256 },
257 {}, true, dryRun_);
258 std::vector<QuantLib::ext::shared_ptr<NPVSensiCube>> miniCubes;
259 for (auto const& c : engine.outputCubes()) {
260 miniCubes.push_back(QuantLib::ext::dynamic_pointer_cast<NPVSensiCube>(c));
261 QL_REQUIRE(
262 miniCubes.back() != nullptr,
263 "SensitivityAnalysis::generateSensitivities(): internal error, could not cast to NPVSensiCube.");
264 }
265 auto cube = QuantLib::ext::make_shared<JointNPVSensiCube>(miniCubes, pf->ids());
266
267 sensiCubes_.push_back(QuantLib::ext::make_shared<SensitivityCube>(cube, scenGen->scenarioDescriptions(),
268 scenarioGenerator_->shiftSizes(),
269 scenGen->shiftSizes(), scenGen->shiftSchemes()));
270 }
271 }
272
273 simMarket_->scenarioGenerator() = scenarioGenerator_;
274
275 LOG("Sensitivity analysis completed");
276}
QuantLib::ext::shared_ptr< ScenarioSimMarket > simMarket_
std::vector< QuantLib::ext::shared_ptr< SensitivityCube > > sensiCubes_
sensitivityCube
std::set< std::pair< string, QuantLib::ext::shared_ptr< QuantExt::ModelBuilder > > > modelBuilders_
model builders
QuantLib::ext::shared_ptr< SensitivityScenarioGenerator > scenarioGenerator_
const std::set< QuantLib::ext::shared_ptr< ProgressIndicator > > & progressIndicators() const
#define LOG(text)
std::set< std::string > getShiftSpecKeys(const SensitivityScenarioData &d)
+ Here is the call graph for this function:

◆ asof()

const QuantLib::Date asof ( ) const

The ASOF date for the sensitivity analysis.

Definition at line 100 of file sensitivityanalysis.hpp.

100{ return asof_; }
+ Here is the caller graph for this function:

◆ marketConfiguration()

const std::string marketConfiguration ( ) const

The market configuration string.

Definition at line 103 of file sensitivityanalysis.hpp.

103{ return marketConfiguration_; }

◆ simMarket()

const QuantLib::ext::shared_ptr< ScenarioSimMarket > simMarket ( ) const

A getter for the sim market.

Definition at line 106 of file sensitivityanalysis.hpp.

106{ return simMarket_; }

◆ scenarioGenerator()

const QuantLib::ext::shared_ptr< SensitivityScenarioGenerator > scenarioGenerator ( ) const

A getter for SensitivityScenarioGenerator (the main one, without possibly customized shifts)

Definition at line 109 of file sensitivityanalysis.hpp.

109{ return scenarioGenerator_; }

◆ simMarketData()

const QuantLib::ext::shared_ptr< ScenarioSimMarketParameters > simMarketData ( ) const

A getter for ScenarioSimMarketParameters.

Definition at line 112 of file sensitivityanalysis.hpp.

112{ return simMarketData_; }

◆ sensitivityData()

const QuantLib::ext::shared_ptr< SensitivityScenarioData > sensitivityData ( ) const

A getter for SensitivityScenarioData.

Definition at line 115 of file sensitivityanalysis.hpp.

115{ return sensitivityData_; }

◆ overrideTenors()

void overrideTenors ( const bool  b)

override shift tenors with sim market tenors

Definition at line 118 of file sensitivityanalysis.hpp.

118{ overrideTenors_ = b; }

◆ portfolio()

QuantLib::ext::shared_ptr< Portfolio > portfolio ( ) const

the portfolio of trades

Definition at line 121 of file sensitivityanalysis.hpp.

121{ return portfolio_; }

◆ sensiCubes()

std::vector< QuantLib::ext::shared_ptr< SensitivityCube > > sensiCubes ( ) const

a wrapper for the sensitivity results cubes (one per shift configuration)

Definition at line 124 of file sensitivityanalysis.hpp.

124{ return sensiCubes_; }

◆ sensiCube()

QuantLib::ext::shared_ptr< SensitivityCube > sensiCube ( ) const

a wrapper for the first sensitivity result cube (if that is unique, otherwise throws, for bwd compatibility)

Definition at line 127 of file sensitivityanalysis.hpp.

127 {
128 QL_REQUIRE(sensiCubes_.size() == 1, "SensitivityAnalysis: sensiCube() called, but got "
129 << sensiCubes_.size() << " sensi cubes. Check the calling code.");
130 return sensiCubes_.front();
131 }

Member Data Documentation

◆ market_

QuantLib::ext::shared_ptr<ore::data::Market> market_
private

Definition at line 134 of file sensitivityanalysis.hpp.

◆ marketConfiguration_

std::string marketConfiguration_
private

Definition at line 135 of file sensitivityanalysis.hpp.

◆ asof_

Date asof_
private

Definition at line 136 of file sensitivityanalysis.hpp.

◆ scenarioGenerator_

QuantLib::ext::shared_ptr<SensitivityScenarioGenerator> scenarioGenerator_
private

Definition at line 137 of file sensitivityanalysis.hpp.

◆ simMarket_

QuantLib::ext::shared_ptr<ScenarioSimMarket> simMarket_
private

Definition at line 138 of file sensitivityanalysis.hpp.

◆ simMarketData_

QuantLib::ext::shared_ptr<ScenarioSimMarketParameters> simMarketData_
private

Definition at line 139 of file sensitivityanalysis.hpp.

◆ sensitivityData_

QuantLib::ext::shared_ptr<SensitivityScenarioData> sensitivityData_
private

Definition at line 140 of file sensitivityanalysis.hpp.

◆ recalibrateModels_

bool recalibrateModels_
private

Definition at line 141 of file sensitivityanalysis.hpp.

◆ curveConfigs_

QuantLib::ext::shared_ptr<ore::data::CurveConfigurations> curveConfigs_
private

Optional curve configurations. Used in building the scenario sim market.

Definition at line 143 of file sensitivityanalysis.hpp.

◆ todaysMarketParams_

QuantLib::ext::shared_ptr<ore::data::TodaysMarketParameters> todaysMarketParams_
private

Optional todays market parameters. Used in building the scenario sim market.

Definition at line 145 of file sensitivityanalysis.hpp.

◆ overrideTenors_

bool overrideTenors_
private

Definition at line 146 of file sensitivityanalysis.hpp.

◆ nonShiftedBaseCurrencyConversion_

bool nonShiftedBaseCurrencyConversion_
private

Definition at line 149 of file sensitivityanalysis.hpp.

◆ referenceData_

QuantLib::ext::shared_ptr<ore::data::ReferenceDataManager> referenceData_
private

Definition at line 150 of file sensitivityanalysis.hpp.

◆ iborFallbackConfig_

IborFallbackConfig iborFallbackConfig_
private

Definition at line 151 of file sensitivityanalysis.hpp.

◆ continueOnError_

bool continueOnError_
private

Definition at line 153 of file sensitivityanalysis.hpp.

◆ engineData_

QuantLib::ext::shared_ptr<EngineData> engineData_
private

the engine data (provided as input, needed to construct the engine factory)

Definition at line 155 of file sensitivityanalysis.hpp.

◆ portfolio_

QuantLib::ext::shared_ptr<Portfolio> portfolio_
private

the portfolio (provided as input)

Definition at line 157 of file sensitivityanalysis.hpp.

◆ dryRun_

bool dryRun_
private

do dry run

Definition at line 159 of file sensitivityanalysis.hpp.

◆ modelBuilders_

std::set<std::pair<string, QuantLib::ext::shared_ptr<QuantExt::ModelBuilder> > > modelBuilders_
private

model builders

Definition at line 162 of file sensitivityanalysis.hpp.

◆ sensiCubes_

std::vector<QuantLib::ext::shared_ptr<SensitivityCube> > sensiCubes_
private

sensitivityCube

Definition at line 164 of file sensitivityanalysis.hpp.

◆ useSingleThreadedEngine_

bool useSingleThreadedEngine_
private

Definition at line 166 of file sensitivityanalysis.hpp.

◆ nThreads_

Size nThreads_
private

Definition at line 168 of file sensitivityanalysis.hpp.

◆ loader_

QuantLib::ext::shared_ptr<ore::data::Loader> loader_
private

Definition at line 169 of file sensitivityanalysis.hpp.

◆ context_

std::string context_
private

Definition at line 170 of file sensitivityanalysis.hpp.