Logo
Reference manual - version orea_version
StaticCreditXvaCalculator Class Reference

XVA Calculator base with static credit. More...

#include <orea/aggregation/staticcreditxvacalculator.hpp>

Inheritance diagram for StaticCreditXvaCalculator:

Public Member Functions

 StaticCreditXvaCalculator (const QuantLib::ext::shared_ptr< Portfolio > portfolio, const QuantLib::ext::shared_ptr< Market > market, const string &configuration, const string &baseCurrency, const string &dvaName, const string &fvaBorrowingCurve, const string &fvaLendingCurve, const bool applyDynamicInitialMargin, const QuantLib::ext::shared_ptr< DynamicInitialMarginCalculator > dimCalculator, const QuantLib::ext::shared_ptr< NPVCube > tradeExposureCube, const QuantLib::ext::shared_ptr< NPVCube > nettingSetExposureCube, const Size tradeEpeIndex=0, const Size tradeEneIndex=1, const Size nettingSetEpeIndex=1, const Size nettingSetEneIndex=2, const bool flipViewXVA=false, const string &flipViewBorrowingCurvePostfix="_BORROW", const string &flipViewLendingCurvePostfix="_LEND")
virtual const Real calculateCvaIncrement (const string &tid, const string &cid, const Date &d0, const Date &d1, const Real &rr) override
virtual const Real calculateDvaIncrement (const string &tid, const Date &d0, const Date &d1, const Real &rr) override
virtual const Real calculateNettingSetCvaIncrement (const string &nid, const string &cid, const Date &d0, const Date &d1, const Real &rr) override
virtual const Real calculateNettingSetDvaIncrement (const string &nid, const Date &d0, const Date &d1, const Real &rr) override
virtual const Real calculateFbaIncrement (const string &tid, const string &cid, const string &dvaName, const Date &d0, const Date &d1, const Real &dcf) override
virtual const Real calculateFcaIncrement (const string &tid, const string &cid, const string &dvaName, const Date &d0, const Date &d1, const Real &dcf) override
virtual const Real calculateNettingSetFbaIncrement (const string &nid, const string &cid, const string &dvaName, const Date &d0, const Date &d1, const Real &dcf) override
virtual const Real calculateNettingSetFcaIncrement (const string &nid, const string &cid, const string &dvaName, const Date &d0, const Date &d1, const Real &dcf) override
virtual const Real calculateNettingSetMvaIncrement (const string &nid, const string &cid, const Date &d0, const Date &d1, const Real &dcf) override
Public Member Functions inherited from ValueAdjustmentCalculator
 ValueAdjustmentCalculator (const QuantLib::ext::shared_ptr< Portfolio > portfolio, const QuantLib::ext::shared_ptr< Market > market, const string &configuration, const string &baseCurrency, const string &dvaName, const string &fvaBorrowingCurve, const string &fvaLendingCurve, const bool applyDynamicInitialMargin, const QuantLib::ext::shared_ptr< DynamicInitialMarginCalculator > dimCalculator, const QuantLib::ext::shared_ptr< NPVCube > tradeExposureCube, const QuantLib::ext::shared_ptr< NPVCube > nettingSetExposureCube, const Size tradeEpeIndex=0, const Size tradeEneIndex=1, const Size nettingSetEpeIndex=1, const Size nettingSetEneIndex=2, const bool flipViewXVA=false, const string &flipViewBorrowingCurvePostfix="_BORROW", const string &flipViewLendingCurvePostfix="_LEND")
virtual void build ()
 Compute cva along all paths and fill result structures.
virtual const vector< Date > & dates ()
virtual const Date asof ()
const map< string, Real > & tradeCva ()
 CVA map for all the trades.
const map< string, Real > & tradeDva ()
 DVA map for all the trades.
const map< string, Real > & nettingSetCva ()
 CVA map for all the netting sets.
const map< string, Real > & nettingSetDva ()
 DVA map for all the netting sets.
const map< string, Real > & nettingSetSumCva ()
 Sum CVA map for all the netting sets.
const map< string, Real > & nettingSetSumDva ()
 Sum DVA map for all the netting sets.
