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

XVA Calculator base with static credit. More...

#include <orea/aggregation/staticcreditxvacalculator.hpp>

+ Inheritance diagram for StaticCreditXvaCalculator:

Public Member Functions

 StaticCreditXvaCalculator (const boost::shared_ptr< Portfolio > portfolio, const boost::shared_ptr< Market > market, const string &configuration, const string &baseCurrency, const string &dvaName, const string &fvaBorrowingCurve, const string &fvaLendingCurve, const bool applyDynamicInitialMargin, const boost::shared_ptr< DynamicInitialMarginCalculator > dimCalculator, const boost::shared_ptr< NPVCube > tradeExposureCube, const boost::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 boost::shared_ptr< Portfolio > portfolio, const boost::shared_ptr< Market > market, const string &configuration, const string &baseCurrency, const string &dvaName, const string &fvaBorrowingCurve, const string &fvaLendingCurve, const bool applyDynamicInitialMargin, const boost::shared_ptr< DynamicInitialMarginCalculator > dimCalculator, const boost::shared_ptr< NPVCube > tradeExposureCube, const boost::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
boost::shared_ptr< Portfolioportfolio_
 
boost::shared_ptr< Marketmarket_
 
string configuration_
 
string baseCurrency_
 
string dvaName_
 
string fvaBorrowingCurve_
 
string fvaLendingCurve_
 
bool applyDynamicInitialMargin_
 
boost::shared_ptr< DynamicInitialMarginCalculatordimCalculator_
 
const boost::shared_ptr< NPVCubetradeExposureCube_
 
const boost::shared_ptr< NPVCubenettingSetExposureCube_
 
Size tradeEpeIndex_
 
Size tradeEneIndex_
 
Size nettingSetEpeIndex_
 
Size nettingSetEneIndex_
 
bool flipViewXVA_
 
string flipViewBorrowingCurvePostfix_
 
string flipViewLendingCurvePostfix_
 
map< string, string > nettingSetCpty_
 
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 boost::shared_ptr< Portfolio portfolio,
const boost::shared_ptr< Market market,
const string &  configuration,
const string &  baseCurrency,
const string &  dvaName,
const string &  fvaBorrowingCurve,
const string &  fvaLendingCurve,
const bool  applyDynamicInitialMargin,
const boost::shared_ptr< DynamicInitialMarginCalculator dimCalculator,
const boost::shared_ptr< NPVCube tradeExposureCube,
const boost::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