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

Parametric VaR Calculator. More...

#include <orea/engine/parametricvar.hpp>

+ Inheritance diagram for ParametricVarReport:
+ Collaboration diagram for ParametricVarReport:

Public Types

typedef std::pair< RiskFactorKey, RiskFactorKeyCrossPair
 

Public Member Functions

virtual ~ParametricVarReport ()
 
 ParametricVarReport (const std::string &baseCurrency, const QuantLib::ext::shared_ptr< Portfolio > &portfolio, const std::string &portfolioFilter, const std::vector< QuantLib::Real > &p, const ParametricVarCalculator::ParametricVarParams &parametricVarParams, const bool salvageCovarianceMatrix, boost::optional< ore::data::TimePeriod > period, std::unique_ptr< SensiRunArgs > sensiArgs=nullptr, const bool breakdown=false)
 
 ParametricVarReport (const std::string &baseCurrency, const QuantLib::ext::shared_ptr< Portfolio > &portfolio, const std::string &portfolioFilter, const QuantLib::ext::shared_ptr< HistoricalScenarioGenerator > &hisScenGen, const std::vector< QuantLib::Real > &p, const ParametricVarCalculator::ParametricVarParams &parametricVarParams, const bool salvageCovarianceMatrix, boost::optional< ore::data::TimePeriod > period, std::unique_ptr< SensiRunArgs > sensiArgs=nullptr, const bool breakdown=false)
 
void createVarCalculator () override
 
- Public Member Functions inherited from VarReport
 VarReport (const std::string &baseCurrency, const QuantLib::ext::shared_ptr< Portfolio > &portfolio, const std::string &portfolioFilter, const vector< Real > &p, boost::optional< ore::data::TimePeriod > period, const QuantLib::ext::shared_ptr< HistoricalScenarioGenerator > &hisScenGen=nullptr, std::unique_ptr< SensiRunArgs > sensiArgs=nullptr, std::unique_ptr< FullRevalArgs > fullRevalArgs=nullptr, const bool breakdown=false)
 
void createReports (const QuantLib::ext::shared_ptr< MarketRiskReport::Reports > &reports) override
 
const std::vector< Real > & p () const
 
- Public Member Functions inherited from MarketRiskReport
 MarketRiskReport (const std::string &calculationCurrency, const QuantLib::ext::shared_ptr< Portfolio > &portfolio, const std::string &portfolioFilter, boost::optional< ore::data::TimePeriod > period, const QuantLib::ext::shared_ptr< HistoricalScenarioGenerator > &hisScenGen=nullptr, std::unique_ptr< SensiRunArgs > sensiArgs=nullptr, std::unique_ptr< FullRevalArgs > fullRevalArgs=nullptr, std::unique_ptr< MultiThreadArgs > multiThreadArgs=nullptr, const bool breakdown=false, const bool requireTradePnl=false)
 
virtual ~MarketRiskReport ()
 
virtual void initialise ()
 
void initSimMarket ()
 Method to init simMarket_ for multi-threaded ctors. More...
 
virtual void calculate (const QuantLib::ext::shared_ptr< Reports > &report)
 
void enableCubeWrite (const std::string &cubeDir, const std::string &cubeFilename)
 
- 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
 

Protected Attributes

const QuantLib::ext::shared_ptr< SensitivityScenarioDatasensitivityConfig_
 
const QuantLib::ext::shared_ptr< ScenarioSimMarketParameterssimMarketConfig_
 
ParametricVarCalculator::ParametricVarParams parametricVarParams_
 The parameters to use for calculating the parametric VAR benchmark. More...
 
bool salvageCovarianceMatrix_ = true
 
- Protected Attributes inherited from VarReport
QuantLib::ext::shared_ptr< VarCalculatorvarCalculator_
 
- Protected Attributes inherited from MarketRiskReport
bool sensiBased_ = false
 
bool fullReval_ = false
 
std::string calculationCurrency_
 
QuantLib::ext::shared_ptr< Portfolioportfolio_
 
std::string portfolioFilter_
 
boost::optional< ore::data::TimePeriodperiod_
 
QuantLib::ext::shared_ptr< HistoricalScenarioGeneratorhisScenGen_
 
std::unique_ptr< SensiRunArgssensiArgs_
 
std::unique_ptr< FullRevalArgsfullRevalArgs_
 
std::unique_ptr< MultiThreadArgsmultiThreadArgs_
 