const Real & tradeCva (const string &trade)
 CVA for the specified trade.
const Real & tradeDva (const string &trade)
 DVA for the specified trade.
const Real & tradeFba (const string &trade)
 FBA for the specified trade.
const Real & tradeFba_exOwnSp (const string &trade)
 FBA (excl own survival probability) for the specified trade.
const Real & tradeFba_exAllSp (const string &trade)
 FBA (excl all survival probability) for the specified trade.
const Real & tradeFca (const string &trade)
 FCA for the specified trade.
const Real & tradeFca_exOwnSp (const string &trade)
 FCA (excl own survival probability) for the specified trade.
const Real & tradeFca_exAllSp (const string &trade)
 FCA (excl all survival probability) for the specified trade.
const Real & tradeMva (const string &trade)
 MVA for the specified trade.
const Real & nettingSetSumCva (const string &nettingSet)
 Sum of trades' CVA for the specified netting set.
const Real & nettingSetSumDva (const string &nettingSet)
 Sum of trades' DVA for the specified netting set.
const Real & nettingSetCva (const string &nettingSet)
 CVA for the specified netting set.
const Real & nettingSetDva (const string &nettingSet)
 DVA for the specified netting set.
const Real & nettingSetFba (const string &nettingSet)
 FBA for the specified netting set.
const Real & nettingSetFba_exOwnSp (const string &nettingSet)
 FBA (excl own survival probability) for the specified netting set.
const Real & nettingSetFba_exAllSp (const string &nettingSet)
 FBA (excl all survival probability) for the specified netting set.
const Real & nettingSetFca (const string &nettingSet)
 FCA for the specified netting set.
const Real & nettingSetFca_exOwnSp (const string &nettingSet)
 FCA (excl own survival probability) for the specified netting set.
const Real & nettingSetFca_exAllSp (const string &nettingSet)
 FCA (excl all survival probability) for the specified netting set.
const Real & nettingSetMva (const string &nettingSet)
 MVA for the specified netting set.

Protected Attributes

map< Date, Size > dateIndexMap_
Protected Attributes inherited from ValueAdjustmentCalculator
QuantLib::ext::shared_ptr< Portfolio > portfolio_
QuantLib::ext::shared_ptr< Marketmarket_
string configuration_
string baseCurrency_
string dvaName_
string fvaBorrowingCurve_
string fvaLendingCurve_
bool applyDynamicInitialMargin_
QuantLib::ext::shared_ptr< DynamicInitialMarginCalculatordimCalculator_
const QuantLib::ext::shared_ptr< NPVCubetradeExposureCube_
const QuantLib::ext::shared_ptr< NPVCubenettingSetExposureCube_
Size tradeEpeIndex_
Size tradeEneIndex_
Size nettingSetEpeIndex_
Size nettingSetEneIndex_
bool flipViewXVA_
string flipViewBorrowingCurvePostfix_
string flipViewLendingCurvePostfix_
map< string, stringnettingSetCpty_
map< string, Real > tradeCva_
map< string, Real > tradeDva_
map< string, Real > tradeFba_
map< string, Real > tradeFba_exOwnSp_
map< string, Real > tradeFba_exAllSp_
map< string, Real > tradeFca_
map< string, Real > tradeFca_exOwnSp_
map< string, Real > tradeFca_exAllSp_
map< string, Real > tradeMva_
map< string, Real > nettingSetSumCva_
map< string, Real > nettingSetSumDva_
map< string, Real > nettingSetCva_
map< string, Real > nettingSetDva_
map< string, Real > nettingSetFba_
map< string, Real > nettingSetFba_exOwnSp_
map< string, Real > nettingSetFba_exAllSp_
map< string, Real > nettingSetFca_
map< string, Real > nettingSetFca_exOwnSp_
map< string, Real > nettingSetFca_exAllSp_
map< string, Real > nettingSetMva_

Detailed Description

XVA Calculator base with static credit.

XVA is calculated using survival probability from market

Constructor & Destructor Documentation

◆ StaticCreditXvaCalculator()

