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

Public Member Functions

 XvaRunner (const boost::shared_ptr< InputParameters > &inputs, QuantLib::Date asof, const std::string &baseCurrency, const boost::shared_ptr< ore::data::Portfolio > &portfolio, const boost::shared_ptr< ore::data::NettingSetManager > &netting, const boost::shared_ptr< ore::data::EngineData > &engineData, const boost::shared_ptr< ore::data::CurveConfigurations > &curveConfigs, const boost::shared_ptr< ore::data::TodaysMarketParameters > &todaysMarketParams, const boost::shared_ptr< ScenarioSimMarketParameters > &simMarketData, const boost::shared_ptr< ScenarioGeneratorData > &scenarioGeneratorData, const boost::shared_ptr< ore::data::CrossAssetModelData > &crossAssetModelData, const boost::shared_ptr< ReferenceDataManager > &referenceData=nullptr, const IborFallbackConfig &iborFallbackConfig=IborFallbackConfig::defaultConfig(), QuantLib::Real dimQuantile=0.99, QuantLib::Size dimHorizonCalendarDays=14, map< string, bool > analytics={}, string calculationType="Symmetric", string dvaName="", string fvaBorrowingCurve="", string fvaLendingCurve="", bool fullInitialCollateralisation=true, bool storeFlows=false)
 
void runXva (const boost::shared_ptr< ore::data::Market > &market, bool continueOnErr=true, const std::map< std::string, QuantLib::Real > &currentIM=std::map< std::string, QuantLib::Real >())
 
const boost::shared_ptr< PostProcess > & postProcess ()
 
void buildCamModel (const boost::shared_ptr< ore::data::Market > &market, bool continueOnErr=true)
 
void bufferSimulationPaths ()
 
virtual void buildSimMarket (const boost::shared_ptr< ore::data::Market > &market, const boost::optional< std::set< std::string >> &currencyFilter=boost::none, const bool continueOnErr=true)
 
void buildCube (const boost::optional< std::set< std::string >> &tradeIds, bool continueOnErr=true)
 
boost::shared_ptr< NPVCubenpvCube () const
 
boost::shared_ptr< NPVCubenettingCube () const
 
QuantLib::Handle< AggregationScenarioDataaggregationScenarioData ()
 
void generatePostProcessor (const boost::shared_ptr< Market > &market, const boost::shared_ptr< NPVCube > &npvCube, const boost::shared_ptr< NPVCube > &nettingCube, const boost::shared_ptr< AggregationScenarioData > &scenarioData, const bool continueOnErr=true, const std::map< std::string, QuantLib::Real > &currentIM=std::map< std::string, QuantLib::Real >())
 
std::set< std::string > getNettingSetIds (const boost::shared_ptr< Portfolio > &portfolio=nullptr) const
 

Protected Member Functions

virtual boost::shared_ptr< NPVCubegetNettingSetCube (std::vector< boost::shared_ptr< ValuationCalculator >> &calculators, const boost::shared_ptr< Portfolio > &portfolio)
 
virtual boost::shared_ptr< NPVCubegetNpvCube (const Date &asof, const std::set< std::string > &ids, const std::vector< Date > &dates, const Size samples, const Size depth) const
 
virtual boost::shared_ptr< DynamicInitialMarginCalculatorgetDimCalculator (const boost::shared_ptr< NPVCube > &cube, const boost::shared_ptr< CubeInterpretation > &cubeInterpreter, const boost::shared_ptr< AggregationScenarioData > &scenarioData, const boost::shared_ptr< QuantExt::CrossAssetModel > &model=nullptr, const boost::shared_ptr< NPVCube > &nettingCube=nullptr, const std::map< std::string, QuantLib::Real > &currentIM=std::map< std::string, QuantLib::Real >())
 
virtual boost::shared_ptr< ore::analytics::ScenarioSimMarketParametersprojectSsmData (const std::set< std::string > &currencyFilter) const
 
virtual boost::shared_ptr< ore::analytics::ScenarioGeneratorgetProjectedScenarioGenerator (const boost::optional< std::set< std::string >> &currencyFilter, const boost::shared_ptr< Market > &market, const boost::shared_ptr< ScenarioSimMarketParameters > &projectedSsmData, const boost::shared_ptr< ScenarioFactory > &scenarioFactory, const bool continueOnErr) const
 

Protected Attributes

boost::shared_ptr< InputParametersinputs_
 
QuantLib::Date asof_
 
std::string baseCurrency_
 
boost::shared_ptr< ore::data::Portfolioportfolio_
 
boost::shared_ptr< ore::data::NettingSetManagernetting_
 
boost::shared_ptr< ore::data::EngineDataengineData_
 
boost::shared_ptr< ore::data::CurveConfigurationscurveConfigs_
 
boost::shared_ptr< ore::data::TodaysMarketParameterstodaysMarketParams_
 
boost::shared_ptr< ScenarioSimMarketParameterssimMarketData_
 
boost::shared_ptr< ScenarioGeneratorDatascenarioGeneratorData_
 
boost::shared_ptr< ore::data::CrossAssetModelDatacrossAssetModelData_
 
boost::shared_ptr< ReferenceDataManagerreferenceData_
 
IborFallbackConfig iborFallbackConfig_
 
QuantLib::Real dimQuantile_
 
QuantLib::Size dimHorizonCalendarDays_
 
map< string, bool > analytics_
 
string inputCalculationType_
 
string dvaName_
 
string fvaBorrowingCurve_
 
string fvaLendingCurve_
 
bool fullInitialCollateralisation_
 
bool storeFlows_
 
boost::shared_ptr< QuantExt::CrossAssetModelmodel_
 
boost::shared_ptr< ScenarioSimMarketsimMarket_
 
boost::shared_ptr< EngineFactorysimFactory_
 
QuantLib::RelinkableHandle< AggregationScenarioDatascenarioData_
 
boost::shared_ptr< NPVCubecube_
 
boost::shared_ptr< NPVCubenettingCube_
 
boost::shared_ptr< CubeInterpretationcubeInterpreter_
 
std::string calculationType_
 
boost::shared_ptr< PostProcesspostProcess_
 
boost::shared_ptr< std::vector< std::vector< QuantLib::Path > > > bufferedPaths_