Logo
Reference manual - version orea_version
SaCvaSensitivityLoader Class Reference

#include <orea/engine/sacvasensitivityloader.hpp>

Public Member Functions

 SaCvaSensitivityLoader ()
virtual ~SaCvaSensitivityLoader ()
virtual void add (const SaCvaSensitivityRecord &cvaSensitivityRecord, bool aggregate)
 Add a single CvaSensitivity record.
void load (const std::string &fileName, char eol='\n', char delim='\t', char quoteChar='\0')
void loadRawSensi (const CvaSensitivityRecord &cvaSensi, const std::string &baseCurrency, const QuantLib::ext::shared_ptr< ore::data::CounterpartyManager > &counterpartyManager=nullptr)
void loadFromRawSensis (const QuantLib::ext::shared_ptr< CvaSensitivityCubeStream > sensiStream, const std::string &baseCurrency, const QuantLib::ext::shared_ptr< ore::data::CounterpartyManager > &counterpartyManager=nullptr)
void loadFromRawSensis (const QuantLib::ext::shared_ptr< ParSensitivityCubeStream > parSensiStream, const std::string &baseCurrency, const QuantLib::ext::shared_ptr< SensitivityScenarioData > &scenarioData, const QuantLib::ext::shared_ptr< ore::data::CounterpartyManager > &counterpartyManager=nullptr)
void loadFromRawSensis (std::vector< CvaSensitivityRecord > cvaSensis, const std::string &baseCurrency, const QuantLib::ext::shared_ptr< ore::data::CounterpartyManager > &counterpartyManager=nullptr)
const SaCvaNetSensitivities & netRecords () const
 Return the netted CvaSensitivity records for use in a CVA calculation.
const std::set< std::string > & nettingSetIds () const
 Give back the set of portfolio IDs that have been loaded.
void clear ()
 Reset loader to initial state.
const std::vector< CvaSensitivityRecord > & cvaSensitivityRecords () const

Static Public Attributes

static std::map< QuantLib::Size, std::string > expectedHeaders

Protected Member Functions

virtual void processHeader (const std::vector< std::string > &headers)
 Process the elements of a header line of a CvaSensitivity file.
virtual bool process (const std::vector< std::string > &entries, QuantLib::Size maxIndex, QuantLib::Size currentLine)

Protected Attributes

SaCvaNetSensitivities netRecords_
 Netted CvaSensitivity records that can subsequently be used in a SIMM calculation.
std::set< std::string > nettingSetIds_
 Set of portfolio IDs that have been loaded.
std::map< QuantLib::Size, QuantLib::Size > columnIndex_
std::vector< CvaSensitivityRecordcvaSensitivityRecords_

Detailed Description

A class for loading CvaSensitivity records. The records are aggregated and stored in a SaCvaNetSensitivities object so that they can later be used in a CVA capital charge calculation

Constructor & Destructor Documentation

◆ SaCvaSensitivityLoader()

SaCvaSensitivityLoader ( )

Constructor We set the trade ID to an empty string if we are going to be netting at portfolio level. This is the default. To override this the flag keepTradeId may be set to true.

◆ ~SaCvaSensitivityLoader()

virtual ~SaCvaSensitivityLoader ( )
virtual

Destructor

Member Function Documentation

◆ load()

void load ( const std::string & fileName,
char eol = '\n',
char delim = '\t',
char quoteChar = '\0' )

Load SaCvaSensitivity records from a CvaSensitivity file.

◆ loadRawSensi()

void loadRawSensi ( const CvaSensitivityRecord & cvaSensi,
const std::string & baseCurrency,
const QuantLib::ext::shared_ptr< ore::data::CounterpartyManager > & counterpartyManager = nullptr )

Load record from CvaSensi

◆ loadFromRawSensis() [1/3]

void loadFromRawSensis ( const QuantLib::ext::shared_ptr< CvaSensitivityCubeStream > sensiStream,
const std::string & baseCurrency,
const QuantLib::ext::shared_ptr< ore::data::CounterpartyManager > & counterpartyManager = nullptr )

Load SaCvaSensitity records from raw Cva Sensi stream

◆ loadFromRawSensis() [2/3]

void loadFromRawSensis ( const QuantLib::ext::shared_ptr< ParSensitivityCubeStream > parSensiStream,
const std::string & baseCurrency,
const QuantLib::ext::shared_ptr< SensitivityScenarioData > & scenarioData,
const QuantLib::ext::shared_ptr< ore::data::CounterpartyManager > & counterpartyManager = nullptr )

Load SaCvaSensitity records from raw Par Sensitivity cube stream

◆ loadFromRawSensis() [3/3]

void loadFromRawSensis ( std::vector< CvaSensitivityRecord > cvaSensis,
const std::string & baseCurrency,
const QuantLib::ext::shared_ptr< ore::data::CounterpartyManager > & counterpartyManager = nullptr )

Load SaCvaSensitity records from vector of Cva Sensis

◆ process()

virtual bool process ( const std::vector< std::string > & entries,
QuantLib::Size maxIndex,
QuantLib::Size currentLine )
protectedvirtual

Process a line of a CvaSensitivity file and return true if valid line or false if an invalid line

Member Data Documentation

◆ columnIndex_

std::map<QuantLib::Size, QuantLib::Size> columnIndex_
protected

Internal map from known index of CvaSensitivity record member to file column For example, give trade ID an index of 0 and find the column index of trade ID in the CvaSensitivity file e.g. n. The map entry would be [0, n]