Logo
Reference manual - version orea_version
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SensitivityAnalysis Class Reference

Sensitivity Analysis. More...

#include <orea/engine/sensitivityanalysis.hpp>

+ Inheritance diagram for SensitivityAnalysis:

Public Member Functions

 SensitivityAnalysis (const boost::shared_ptr< ore::data::Portfolio > &portfolio, const boost::shared_ptr< ore::data::Market > &market, const string &marketConfiguration, const boost::shared_ptr< ore::data::EngineData > &engineData, const boost::shared_ptr< ScenarioSimMarketParameters > &simMarketData, const boost::shared_ptr< SensitivityScenarioData > &sensitivityData, const bool recalibrateModels, const boost::shared_ptr< ore::data::CurveConfigurations > &curveConfigs=nullptr, const boost::shared_ptr< ore::data::TodaysMarketParameters > &todaysMarketParams=nullptr, const bool nonShiftedBaseCurrencyConversion=false, const boost::shared_ptr< ReferenceDataManager > &referenceData=nullptr, const IborFallbackConfig &iborFallbackConfig=IborFallbackConfig::defaultConfig(), const bool continueOnError=false, bool dryRun=false)
 Constructor using single-threaded engine.
 
 SensitivityAnalysis (const Size nThreads, const Date &asof, const boost::shared_ptr< ore::data::Loader > &loader, const boost::shared_ptr< ore::data::Portfolio > &portfolio, const string &marketConfiguration, const boost::shared_ptr< ore::data::EngineData > &engineData, const boost::shared_ptr< ore::analytics::ScenarioSimMarketParameters > &simMarketData, const boost::shared_ptr< ore::analytics::SensitivityScenarioData > &sensitivityData, const bool recalibrateModels, const boost::shared_ptr< ore::data::CurveConfigurations > &curveConfigs, const boost::shared_ptr< ore::data::TodaysMarketParameters > &todaysMarketParams, const bool nonShiftedBaseCurrencyConversion=false, const boost::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.
 
void generateSensitivities (boost::shared_ptr< NPVSensiCube > cube=boost::shared_ptr< NPVSensiCube >())
 Generate the Sensitivities.
 
const QuantLib::Date asof () const
 The ASOF date for the sensitivity analysis.
 
const std::string marketConfiguration () const
 The market configuration string.
 
const boost::shared_ptr< ScenarioSimMarketsimMarket () const
 A getter for the sim market.
 
const boost::shared_ptr< SensitivityScenarioGeneratorscenarioGenerator () const
 A getter for SensitivityScenarioGenerator.
 
const boost::shared_ptr< ScenarioSimMarketParameterssimMarketData () const
 A getter for ScenarioSimMarketParameters.
 
const boost::shared_ptr< SensitivityScenarioDatasensitivityData () const
 A getter for SensitivityScenarioData.
 
void overrideTenors (const bool b)
 override shift tenors with sim market tenors
 
boost::shared_ptr< Portfolioportfolio () const
 the portfolio of trades
 
boost::shared_ptr< SensitivityCubesensiCube () const
 a wrapper for the sensitivity results cube
 
- Public Member Functions inherited from ProgressReporter
void registerProgressIndicator (const boost::shared_ptr< ProgressIndicator > &indicator)
 
void unregisterProgressIndicator (const boost::shared_ptr< ProgressIndicator > &indicator)
 
void unregisterAllProgressIndicators ()
 
void updateProgress (const unsigned long progress, const unsigned long total)
 
void resetProgress ()
 
const std::set< boost::shared_ptr< ProgressIndicator > > & progressIndicators () const
 

Protected Member Functions

void initialize (boost::shared_ptr< NPVSensiCube > &cube)
 initialize the various components that will be passed to the sensitivities valuation engine
 
void initializeCube (boost::shared_ptr< NPVSensiCube > &cube) const
 initialize the cube with the appropriate dimensions
 
boost::shared_ptr< EngineFactorybuildFactory () const
 build engine factory
 
void resetPortfolio (const boost::shared_ptr< EngineFactory > &factory)
 reset and rebuild the portfolio to make use of the appropriate engine factory
 
void initializeSimMarket (boost::shared_ptr< ScenarioFactory > scenFact={})
 
std::vector< boost::shared_ptr< ValuationCalculator > > buildValuationCalculators () const
 build valuation calculators for valuation engine
 

Protected Attributes

boost::shared_ptr< ore::data::Marketmarket_
 
std::string marketConfiguration_
 
Date asof_
 
boost::shared_ptr< SensitivityScenarioGeneratorscenarioGenerator_
 
boost::shared_ptr< ScenarioSimMarketsimMarket_
 
boost::shared_ptr< ScenarioSimMarketParameterssimMarketData_
 
boost::shared_ptr< SensitivityScenarioDatasensitivityData_
 
bool recalibrateModels_
 
boost::shared_ptr< ore::data::CurveConfigurationscurveConfigs_
 Optional curve configurations. Used in building the scenario sim market.
 
boost::shared_ptr< ore::data::TodaysMarketParameterstodaysMarketParams_
 Optional todays market parameters. Used in building the scenario sim market.
 
bool overrideTenors_
 
bool nonShiftedBaseCurrencyConversion_
 
boost::shared_ptr< ore::data::ReferenceDataManagerreferenceData_
 
IborFallbackConfig iborFallbackConfig_
 
bool continueOnError_
 
boost::shared_ptr< EngineDataengineData_
 the engine data (provided as input, needed to construct the engine factory)
 
boost::shared_ptr< Portfolioportfolio_
 the portfolio (provided as input)
 
bool dryRun_
 do dry run
 
bool initialized_
 initializationFlag
 
std::set< std::pair< string, boost::shared_ptr< QuantExt::ModelBuilder > > > modelBuilders_
 model builders
 
boost::shared_ptr< SensitivityCubesensiCube_
 sensitivityCube
 
bool useSingleThreadedEngine_
 
Size nThreads_
 
boost::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

Member Function Documentation

◆ initializeSimMarket()

void initializeSimMarket ( boost::shared_ptr< ScenarioFactory scenFact = {})
protected

build the ScenarioSimMarket that will be used by ValuationEngine and initialize the SensitivityScenarioGenerator that determines which sensitivities to compute