StaticCreditXvaCalculator ( const QuantLib::ext::shared_ptr< Portfolio > portfolio,
const QuantLib::ext::shared_ptr< Market > market,
const string & configuration,
const string & baseCurrency,
const string & dvaName,
const string & fvaBorrowingCurve,
const string & fvaLendingCurve,
const bool applyDynamicInitialMargin,
const QuantLib::ext::shared_ptr< DynamicInitialMarginCalculator > dimCalculator,
const QuantLib::ext::shared_ptr< NPVCube > tradeExposureCube,
const QuantLib::ext::shared_ptr< NPVCube > nettingSetExposureCube,
const Size tradeEpeIndex = 0,
const Size tradeEneIndex = 1,
const Size nettingSetEpeIndex = 1,
const Size nettingSetEneIndex = 2,
const bool flipViewXVA = false,
const string & flipViewBorrowingCurvePostfix = "_BORROW",
const string & flipViewLendingCurvePostfix = "_LEND" )
Parameters
portfolioDriving portfolio consistent with the cube below
marketToday's market
configurationMarket configuration to be used
baseCurrencyBase currency amounts will be converted to
dvaNameOwn party name for DVA calculations
fvaBorrowingCurveFVA borrowing curve
fvaLendingCurveFVA lending curve
applyDynamicInitialMarginDeactivate initial margin calculation even if active at netting set level
dimCalculatorDynamic Initial Margin calculator
tradeExposureCubeStorage ofdefault NPVs, close-out NPVs, cash flows at trade level
nettingSetExposureCubeStorage of sensitivity vectors at netting set level
tradeEpeIndexIndex of the trade EPE storage in the internal exposure cube
tradeEneIndexIndex of the trade ENE storage in the internal exposure cube
nettingSetEpeIndexIndex of the netting set EPE storage in the internal exposure cube
nettingSetEneIndexIndex of the netting set ENE storage in the internal exposure cube
flipViewXVAFlag to indicate flipped xva calculation
flipViewBorrowingCurvePostfixPostfix for flipView borrowing curve for fva
flipViewLendingCurvePostfixPostfix for flipView lending curve for fva

Member Function Documentation

◆ calculateCvaIncrement()

virtual const Real calculateCvaIncrement ( const string & tid,
const string & cid,
const Date & d0,
const Date & d1,
const Real & rr )
overridevirtual

◆ calculateDvaIncrement()

virtual const Real calculateDvaIncrement ( const string & tid,
const Date & d0,
const Date & d1,
const Real & rr )
overridevirtual

◆ calculateNettingSetCvaIncrement()

virtual const Real calculateNettingSetCvaIncrement ( const string & nid,
const string & cid,
const Date & d0,
const Date & d1,
const Real & rr )
overridevirtual

◆ calculateNettingSetDvaIncrement()

virtual const Real calculateNettingSetDvaIncrement ( const string & nid,
const Date & d0,
const Date & d1,
const Real & rr )
overridevirtual

◆ calculateFbaIncrement()

virtual const Real calculateFbaIncrement ( const string & tid,
const string & cid,
const string & dvaName,
const Date & d0,
const Date & d1,
const Real & dcf )
overridevirtual

◆ calculateFcaIncrement()

virtual const Real calculateFcaIncrement ( const string & tid,
const string & cid,
const string & dvaName,
const Date & d0,
const Date & d1,
const Real & dcf )
overridevirtual

◆ calculateNettingSetFbaIncrement()

virtual const Real calculateNettingSetFbaIncrement ( const string & nid,
const string & cid,
const string & dvaName,
const Date & d0,
const Date & d1,
const Real & dcf )
overridevirtual

◆ calculateNettingSetFcaIncrement()

virtual const Real calculateNettingSetFcaIncrement ( const string & nid,
const string & cid,
const string & dvaName,
const Date & d0,
const Date & d1,
const Real & dcf )
overridevirtual

◆ calculateNettingSetMvaIncrement()

virtual const Real calculateNettingSetMvaIncrement ( const string & nid,
const string & cid,
const Date & d0,
const Date & d1,
const Real & dcf )
overridevirtual