bool breakdown_ = false
 
bool requireTradePnl_ = false
 
QuantLib::ext::shared_ptr< MarketRiskGroupBaseContainerriskGroups_
 
QuantLib::ext::shared_ptr< TradeGroupBaseContainertradeGroups_
 
std::map< std::string, std::set< std::pair< std::string, QuantLib::Size > > > tradeIdGroups_
 
std::set< std::pair< std::string, QuantLib::Size > > tradeIdIdxPairs_
 
std::vector< std::string > tradeIds_
 
std::map< RiskFactorKey, QuantLib::Real > deltas_
 
std::map< std::pair< RiskFactorKey, RiskFactorKey >, QuantLib::Real > gammas_
 
QuantLib::Matrix covarianceMatrix_
 
bool writePnl_ = false
 
std::vector< QuantLib::ext::shared_ptr< PNLCalculator > > pnlCalculators_
 
QuantLib::ext::shared_ptr< QuantExt::CovarianceSalvagesalvage_
 
bool includeDeltaMargin_ = true
 
bool includeGammaMargin_ = true
 
QuantLib::ext::shared_ptr< ore::data::EngineFactoryfactory_
 
QuantLib::ext::shared_ptr< ore::analytics::HistoricalPnlGeneratorhistPnlGen_
 
QuantLib::ext::shared_ptr< HistoricalSensiPnlCalculatorsensiPnlCalculator_
 

Additional Inherited Members

- Protected Member Functions inherited from VarReport
virtual void createVarCalculator ()=0
 
void writeReports (const QuantLib::ext::shared_ptr< MarketRiskReport::Reports > &report, const QuantLib::ext::shared_ptr< MarketRiskGroupBase > &riskGroup, const QuantLib::ext::shared_ptr< TradeGroupBase > &tradeGroup) override
 
std::vector< ore::data::TimePeriodtimePeriods () override
 
- Protected Member Functions inherited from MarketRiskReport
virtual void initialiseRiskGroups ()
 Method for shared initialisation. More...
 
virtual void registerProgressIndicators ()
 
virtual void createReports (const QuantLib::ext::shared_ptr< MarketRiskReport::Reports > &reports)=0
 
virtual bool runTradeDetail (const QuantLib::ext::shared_ptr< MarketRiskReport::Reports > &reports)
 
virtual QuantLib::ext::shared_ptr< ScenarioFiltercreateScenarioFilter (const QuantLib::ext::shared_ptr< MarketRiskGroupBase > &riskGroup)
 
virtual void reset (const QuantLib::ext::shared_ptr< MarketRiskGroupBase > &riskGroup)
 
virtual bool runTradeRiskGroup (const QuantLib::ext::shared_ptr< TradeGroupBase > &tradeGroup, const QuantLib::ext::shared_ptr< MarketRiskGroupBase > &riskGroup) const
 
virtual bool disablesAll (const QuantLib::ext::shared_ptr< ScenarioFilter > &filter) const
 
virtual void updateFilter (const QuantLib::ext::shared_ptr< MarketRiskGroupBase > &riskGroup, const QuantLib::ext::shared_ptr< ScenarioFilter > &filter)
 update any filters required More...
 
virtual std::string portfolioId (const QuantLib::ext::shared_ptr< TradeGroupBase > &tradeGroup) const
 
virtual std::string tradeGroupKey (const QuantLib::ext::shared_ptr< TradeGroupBase > &tradeGroup) const
 
virtual ore::data::TimePeriod covariancePeriod () const
 
virtual void addPnlCalculators (const QuantLib::ext::shared_ptr< MarketRiskReport::Reports > &reports)
 
virtual void handleSensiResults (const QuantLib::ext::shared_ptr< MarketRiskReport::Reports > &report, const QuantLib::ext::shared_ptr< MarketRiskGroupBase > &riskGroup, const QuantLib::ext::shared_ptr< TradeGroupBase > &tradeGroup)
 
virtual void handleFullRevalResults (const QuantLib::ext::shared_ptr< MarketRiskReport::Reports > &reports, const QuantLib::ext::shared_ptr< MarketRiskGroupBase > &riskGroup, const QuantLib::ext::shared_ptr< TradeGroupBase > &tradeGroup)
 
virtual bool includeDeltaMargin (const QuantLib::ext::shared_ptr< MarketRiskGroupBase > &riskGroup) const
 
