Logo
Reference manual - version orea_version
IMScheduleCalculator Class Reference

#include <orea/simm/imschedulecalculator.hpp>

Classes

struct  IMScheduleTradeData

Public Types

typedef CrifRecord::ProductClass ProductClass
typedef CrifRecord::RiskType RiskType
typedef CrifRecord::Regulation Regulation
typedef SimmConfiguration::SimmSide SimmSide

Public Member Functions

 IMScheduleCalculator (const QuantLib::ext::shared_ptr< Crif > &crif, const std::string &calculationCcy="USD", const QuantLib::ext::shared_ptr< ore::data::Market > market=nullptr, const bool determineWinningRegulations=true, const bool enforceIMRegulations=false, const bool quiet=false, const std::map< SimmSide, std::set< NettingSetDetails > > &hasSEC=std::map< SimmSide, std::set< NettingSetDetails > >())
 Construct the IMScheduleCalculator from a container of netted CRIF records.
const std::map< SimmSide, std::set< std::string > > finalTradeIds () const
 Give back the set of portfolio IDs and trade IDs for which we have IM results.
const CrifRecord::RegulationwinningRegulations (const SimmSide &side, const ore::data::NettingSetDetails &nettingSetDetails) const
 Return the winning regulation for each portfolioId.
const std::map< ore::data::NettingSetDetails, CrifRecord::Regulation > & winningRegulations (const SimmSide &side) const
const std::map< SimmSide, std::map< ore::data::NettingSetDetails, CrifRecord::Regulation > > & winningRegulations () const
const std::map< CrifRecord::Regulation, IMScheduleResults > & imScheduleSummaryResults (const SimmSide &side, const ore::data::NettingSetDetails &nsd) const
 Give back the IM Schedule results container for the given portfolioId and IM side.
const std::map< ore::data::NettingSetDetails, std::map< CrifRecord::Regulation, IMScheduleResults > > & imScheduleSummaryResults (const SimmSide &side) const
const std::map< SimmSide, std::map< ore::data::NettingSetDetails, std::map< CrifRecord::Regulation, IMScheduleResults > > > & imScheduleSummaryResults () const
const std::pair< CrifRecord::Regulation, IMScheduleResults > & finalImScheduleSummaryResults (const SimmSide &side, const ore::data::NettingSetDetails &nsd) const
const std::map< ore::data::NettingSetDetails, std::pair< CrifRecord::Regulation, IMScheduleResults > > & finalImScheduleSummaryResults (const SimmSide &side) const
const std::map< SimmSide, std::map< ore::data::NettingSetDetails, std::pair< CrifRecord::Regulation, IMScheduleResults > > > & finalImScheduleSummaryResults () const
const std::vector< IMScheduleTradeData > & imScheduleTradeResults (const std::string &tradeId) const
 Give back the IM Schedule results container for the given tradeId and IM side.
const std::map< std::string, std::vector< IMScheduleTradeData > > & imScheduleTradeResults () const
const IMScheduleTradeDatafinalImScheduleTradeResults (const std::string &tradeId) const
const std::map< std::string, IMScheduleTradeData > & finalImScheduleTradeResults () const
const std::string & calculationCurrency () const
 Return the calculator's calculation currency.
void populateFinalResults (const std::map< SimmSide, std::map< ore::data::NettingSetDetails, CrifRecord::Regulation > > &winningRegulations)
const ore::data::Timer & timer () const

Static Public Member Functions

static const IMScheduleLabel label (const ProductClass &productClass, const QuantLib::Real &maturity)
static const std::string labelString (const IMScheduleLabel &label)

Detailed Description

A class to calculate Schedule IM given a set of aggregated CRIF results for one or more portfolios.