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

Exposure allocator base class. More...

#include <orea/aggregation/exposureallocator.hpp>

+ Inheritance diagram for ExposureAllocator:

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)
 
const QuantLib::ext::shared_ptr< NPVCube > & exposureCube ()
 
virtual void build ()
 Compute exposures along all paths and fill result structures.
 

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< Portfolioportfolio_
 
QuantLib::ext::shared_ptr< NPVCubetradeExposureCube_
 
QuantLib::ext::shared_ptr< NPVCubenettedExposureCube_
 
Size tradeEpeIndex_
 
Size tradeEneIndex_
 
Size allocatedTradeEpeIndex_
 
Size allocatedTradeEneIndex_
 
Size nettingSetEpeIndex_
 
Size nettingSetEneIndex_
 
map< string, Real > nettingSetValueToday_
 
map< string, Real > nettingSetPositiveValueToday_
 
map< string, Real > nettingSetNegativeValueToday_
 

Detailed Description

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.