Logo
Reference manual - version orea_version
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
MarketRiskReport Class Referenceabstract
+ Inheritance diagram for MarketRiskReport:

Classes

struct  FullRevalArgs
 
struct  MultiThreadArgs
 
class  Reports
 
struct  SensiRunArgs
 

Public Member Functions

 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

virtual void initialiseRiskGroups ()
 Method for shared initialisation.
 
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
 
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)
 

Protected Attributes

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_
 

Member Function Documentation

◆ enableCubeWrite()

void enableCubeWrite ( const std::string &  cubeDir,
const std::string &  cubeFilename 
)

Enable cube file generation to the given output directory cubeDir with the given cube file name cubeFilename. The cubeFilename should be of the form 'stemFILTER.dat'. In the code the 'FILTER' piece is replaced with a description of the scenario filter under which the cube was generated so that separate cube files are generated for each scenario filter.

Remarks
This will only have an effect when full revaluation is enabled

◆ disablesAll()

virtual bool disablesAll ( const QuantLib::ext::shared_ptr< ScenarioFilter > &  filter) const
protectedvirtual

Check if the given scenario filter turns off all risk factors in the historical scenario generator

Member Data Documentation

◆ tradeIdGroups_

std::map<std::string, std::set<std::pair<std::string, QuantLib::Size> > > tradeIdGroups_
protected

Partition of portfolio's trade IDs (and index as a pair), into groups.

◆ salvage_

QuantLib::ext::shared_ptr<QuantExt::CovarianceSalvage> salvage_
protected
Initial value:
=
QuantLib::ext::make_shared<QuantExt::SpectralCovarianceSalvage>()