Parametric VaR Calculator. More...
#include <orea/engine/parametricvar.hpp>
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 ¶metricVarParams, 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 ¶metricVarParams, 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 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) |
Public Member Functions inherited from 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< SensitivityScenarioData > | sensitivityConfig_ |
const QuantLib::ext::shared_ptr< ScenarioSimMarketParameters > | simMarketConfig_ |
ParametricVarCalculator::ParametricVarParams | parametricVarParams_ |
The parameters to use for calculating the parametric VAR benchmark. | |
bool | salvageCovarianceMatrix_ = true |
Protected Attributes inherited from VarReport | |
QuantLib::ext::shared_ptr< VarCalculator > | varCalculator_ |
Protected Attributes inherited from MarketRiskReport | |
bool | sensiBased_ = false |
bool | fullReval_ = false |
std::string | calculationCurrency_ |
QuantLib::ext::shared_ptr< Portfolio > | portfolio_ |
std::string | portfolioFilter_ |
boost::optional< ore::data::TimePeriod > | period_ |
QuantLib::ext::shared_ptr< HistoricalScenarioGenerator > | hisScenGen_ |
std::unique_ptr< SensiRunArgs > | sensiArgs_ |
std::unique_ptr< FullRevalArgs > | fullRevalArgs_ |
std::unique_ptr< MultiThreadArgs > | multiThreadArgs_ |
bool | breakdown_ = false |
bool | requireTradePnl_ = false |
QuantLib::ext::shared_ptr< MarketRiskGroupBaseContainer > | riskGroups_ |
QuantLib::ext::shared_ptr< TradeGroupBaseContainer > | tradeGroups_ |
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::HistoricalPnlGenerator > | histPnlGen_ |
QuantLib::ext::shared_ptr< HistoricalSensiPnlCalculator > | sensiPnlCalculator_ |
Additional Inherited Members | |
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 QuantLib::ext::shared_ptr< ScenarioFilter > | createScenarioFilter (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) |
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, ...).