Logo
Reference manual - version orea_version
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< Portfolio > portfolio_
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.