XVA Calculator base with dynamic credit. More...
#include <orea/aggregation/dynamiccreditxvacalculator.hpp>
Public Member Functions | |
DynamicCreditXvaCalculator (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 QuantLib::ext::shared_ptr< NPVCube > &cptyCube, const Size tradeEpeIndex=0, const Size tradeEneIndex=1, const Size nettingSetEpeIndex=0, const Size nettingSetEneIndex=1, const Size cptySpIndex=0, 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 | ~ValueAdjustmentCalculator () |
virtual void | build () |
Compute cva along all paths and fill result structures. More... | |
virtual const vector< Date > & | dates () |
virtual const Date | asof () |
virtual const Real | calculateCvaIncrement (const string &tid, const string &cid, const Date &d0, const Date &d1, const Real &rr)=0 |
virtual const Real | calculateDvaIncrement (const string &tid, const Date &d0, const Date &d1, const Real &rr)=0 |
virtual const Real | calculateNettingSetCvaIncrement (const string &nid, const string &cid, const Date &d0, const Date &d1, const Real &rr)=0 |
virtual const Real | calculateNettingSetDvaIncrement (const string &nid, const Date &d0, const Date &d1, const Real &rr)=0 |
virtual const Real | calculateFbaIncrement (const string &tid, const string &cid, const string &dvaName, const Date &d0, const Date &d1, const Real &dcf)=0 |
virtual const Real | calculateFcaIncrement (const string &tid, const string &cid, const string &dvaName, const Date &d0, const Date &d1, const Real &dcf)=0 |
virtual const Real | calculateNettingSetFbaIncrement (const string &nid, const string &cid, const string &dvaName, const Date &d0, const Date &d1, const Real &dcf)=0 |
virtual const Real | calculateNettingSetFcaIncrement (const string &nid, const string &cid, const string &dvaName, const Date &d0, const Date &d1, const Real &dcf)=0 |
virtual const Real | calculateNettingSetMvaIncrement (const string &nid, const string &cid, const Date &d0, const Date &d1, const Real &dcf)=0 |
const map< string, Real > & | tradeCva () |
CVA map for all the trades. More... | |
const map< string, Real > & | tradeDva () |
DVA map for all the trades. More... | |
const map< string, Real > & | nettingSetCva () |
CVA map for all the netting sets. More... | |
const map< string, Real > & | nettingSetDva () |
DVA map for all the netting sets. More... | |
const map< string, Real > & | nettingSetSumCva () |
Sum CVA map for all the netting sets. More... | |
const map< string, Real > & | nettingSetSumDva () |
Sum DVA map for all the netting sets. More... | |
const Real & | tradeCva (const string &trade) |
CVA for the specified trade. More... | |
const Real & | tradeDva (const string &trade) |
DVA for the specified trade. More... | |
const Real & | tradeFba (const string &trade) |
FBA for the specified trade. More... | |
const Real & | tradeFba_exOwnSp (const string &trade) |
FBA (excl own survival probability) for the specified trade. More... | |
const Real & | tradeFba_exAllSp (const string &trade) |
FBA (excl all survival probability) for the specified trade. More... | |
const Real & | tradeFca (const string &trade) |
FCA for the specified trade. More... | |
const Real & | tradeFca_exOwnSp (const string &trade) |
FCA (excl own survival probability) for the specified trade. More... | |
const Real & | tradeFca_exAllSp (const string &trade) |
FCA (excl all survival probability) for the specified trade. More... | |
const Real & | tradeMva (const string &trade) |
MVA for the specified trade. More... | |
const Real & | nettingSetSumCva (const string &nettingSet) |
Sum of trades' CVA for the specified netting set. More... | |
const Real & | nettingSetSumDva (const string &nettingSet) |
Sum of trades' DVA for the specified netting set. More... | |
const Real & | nettingSetCva (const string &nettingSet) |
CVA for the specified netting set. More... | |
const Real & | nettingSetDva (const string &nettingSet) |
DVA for the specified netting set. More... | |
const Real & | nettingSetFba (const string &nettingSet) |
FBA for the specified netting set. More... | |
const Real & | nettingSetFba_exOwnSp (const string &nettingSet) |
FBA (excl own survival probability) for the specified netting set. More... | |
const Real & | nettingSetFba_exAllSp (const string &nettingSet) |
FBA (excl all survival probability) for the specified netting set. More... | |
const Real & | nettingSetFca (const string &nettingSet) |
FCA for the specified netting set. More... | |
const Real & | nettingSetFca_exOwnSp (const string &nettingSet) |
FCA (excl own survival probability) for the specified netting set. More... | |
const Real & | nettingSetFca_exAllSp (const string &nettingSet) |
FCA (excl all survival probability) for the specified netting set. More... | |
const Real & | nettingSetMva (const string &nettingSet) |
MVA for the specified netting set. More... | |
Protected Attributes | |
const QuantLib::ext::shared_ptr< NPVCube > & | cptyCube_ |
Size | cptySpIndex_ |
Protected Attributes inherited from ValueAdjustmentCalculator | |
QuantLib::ext::shared_ptr< Portfolio > | portfolio_ |
QuantLib::ext::shared_ptr< Market > | market_ |
string | configuration_ |
string | baseCurrency_ |
string | dvaName_ |
string | fvaBorrowingCurve_ |
string | fvaLendingCurve_ |
bool | applyDynamicInitialMargin_ |
QuantLib::ext::shared_ptr< DynamicInitialMarginCalculator > | dimCalculator_ |
const QuantLib::ext::shared_ptr< NPVCube > | tradeExposureCube_ |
const QuantLib::ext::shared_ptr< NPVCube > | nettingSetExposureCube_ |
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_ |
XVA Calculator base with dynamic credit.
XVA is calculated using survival probability from each path
Definition at line 39 of file dynamiccreditxvacalculator.hpp.
DynamicCreditXvaCalculator | ( | 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 QuantLib::ext::shared_ptr< NPVCube > & | cptyCube, | ||
const Size | tradeEpeIndex = 0 , |
||
const Size | tradeEneIndex = 1 , |
||
const Size | nettingSetEpeIndex = 0 , |
||
const Size | nettingSetEneIndex = 1 , |
||
const Size | cptySpIndex = 0 , |
||
const bool | flipViewXVA = false , |
||
const string & | flipViewBorrowingCurvePostfix = "_BORROW" , |
||
const string & | flipViewLendingCurvePostfix = "_LEND" |
||
) |
portfolio | Driving portfolio consistent with the cube below |
market | Today's market |
configuration | Market configuration to be used |
baseCurrency | Base currency amounts will be converted to |
dvaName | Own party name for DVA calculations |
fvaBorrowingCurve | FVA borrowing curve |
fvaLendingCurve | FVA lending curve |
applyDynamicInitialMargin | Deactivate initial margin calculation even if active at netting set level |
dimCalculator | Dynamic Initial Margin calculator |
tradeExposureCube | Storage ofdefault NPVs, close-out NPVs, cash flows at trade level |
nettingSetExposureCube | Storage of sensitivity vectors at netting set level |
cptyCube | Storage for counterparty survival probabilities |
tradeEpeIndex | Index of the trade EPE storage in the internal exposure cube |
tradeEneIndex | Index of the trade ENE storage in the internal exposure cube |
nettingSetEpeIndex | Index of the netting set EPE storage in the internal exposure cube |
nettingSetEneIndex | Index of the netting set ENE storage in the internal exposure cube |
cptySpIndex | Index of the counterparty survivalprobability storage |
flipViewXVA | Flag to indicate flipped xva calculation |
flipViewBorrowingCurvePostfix | Postfix for flipView borrowing curves for fva |
flipViewLendingCurvePostfix | Postfix for flipView lending curves for fva |
Definition at line 34 of file dynamiccreditxvacalculator.cpp.
|
overridevirtual |
Implements ValueAdjustmentCalculator.
Definition at line 71 of file dynamiccreditxvacalculator.cpp.
|
overridevirtual |
Implements ValueAdjustmentCalculator.
Definition at line 83 of file dynamiccreditxvacalculator.cpp.
|
overridevirtual |
Implements ValueAdjustmentCalculator.
Definition at line 95 of file dynamiccreditxvacalculator.cpp.
|
overridevirtual |
Implements ValueAdjustmentCalculator.
Definition at line 107 of file dynamiccreditxvacalculator.cpp.
|
overridevirtual |
Implements ValueAdjustmentCalculator.
Definition at line 119 of file dynamiccreditxvacalculator.cpp.
|
overridevirtual |
Implements ValueAdjustmentCalculator.
Definition at line 132 of file dynamiccreditxvacalculator.cpp.
|
overridevirtual |
Implements ValueAdjustmentCalculator.
Definition at line 145 of file dynamiccreditxvacalculator.cpp.
|
overridevirtual |
Implements ValueAdjustmentCalculator.
Definition at line 158 of file dynamiccreditxvacalculator.cpp.
|
overridevirtual |
Implements ValueAdjustmentCalculator.
Definition at line 171 of file dynamiccreditxvacalculator.cpp.
|
protected |
Definition at line 103 of file dynamiccreditxvacalculator.hpp.
|
protected |
Definition at line 104 of file dynamiccreditxvacalculator.hpp.