Logo
Reference manual - version ored_version
MarketImpl Class Reference

Market Implementation. More...

#include <ored/marketdata/marketimpl.hpp>

Inheritance diagram for MarketImpl:

Public Member Functions

 MarketImpl (const bool handlePseudoCurrencies)
Market interface
Date asofDate () const override
 Get the asof Date.
Handle< YieldTermStructure > yieldCurve (const YieldCurveType &type, const string &ccy, const string &configuration=Market::defaultConfiguration) const override
 Yield Curves.
Handle< YieldTermStructure > discountCurveImpl (const string &ccy, const string &configuration=Market::defaultConfiguration) const override
Handle< YieldTermStructure > yieldCurve (const string &name, const string &configuration=Market::defaultConfiguration) const override
Handle< IborIndex > iborIndex (const string &indexName, const string &configuration=Market::defaultConfiguration) const override
Handle< SwapIndex > swapIndex (const string &indexName, const string &configuration=Market::defaultConfiguration) const override
Handle< QuantLib::SwaptionVolatilityStructure > swaptionVol (const string &key, const string &configuration=Market::defaultConfiguration) const override
 Swaptions.
string shortSwapIndexBase (const string &key, const string &configuration=Market::defaultConfiguration) const override
string swapIndexBase (const string &key, const string &configuration=Market::defaultConfiguration) const override
Handle< QuantLib::SwaptionVolatilityStructure > yieldVol (const string &securityID, const string &configuration=Market::defaultConfiguration) const override
 Yield volatility.
QuantLib::Handle< QuantExt::FxIndex > fxIndexImpl (const string &fxIndex, const string &configuration=Market::defaultConfiguration) const override
 FX.
Handle< Quote > fxRateImpl (const string &ccypair, const string &configuration=Market::defaultConfiguration) const override
Handle< Quote > fxSpotImpl (const string &ccypair, const string &configuration=Market::defaultConfiguration) const override
Handle< BlackVolTermStructure > fxVolImpl (const string &ccypair, const string &configuration=Market::defaultConfiguration) const override
Handle< QuantExt::CreditCurve > defaultCurve (const string &, const string &configuration=Market::defaultConfiguration) const override
 Default Curves and Recovery Rates.
Handle< Quote > recoveryRate (const string &, const string &configuration=Market::defaultConfiguration) const override
Handle< QuantExt::CreditVolCurve > cdsVol (const string &name, const string &configuration=Market::defaultConfiguration) const override
 CDS volatilities.
Handle< QuantExt::BaseCorrelationTermStructure > baseCorrelation (const string &name, const string &configuration=Market::defaultConfiguration) const override
 Base correlation structures.
Handle< OptionletVolatilityStructure > capFloorVol (const string &key, const string &configuration=Market::defaultConfiguration) const override
 CapFloor volatilities.
std::pair< string, QuantLib::Period > capFloorVolIndexBase (const string &key, const string &configuration=Market::defaultConfiguration) const override
Handle< QuantExt::YoYOptionletVolatilitySurface > yoyCapFloorVol (const string &name, const string &configuration=Market::defaultConfiguration) const override
 YoY Inflation CapFloor volatilities.
virtual Handle< ZeroInflationIndex > zeroInflationIndex (const string &indexName, const string &configuration=Market::defaultConfiguration) const override
 Inflation Indexes.
virtual Handle< YoYInflationIndex > yoyInflationIndex (const string &indexName, const string &configuration=Market::defaultConfiguration) const override
virtual Handle< QuantLib::CPIVolatilitySurface > cpiInflationCapFloorVolatilitySurface (const string &indexName, const string &configuration=Market::defaultConfiguration) const override
 Inflation Cap Floor Volatility Surfaces.
Handle< Quote > equitySpot (const string &eqName, const string &configuration=Market::defaultConfiguration) const override
 Equity curves.
Handle< QuantExt::EquityIndex2 > equityCurve (const string &eqName, const string &configuration=Market::defaultConfiguration) const override
Handle< YieldTermStructure > equityDividendCurve (const string &eqName, const string &configuration=Market::defaultConfiguration) const override
Handle< BlackVolTermStructure > equityVol (const string &eqName, const string &configuration=Market::defaultConfiguration) const override
 Equity volatilities.
