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

HistoricalSimulation VaR Calculator. More...

#include <orea/engine/historicalsimulationvar.hpp>

+ Inheritance diagram for HistoricalSimulationVarReport:

Public Member Functions

 HistoricalSimulationVarReport (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< FullRevalArgs > fullRevalArgs=nullptr, const bool breakdown=false)
 
- 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 Member Functions

void createVarCalculator () override
 
void handleFullRevalResults (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::TimePeriodtimePeriods () 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< 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 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)
 

Additional Inherited Members

- 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_
 

Detailed Description

HistoricalSimulation VaR Calculator.

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