virtual bool includeGammaMargin (const QuantLib::ext::shared_ptr< MarketRiskGroupBase > &riskGroup) const
 
virtual bool runFullReval (const QuantLib::ext::shared_ptr< MarketRiskGroupBase > &riskGroup) const
 
virtual bool generateCube (const QuantLib::ext::shared_ptr< MarketRiskGroupBase > &riskGroup) const
 
virtual std::string cubeFilePath (const QuantLib::ext::shared_ptr< MarketRiskGroupBase > &riskGroup) const
 
virtual std::vector< ore::data::TimePeriodtimePeriods ()
 
virtual void writeReports (const QuantLib::ext::shared_ptr< MarketRiskReport::Reports > &reports, const QuantLib::ext::shared_ptr< MarketRiskGroupBase > &riskGroup, const QuantLib::ext::shared_ptr< TradeGroupBase > &tradeGroup)
 
virtual void closeReports (const QuantLib::ext::shared_ptr< MarketRiskReport::Reports > &reports)
 

Detailed Description

Parametric VaR Calculator.

This class takes sensitivity data and a covariance matrix as an input and computes a parametric value at risk. The output can be broken down by portfolios, risk classes (IR, FX, EQ, ...) and risk types (delta-gamma, vega, ...).

Definition at line 95 of file parametricvar.hpp.

Member Typedef Documentation

◆ CrossPair

typedef std::pair<RiskFactorKey, RiskFactorKey> CrossPair

Definition at line 119 of file parametricvar.hpp.

Constructor & Destructor Documentation

◆ ~ParametricVarReport()

virtual ~ParametricVarReport ( )
virtual

Definition at line 97 of file parametricvar.hpp.

97{}

◆ ParametricVarReport() [1/2]

ParametricVarReport ( const std::string &  baseCurrency,
const QuantLib::ext::shared_ptr< Portfolio > &  portfolio,
const std::string &  portfolioFilter,
const std::vector< QuantLib::Real > &  p,
const ParametricVarCalculator::ParametricVarParams parametricVarParams,
const bool  salvageCovarianceMatrix,
boost::optional< ore::data::TimePeriod period,
std::unique_ptr< SensiRunArgs sensiArgs = nullptr,
const bool  breakdown = false 
)

◆ ParametricVarReport() [2/2]

ParametricVarReport ( const std::string &  baseCurrency,
const QuantLib::ext::shared_ptr< Portfolio > &  portfolio,
const std::string &  portfolioFilter,
const QuantLib::ext::shared_ptr< HistoricalScenarioGenerator > &  hisScenGen,
const std::vector< QuantLib::Real > &  p,
const ParametricVarCalculator::ParametricVarParams parametricVarParams,
const bool  salvageCovarianceMatrix,
boost::optional< ore::data::TimePeriod period,
std::unique_ptr< SensiRunArgs sensiArgs = nullptr,
const bool  breakdown = false 
)

Member Function Documentation

◆ createVarCalculator()

void createVarCalculator ( )
overridevirtual

Implements VarReport.

Definition at line 167 of file parametricvar.cpp.

167 {
168 varCalculator_ = QuantLib::ext::make_shared<ParametricVarCalculator>(
170}
std::map< RiskFactorKey, QuantLib::Real > deltas_
std::map< std::pair< RiskFactorKey, RiskFactorKey >, QuantLib::Real > gammas_
QuantLib::ext::shared_ptr< QuantExt::CovarianceSalvage > salvage_
ParametricVarCalculator::ParametricVarParams parametricVarParams_
The parameters to use for calculating the parametric VAR benchmark.
QuantLib::ext::shared_ptr< VarCalculator > varCalculator_

Member Data Documentation

◆ sensitivityConfig_

const QuantLib::ext::shared_ptr<SensitivityScenarioData> sensitivityConfig_
protected

Definition at line 122 of file parametricvar.hpp.

◆ simMarketConfig_

const QuantLib::ext::shared_ptr<ScenarioSimMarketParameters> simMarketConfig_
protected

Definition at line 123 of file parametricvar.hpp.

◆ parametricVarParams_

ParametricVarCalculator::ParametricVarParams parametricVarParams_
protected

The parameters to use for calculating the parametric VAR benchmark.

Definition at line 126 of file parametricvar.hpp.

◆ salvageCovarianceMatrix_

bool salvageCovarianceMatrix_ = true
protected

Definition at line 127 of file parametricvar.hpp.