Handle< YieldTermStructure > equityForecastCurve (const string &eqName, const string &configuration=Market::defaultConfiguration) const override
 Equity forecasting curves.
Handle< Quote > securitySpread (const string &securityID, const string &configuration=Market::defaultConfiguration) const override
 Security Spreads.
Handle< Quote > conversionFactor (const string &, const string &configuration=Market::defaultConfiguration) const override
Handle< Quote > securityPrice (const string &, const string &configuration=Market::defaultConfiguration) const override
Handle< QuantExt::InflationIndexObserver > baseCpis (const string &index, const string &configuration=Market::defaultConfiguration) const
 Cpi Base Quotes.
QuantLib::Handle< QuantExt::PriceTermStructure > commodityPriceCurve (const string &commodityName, const string &configuration=Market::defaultConfiguration) const override
 Commodity curves.
QuantLib::Handle< QuantExt::CommodityIndex > commodityIndex (const std::string &commodityName, const std::string &configuration=Market::defaultConfiguration) const override
 Commodity index.
QuantLib::Handle< QuantLib::BlackVolTermStructure > commodityVolatility (const string &commodityName, const string &configuration=Market::defaultConfiguration) const override
 Commodity volatility.
Handle< QuantExt::CorrelationTermStructure > correlationCurve (const string &index1, const string &index2, const string &configuration=Market::defaultConfiguration) const override
 Correlation curves.
Conditional Prepayment Rates
QuantLib::Handle< Quote > cpr (const string &securityID, const string &configuration=Market::defaultConfiguration) const override
Public Member Functions inherited from Market
 Market (const bool handlePseudoCurrencies)
 Constructor.
virtual ~Market ()
 Destructor.
Handle< YieldTermStructure > discountCurve (const string &ccy, const string &configuration=Market::defaultConfiguration) const
QuantLib::Handle< QuantExt::FxIndex > fxIndex (const string &fxIndex, const string &configuration=Market::defaultConfiguration) const
Handle< Quote > fxRate (const string &ccypair, const string &configuration=Market::defaultConfiguration) const
Handle< Quote > fxSpot (const string &ccypair, const string &configuration=Market::defaultConfiguration) const
Handle< BlackVolTermStructure > fxVol (const string &ccypair, const string &configuration=Market::defaultConfiguration) const
string commodityCurveLookup (const string &pm) const
bool handlePseudoCurrencies () const

Disable copying

Date asof_
QuantLib::ext::shared_ptr< FXTriangulationfx_
map< tuple< string, YieldCurveType, string >, Handle< YieldTermStructure > > yieldCurves_
map< pair< string, string >, Handle< IborIndex > > iborIndices_
map< pair< string, string >, Handle< SwapIndex > > swapIndices_
map< pair< string, string >, Handle< QuantLib::SwaptionVolatilityStructure > > swaptionCurves_
map< pair< string, string >, pair< string, string > > swaptionIndexBases_
map< pair< string, string >, Handle< QuantLib::SwaptionVolatilityStructure > > yieldVolCurves_
map< pair< string, string >, Handle< BlackVolTermStructure > > fxVols_
map< pair< string, string >, Handle< QuantExt::CreditCurve > > defaultCurves_
map< pair< string, string >, Handle< QuantExt::CreditVolCurve > > cdsVols_
map< pair< string, string >, Handle< QuantExt::BaseCorrelationTermStructure > > baseCorrelations_
map< pair< string, string >, Handle< Quote > > recoveryRates_
map< pair< string, string >, Handle< OptionletVolatilityStructure > > capFloorCurves_
map< pair< string, string >, std::pair< string, QuantLib::Period > > capFloorIndexBase_
map< pair< string, string >, Handle< YoYOptionletVolatilitySurface > > yoyCapFloorVolSurfaces_
map< pair< string, string >, Handle< ZeroInflationIndex > > zeroInflationIndices_
map< pair< string, string >, Handle< YoYInflationIndex > > yoyInflationIndices_
map< pair< string, string >, Handle< QuantLib::CPIVolatilitySurface > > cpiInflationCapFloorVolatilitySurfaces_
map< pair< string, string >, Handle< Quote > > equitySpots_
map< pair< string, string >, Handle< BlackVolTermStructure > > equityVols_
map< pair< string, string >, Handle< Quote > > securitySpreads_
map< pair< string, string >, Handle< Quote > > conversionFactors_
map< pair< string, string >, Handle< Quote > > securityPrices_
map< pair< string, string >, Handle< QuantExt::InflationIndexObserver > > baseCpis_
map< tuple< string, string, string >, Handle< QuantExt::CorrelationTermStructure > > correlationCurves_
map< pair< string, string >, QuantLib::Handle< QuantExt::CommodityIndex > > commodityIndices_
map< pair< string, string >, QuantLib::Handle< QuantLib::BlackVolTermStructure > > commodityVols_
map< pair< string, string >, QuantLib::Handle< QuantExt::EquityIndex2 > > equityCurves_
map< pair< string, string >, Handle< Quote > > cprs_
map< string, std::set< QuantLib::ext::shared_ptr< TermStructure > > > refreshTs_
 MarketImpl (const MarketImpl &)=delete
