Logo
Reference manual - version orea_version
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
IMScheduleCalculator Class Reference

#include <orea/simm/imschedulecalculator.hpp>

Classes

struct  IMScheduleTradeData
 

Public Types

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

Public Member Functions

 IMScheduleCalculator (const 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 >>(), const std::map< SimmSide, std::set< NettingSetDetails >> &hasCFTC=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 std::string & winningRegulations (const SimmSide &side, const ore::data::NettingSetDetails &nettingSetDetails) const
 Return the winning regulation for each portfolioId.
 
const std::map< ore::data::NettingSetDetails, string > & winningRegulations (const SimmSide &side) const
 
const std::map< SimmSide, std::map< ore::data::NettingSetDetails, string > > & winningRegulations () const
 
const std::map< std::string, 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< std::string, IMScheduleResults > > & imScheduleSummaryResults (const SimmSide &side) const
 
const std::map< SimmSide, std::map< ore::data::NettingSetDetails, std::map< std::string, IMScheduleResults > > > & imScheduleSummaryResults () const
 
const std::pair< std::string, IMScheduleResults > & finalImScheduleSummaryResults (const SimmSide &side, const ore::data::NettingSetDetails &nsd) const
 
const std::map< ore::data::NettingSetDetails, std::pair< std::string, IMScheduleResults > > & finalImScheduleSummaryResults (const SimmSide &side) const
 
const std::map< SimmSide, std::map< ore::data::NettingSetDetails, std::pair< std::string, 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, std::string >> &winningRegulations)
 

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.