Exposure allocator base class. More...
#include <orea/aggregation/exposureallocator.hpp>
Public Types | |
enum class | AllocationMethod { None , Marginal , RelativeFairValueGross , RelativeFairValueNet , RelativeXVA } |
Public Member Functions | |
ExposureAllocator (const QuantLib::ext::shared_ptr< Portfolio > &portfolio, const QuantLib::ext::shared_ptr< NPVCube > &tradeExposureCube, const QuantLib::ext::shared_ptr< NPVCube > &nettedExposureCube, const Size allocatedTradeEpeIndex=2, const Size allocatedTradeEneIndex=3, const Size tradeEpeIndex=0, const Size tradeEneIndex=1, const Size nettingSetEpeIndex=1, const Size nettingSetEneIndex=2) | |
virtual | ~ExposureAllocator () |
const QuantLib::ext::shared_ptr< NPVCube > & | exposureCube () |
virtual void | build () |
Compute exposures along all paths and fill result structures. More... | |
Protected Member Functions | |
virtual Real | calculateAllocatedEpe (const string &tid, const string &nid, const Date &date, const Size sample)=0 |
virtual Real | calculateAllocatedEne (const string &tid, const string &nid, const Date &date, const Size sample)=0 |
Protected Attributes | |
QuantLib::ext::shared_ptr< Portfolio > | portfolio_ |
QuantLib::ext::shared_ptr< NPVCube > | tradeExposureCube_ |
QuantLib::ext::shared_ptr< NPVCube > | nettedExposureCube_ |
Size | tradeEpeIndex_ |
Size | tradeEneIndex_ |
Size | allocatedTradeEpeIndex_ |
Size | allocatedTradeEneIndex_ |
Size | nettingSetEpeIndex_ |
Size | nettingSetEneIndex_ |
map< string, Real > | nettingSetValueToday_ |
map< string, Real > | nettingSetPositiveValueToday_ |
map< string, Real > | nettingSetNegativeValueToday_ |
Exposure allocator base class.
Derived classes implement a constructor with the relevant additional input data and a build function that performs the XVA calculations for all netting sets and along all paths.
Definition at line 42 of file exposureallocator.hpp.
|
strong |
Enumerator | |
---|---|
None | |
Marginal | |
RelativeFairValueGross | |
RelativeFairValueNet | |
RelativeXVA |
Definition at line 45 of file exposureallocator.hpp.
ExposureAllocator | ( | const QuantLib::ext::shared_ptr< Portfolio > & | portfolio, |
const QuantLib::ext::shared_ptr< NPVCube > & | tradeExposureCube, | ||
const QuantLib::ext::shared_ptr< NPVCube > & | nettedExposureCube, | ||
const Size | allocatedTradeEpeIndex = 2 , |
||
const Size | allocatedTradeEneIndex = 3 , |
||
const Size | tradeEpeIndex = 0 , |
||
const Size | tradeEneIndex = 1 , |
||
const Size | nettingSetEpeIndex = 1 , |
||
const Size | nettingSetEneIndex = 2 |
||
) |
Definition at line 30 of file exposureallocator.cpp.
|
virtual |
Definition at line 61 of file exposureallocator.hpp.
const QuantLib::ext::shared_ptr< NPVCube > & exposureCube | ( | ) |
Definition at line 62 of file exposureallocator.hpp.
|
virtual |
Compute exposures along all paths and fill result structures.
Definition at line 43 of file exposureallocator.cpp.
|
protectedpure virtual |
Implemented in RelativeFairValueNetExposureAllocator, RelativeFairValueGrossExposureAllocator, RelativeXvaExposureAllocator, and NoneExposureAllocator.
|
protectedpure virtual |
Implemented in RelativeFairValueNetExposureAllocator, RelativeFairValueGrossExposureAllocator, RelativeXvaExposureAllocator, and NoneExposureAllocator.
|
protected |
Definition at line 70 of file exposureallocator.hpp.
|
protected |
Definition at line 71 of file exposureallocator.hpp.
|
protected |
Definition at line 72 of file exposureallocator.hpp.
|
protected |
Definition at line 73 of file exposureallocator.hpp.
|
protected |
Definition at line 74 of file exposureallocator.hpp.
|
protected |
Definition at line 75 of file exposureallocator.hpp.
|
protected |
Definition at line 76 of file exposureallocator.hpp.
|
protected |
Definition at line 77 of file exposureallocator.hpp.
|
protected |
Definition at line 78 of file exposureallocator.hpp.
|
protected |
Definition at line 79 of file exposureallocator.hpp.
|
protected |
Definition at line 79 of file exposureallocator.hpp.
|
protected |
Definition at line 79 of file exposureallocator.hpp.