Logo
Reference manual - version orea_version
ParametricVarReport Class Reference

Parametric VaR Calculator. More...

#include <orea/engine/parametricvar.hpp>

Inheritance diagram for ParametricVarReport:

Public Types

typedef std::pair< RiskFactorKey, RiskFactorKey > CrossPair

Public Member Functions

 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 SalvagingAlgorithm::Type varSalvagingAlgorithm, QuantLib::ext::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 SalvagingAlgorithm::Type varSalvagingAlgorithm, QuantLib::ext::optional< ore::data::TimePeriod > period, std::unique_ptr< SensiRunArgs > sensiArgs=nullptr, const bool breakdown=false)
void createVarCalculator () override
void createAdditionalReports (const QuantLib::ext::shared_ptr< MarketRiskReport::Reports > &reports) 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, QuantLib::ext::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, QuantLib::ext::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, const bool requireRiskFactorPnl=false)
virtual void initialise ()
void initSimMarket ()
 Method to init simMarket_ for multi-threaded ctors.
virtual void calculate (const QuantLib::ext::shared_ptr< Reports > &report)
void enableCubeWrite (const std::string &cubeDir, const std::string &cubeFilename)

Protected Member Functions

void writeHeader (const QuantLib::ext::shared_ptr< Report > &report) const override
std::vector< Real > calcVarsForQuantiles () const override
void writeAdditionalReports (const QuantLib::ext::shared_ptr< MarketRiskReport::Reports > &reports, const QuantLib::ext::shared_ptr< MarketRiskGroupBase > &riskGroup, const QuantLib::ext::shared_ptr< TradeGroupBase > &tradeGroup) override
Protected Member Functions inherited from VarReport
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::TimePeriod > timePeriods () override
Protected Member Functions inherited from MarketRiskReport
virtual void initialiseRiskGroups ()
 Method for shared initialisation.
virtual void registerProgressIndicators ()
virtual bool runTradeDetail (const QuantLib::ext::shared_ptr< MarketRiskReport::Reports > &reports)
virtual bool runRiskFactorDetail (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
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 void closeReports (const QuantLib::ext::shared_ptr< MarketRiskReport::Reports > &reports)

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.
SalvagingAlgorithm::Type varSalvagingAlgorithm_ = SalvagingAlgorithm::Spectral
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< Portfolio > portfolio_
std::string portfolioFilter_
QuantLib::ext::optional< ore::data::TimePeriod > period_
QuantLib::ext::shared_ptr< HistoricalScenarioGeneratorhisScenGen_
std::unique_ptr< SensiRunArgssensiArgs_
std::unique_ptr< FullRevalArgsfullRevalArgs_
std::unique_ptr< MultiThreadArgsmultiThreadArgs_
bool breakdown_ = false
bool requireTradePnl_ = false
bool requireRiskFactorPnl_ = 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::CovarianceSalvage > salvage_
bool includeDeltaMargin_ = true
bool includeGammaMargin_ = true
QuantLib::ext::shared_ptr< ore::data::EngineFactory > factory_
QuantLib::ext::shared_ptr< ore::analytics::HistoricalPnlGeneratorhistPnlGen_
QuantLib::ext::shared_ptr< HistoricalSensiPnlCalculatorsensiPnlCalculator_

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, ...).

Member Function Documentation

◆ createVarCalculator()

void createVarCalculator ( )
overridevirtual

Implements VarReport.

◆ createAdditionalReports()

void createAdditionalReports ( const QuantLib::ext::shared_ptr< MarketRiskReport::Reports > & reports)
overridevirtual

Reimplemented from VarReport.

◆ writeHeader()

void writeHeader ( const QuantLib::ext::shared_ptr< Report > & report) const
overrideprotectedvirtual

Implements VarReport.

◆ calcVarsForQuantiles()

std::vector< Real > calcVarsForQuantiles ( ) const
overrideprotectedvirtual

Implements VarReport.

◆ writeAdditionalReports()

void writeAdditionalReports ( const QuantLib::ext::shared_ptr< MarketRiskReport::Reports > & reports,
const QuantLib::ext::shared_ptr< MarketRiskGroupBase > & riskGroup,
const QuantLib::ext::shared_ptr< TradeGroupBase > & tradeGroup )
overrideprotectedvirtual

Reimplemented from VarReport.