MarketImpl & operator= (const MarketImpl &)=delete
void refresh (const string &configuration=Market::defaultConfiguration) override
 Send an explicit update() call to all term structures.
virtual void require (const MarketObject o, const string &name, const string &configuration, const bool forceBuild=false) const
void addSwapIndex (const string &swapindex, const string &discountIndex, const string &configuration=Market::defaultConfiguration) const
 add a swap index to the market

Additional Inherited Members

static const string defaultConfiguration
 Default configuration label.
static const string inCcyConfiguration
 InCcy configuration label.
bool handlePseudoCurrencies_ = false

Detailed Description

Market Implementation.

The MarketImpl class differs from the Market base class in that it contains concrete maps of term structures, and it implements the interface.

Member Function Documentation

◆ asofDate()

Date asofDate ( ) const
overridevirtual

Get the asof Date.

Implements Market.

◆ yieldCurve() [1/2]

Handle< YieldTermStructure > yieldCurve ( const YieldCurveType & type,
const string & ccy,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Yield Curves.

Implements Market.

◆ discountCurveImpl()

Handle< YieldTermStructure > discountCurveImpl ( const string & ccy,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Implements Market.

◆ yieldCurve() [2/2]

Handle< YieldTermStructure > yieldCurve ( const string & name,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Implements Market.

◆ iborIndex()

Handle< IborIndex > iborIndex ( const string & indexName,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Implements Market.

◆ swapIndex()

Handle< SwapIndex > swapIndex ( const string & indexName,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Implements Market.

◆ swaptionVol()

Handle< QuantLib::SwaptionVolatilityStructure > swaptionVol ( const string & key,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Swaptions.

Implements Market.

◆ shortSwapIndexBase()

string shortSwapIndexBase ( const string & key,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Implements Market.

◆ swapIndexBase()

string swapIndexBase ( const string & key,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Implements Market.

◆ yieldVol()

Handle< QuantLib::SwaptionVolatilityStructure > yieldVol ( const string & securityID,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Yield volatility.

Implements Market.

◆ fxIndexImpl()

QuantLib::Handle< QuantExt::FxIndex > fxIndexImpl ( const string & fxIndex,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

FX.

Implements Market.

◆ fxRateImpl()

Handle< Quote > fxRateImpl ( const string & ccypair,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Implements Market.

◆ fxSpotImpl()

Handle< Quote > fxSpotImpl ( const string & ccypair,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Implements Market.

◆ fxVolImpl()

Handle< BlackVolTermStructure > fxVolImpl ( const string & ccypair,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Implements Market.

◆ defaultCurve()

Handle< QuantExt::CreditCurve > defaultCurve ( const string & ,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Default Curves and Recovery Rates.

Implements Market.

◆ recoveryRate()

Handle< Quote > recoveryRate ( const string & ,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Implements Market.

◆ cdsVol()

Handle< QuantExt::CreditVolCurve > cdsVol ( const string & name,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

CDS volatilities.

Implements Market.

◆ baseCorrelation()

Handle< QuantExt::BaseCorrelationTermStructure > baseCorrelation ( const string & name,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Base correlation structures.

Implements Market.

◆ capFloorVol()

Handle< OptionletVolatilityStructure > capFloorVol ( const string & key,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

CapFloor volatilities.

Implements Market.

◆ capFloorVolIndexBase()

std::pair< string, QuantLib::Period > capFloorVolIndexBase ( const string & key,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Implements Market.

◆ yoyCapFloorVol()

Handle< QuantExt::YoYOptionletVolatilitySurface > yoyCapFloorVol ( const string & name,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

YoY Inflation CapFloor volatilities.

Implements Market.

◆ zeroInflationIndex()

virtual Handle< ZeroInflationIndex > zeroInflationIndex ( const string & indexName,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Inflation Indexes.

Implements Market.

◆ yoyInflationIndex()

virtual Handle< YoYInflationIndex > yoyInflationIndex ( const string & indexName,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Implements Market.

◆ cpiInflationCapFloorVolatilitySurface()

virtual Handle< QuantLib::CPIVolatilitySurface > cpiInflationCapFloorVolatilitySurface ( const string & indexName,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Inflation Cap Floor Volatility Surfaces.

Implements Market.

◆ equitySpot()

Handle< Quote > equitySpot ( const string & eqName,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Equity curves.

Implements Market.

◆ equityCurve()

Handle< QuantExt::EquityIndex2 > equityCurve ( const string & eqName,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Implements Market.

◆ equityDividendCurve()

Handle< YieldTermStructure > equityDividendCurve ( const string & eqName,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Implements Market.

◆ equityVol()

Handle< BlackVolTermStructure > equityVol ( const string & eqName,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Equity volatilities.

Implements Market.

◆ equityForecastCurve()

Handle< YieldTermStructure > equityForecastCurve ( const string & eqName,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Equity forecasting curves.

Implements Market.

◆ securitySpread()

Handle< Quote > securitySpread ( const string & securityID,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Security Spreads.

Implements Market.

◆ conversionFactor()

Handle< Quote > conversionFactor ( const string & ,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Implements Market.

◆ securityPrice()

Handle< Quote > securityPrice ( const string & ,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Implements Market.

◆ commodityPriceCurve()

QuantLib::Handle< QuantExt::PriceTermStructure > commodityPriceCurve ( const string & commodityName,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Commodity curves.

Implements Market.

◆ commodityIndex()

QuantLib::Handle< QuantExt::CommodityIndex > commodityIndex ( const std::string & commodityName,
const std::string & configuration = Market::defaultConfiguration ) const
overridevirtual

Commodity index.

Implements Market.

◆ commodityVolatility()

QuantLib::Handle< QuantLib::BlackVolTermStructure > commodityVolatility ( const string & commodityName,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Commodity volatility.

Implements Market.

◆ correlationCurve()

Handle< QuantExt::CorrelationTermStructure > correlationCurve ( const string & index1,
const string & index2,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Correlation curves.

Implements Market.

◆ cpr()

QuantLib::Handle< Quote > cpr ( const string & securityID,
const string & configuration = Market::defaultConfiguration ) const
overridevirtual

Implements Market.

◆ refresh()

void refresh ( const string & configuration = Market::defaultConfiguration)
overridevirtual

Send an explicit update() call to all term structures.

Reimplemented from Market.

◆ require()

virtual void require ( const MarketObject o,
const string & name,
const string & configuration,
const bool forceBuild = false ) const
protectedvirtual

Require a market object, this can be used in derived classes to build objects lazily. If the method is not overwritten in a derived class, it is assumed that the class builds all market object upfront.

For FXVols and Correlations the require is not 'hard', e.g. both EURUSD and USDEUR might be required for FXVols, but only one of them is expected to be actually built (the other one is then constructed on the fly from the first one). Therefore no error should be thrown in the implementation of require(), if an object is ultimately not found, an appropriate error will be thrown from this class.

An object is required for a single configuration. If it can't be built for this configuration, it should be tried to be built for the "default" configuration instead, because this is used as a fallback.

Notice that correlation curves are required with '&' as a delimiter between the indexes.