48 const QuantLib::ext::shared_ptr<Portfolio>& portfolio,
const QuantLib::ext::shared_ptr<Market>& market,
49 const QuantLib::ext::shared_ptr<NPVCube>& cube,
const string& baseCurrency,
const string& configuration,
51 const QuantLib::ext::shared_ptr<NettingSetManager>& nettingSetManager,
52 const QuantLib::ext::shared_ptr<CollateralBalances>& collateralBalances,
57 const QuantLib::ext::shared_ptr<AggregationScenarioData>& scenarioData,
58 const QuantLib::ext::shared_ptr<CubeInterpretation> cubeInterpretation,
const bool applyInitialMargin,
59 const QuantLib::ext::shared_ptr<DynamicInitialMarginCalculator>& dimCalculator,
const bool fullInitialCollateralisation,
61 const bool marginalAllocation,
const Real marginalAllocationLimit,
62 const QuantLib::ext::shared_ptr<NPVCube>& tradeExposureCube,
const Size allocatedEpeIndex,
const Size allocatedEneIndex,
63 const bool flipViewXVA,
const bool withMporStickyDate,
const MporCashFlowMode mporCashFlowMode);
79 vector<Real>&
ee_b(
const string& nid) {
return ee_b_[nid]; }
80 vector<Real>&
eee_b(
const string& nid) {
return eee_b_[nid]; }
81 vector<Real>&
pfe(
const string& nid) {
return pfe_[nid]; }
98 QuantLib::ext::shared_ptr<Market>
market_;
99 QuantLib::ext::shared_ptr<NPVCube>
cube_;
128 map<string, std::vector<Real>>
ee_b_;
130 map<string, std::vector<Real>>
pfe_;
140 QuantLib::ext::shared_ptr<vector<QuantLib::ext::shared_ptr<CollateralAccount>>>
142 const Real& nettingSetValueToday,
143 const vector<vector<Real>>& nettingSetValue,
144 const Date& nettingSetMaturity);
XVA Calculator base class.
vector< Real > epe(const string &nid)
map< string, std::vector< Real > > pfe_
QuantLib::ext::shared_ptr< Market > market_
const Size allocatedEpeIndex_
map< string, vector< vector< Real > > > nettingSetDefaultValue()
Real & collateralFloor(const string &nid)
vector< Real > & expectedCollateral(const string &nid)
QuantLib::ext::shared_ptr< NPVCube > tradeExposureCube_
map< string, vector< vector< Real > > > nettingSetDefaultValue_
const QuantLib::ext::shared_ptr< NPVCube > & exposureCube()
Real & colva(const string &nid)
map< string, vector< vector< Real > > > nettingSetMporPositiveFlow_
map< string, Real > collateralFloor_
const QuantLib::ext::shared_ptr< DynamicInitialMarginCalculator > dimCalculator_
const QuantLib::ext::shared_ptr< CollateralBalances > collateralBalances_
vector< Real > & colvaIncrements(const string &nid)
vector< Real > ene(const string &nid)
vector< Real > getMeanExposure(const string &tid, ExposureIndex index)
QuantLib::ext::shared_ptr< NPVCube > nettedCube_
const Real marginalAllocationLimit_
map< string, Real > eepe_b_
vector< Real > & eee_b(const string &nid)
map< string, Real > epe_b_
QuantLib::ext::shared_ptr< NPVCube > exposureCube_
map< string, string > counterpartyMap_
vector< Real > & pfe(const string &nid)
const Size allocatedEneIndex_
virtual void build()
Compute exposures along all paths and fill result structures.
const Size EXPOSURE_CUBE_DEPTH
map< string, vector< vector< Real > > > nettingSetMporPositiveFlow()
QuantLib::ext::shared_ptr< Portfolio > portfolio_
const QuantLib::ext::shared_ptr< AggregationScenarioData > scenarioData_
virtual ~NettedExposureCalculator()
map< string, vector< vector< Real > > > nettingSetMporNegativeFlow_
map< string, std::vector< Real > > eee_b_
const bool applyInitialMargin_
const string & counterparty(const string nettingSetId)
map< string, Real > colva_
const bool fullInitialCollateralisation_
QuantLib::ext::shared_ptr< CubeInterpretation > cubeInterpretation_
map< string, std::vector< Real > > eoniaFloorInc_
Real & epe_b(const string &nid)
map< string, vector< vector< Real > > > nettingSetCloseOutValue()
map< string, vector< vector< Real > > > nettingSetCloseOutValue_
CollateralExposureHelper::CalculationType calcType_
map< string, std::vector< Real > > colvaInc_
const map< string, string > & counterpartyMap()
Real & eepe_b(const string &nid)
const QuantLib::ext::shared_ptr< NPVCube > & nettedCube()
MporCashFlowMode mporCashFlowMode_
QuantLib::ext::shared_ptr< vector< QuantLib::ext::shared_ptr< CollateralAccount > > > collateralPaths(const string &nettingSetId, const Real &nettingSetValueToday, const vector< vector< Real > > &nettingSetValue, const Date &nettingSetMaturity)
vector< Real > & ee_b(const string &nid)
map< string, std::vector< Real > > ee_b_
map< string, std::vector< Real > > expectedCollateral_
map< string, vector< vector< Real > > > nettingSetMporNegativeFlow()
const QuantLib::ext::shared_ptr< NettingSetManager > nettingSetManager_
const bool marginalAllocation_
QuantLib::ext::shared_ptr< NPVCube > cube_
vector< Real > & collateralFloorIncrements(const string &nid)
Collateral Exposure Helper Functions (stored in base currency)
Dynamic Initial Margin calculator base class.