Sensitivity Analysis. More...
#include <orea/engine/sensitivityanalysis.hpp>
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< ScenarioSimMarket > | simMarket () const |
A getter for the sim market. | |
const boost::shared_ptr< SensitivityScenarioGenerator > | scenarioGenerator () const |
A getter for SensitivityScenarioGenerator. | |
const boost::shared_ptr< ScenarioSimMarketParameters > | simMarketData () const |
A getter for ScenarioSimMarketParameters. | |
const boost::shared_ptr< SensitivityScenarioData > | sensitivityData () const |
A getter for SensitivityScenarioData. | |
void | overrideTenors (const bool b) |
override shift tenors with sim market tenors | |
boost::shared_ptr< Portfolio > | portfolio () const |
the portfolio of trades | |
boost::shared_ptr< SensitivityCube > | sensiCube () 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< EngineFactory > | buildFactory () 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::Market > | market_ |
std::string | marketConfiguration_ |
Date | asof_ |
boost::shared_ptr< SensitivityScenarioGenerator > | scenarioGenerator_ |
boost::shared_ptr< ScenarioSimMarket > | simMarket_ |
boost::shared_ptr< ScenarioSimMarketParameters > | simMarketData_ |
boost::shared_ptr< SensitivityScenarioData > | sensitivityData_ |
bool | recalibrateModels_ |
boost::shared_ptr< ore::data::CurveConfigurations > | curveConfigs_ |
Optional curve configurations. Used in building the scenario sim market. | |
boost::shared_ptr< ore::data::TodaysMarketParameters > | todaysMarketParams_ |
Optional todays market parameters. Used in building the scenario sim market. | |
bool | overrideTenors_ |
bool | nonShiftedBaseCurrencyConversion_ |
boost::shared_ptr< ore::data::ReferenceDataManager > | referenceData_ |
IborFallbackConfig | iborFallbackConfig_ |
bool | continueOnError_ |
boost::shared_ptr< EngineData > | engineData_ |
the engine data (provided as input, needed to construct the engine factory) | |
boost::shared_ptr< Portfolio > | portfolio_ |
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< SensitivityCube > | sensiCube_ |
sensitivityCube | |
bool | useSingleThreadedEngine_ |
Size | nThreads_ |
boost::shared_ptr< ore::data::Loader > | loader_ |
std::string | context_ |
Sensitivity Analysis.
This class wraps functionality to perform a sensitivity analysis for a given portfolio. It comprises
|
protected |
build the ScenarioSimMarket that will be used by ValuationEngine and initialize the SensitivityScenarioGenerator that determines which sensitivities to compute