35#include <boost/graph/adjacency_list.hpp>
36#include <boost/graph/directed_graph.hpp>
37#include <boost/graph/graph_traits.hpp>
38#include <ql/shared_ptr.hpp>
39#include <boost/enable_shared_from_this.hpp>
46class ReferenceDataManager;
50class GenericYieldVolCurve;
52class CapFloorVolCurve;
55class BaseCorrelationCurve;
57class InflationCapFloorVolCurve;
62class CommodityVolCurve;
63class CorrelationCurve;
86 const QuantLib::ext::shared_ptr<TodaysMarketParameters>& params,
88 const QuantLib::ext::shared_ptr<Loader>& loader,
90 const QuantLib::ext::shared_ptr<CurveConfigurations>&
curveConfigs,
92 const bool continueOnError =
false,
94 const bool loadFixings =
true,
96 const bool lazyBuild =
false,
98 const QuantLib::ext::shared_ptr<ReferenceDataManager>& referenceData =
nullptr,
100 const bool preserveQuoteLinkage =
false,
104 const bool buildCalibrationInfo =
true,
113 const bool forceBuild =
false)
const override;
117 const QuantLib::ext::shared_ptr<TodaysMarketParameters>
params_;
118 const QuantLib::ext::shared_ptr<Loader>
loader_;
134 using Graph = boost::directed_graph<Node>;
135 using IndexMap = boost::property_map<Graph, boost::vertex_index_t>::type;
136 using Vertex = boost::graph_traits<Graph>::vertex_descriptor;
143 void buildNode(
const std::string& configuration,
Node& node)
const;
152 mutable map<string, std::pair<QuantLib::ext::shared_ptr<CapFloorVolCurve>, std::pair<std::string, QuantLib::Period>>>
static IborFallbackConfig defaultConfig()
bool handlePseudoCurrencies() const
map< string, QuantLib::ext::shared_ptr< GenericYieldVolCurve > > requiredGenericYieldVolCurves_
void initialise(const Date &asof)
map< string, std::pair< QuantLib::ext::shared_ptr< CapFloorVolCurve >, std::pair< std::string, QuantLib::Period > > > requiredCapFloorVolCurves_
const bool preserveQuoteLinkage_
const bool buildCalibrationInfo_
void require(const MarketObject o, const string &name, const string &configuration, const bool forceBuild=false) const override
map< string, QuantLib::ext::shared_ptr< DefaultCurve > > requiredDefaultCurves_
boost::graph_traits< Graph >::vertex_iterator VertexIterator
const bool continueOnError_
const QuantLib::ext::shared_ptr< const CurveConfigurations > curveConfigs_
boost::property_map< Graph, boost::vertex_index_t >::type IndexMap
QuantLib::ext::shared_ptr< TodaysMarketCalibrationInfo > calibrationInfo() const
map< string, QuantLib::ext::shared_ptr< FXVolCurve > > requiredFxVolCurves_
const QuantLib::ext::shared_ptr< TodaysMarketParameters > params_
map< string, QuantLib::ext::shared_ptr< CommodityCurve > > requiredCommodityCurves_
const QuantLib::ext::shared_ptr< ReferenceDataManager > referenceData_
map< string, map< string, QuantLib::ext::shared_ptr< SwapIndex > > > requiredSwapIndices_
map< string, QuantLib::ext::shared_ptr< CommodityVolCurve > > requiredCommodityVolCurves_
const QuantLib::ext::shared_ptr< Loader > loader_
map< string, QuantLib::ext::shared_ptr< InflationCurve > > requiredInflationCurves_
map< string, QuantLib::ext::shared_ptr< BaseCorrelationCurve > > requiredBaseCorrelationCurves_
map< string, QuantLib::ext::shared_ptr< CorrelationCurve > > requiredCorrelationCurves_
map< string, QuantLib::ext::shared_ptr< EquityCurve > > requiredEquityCurves_
boost::directed_graph< Node > Graph
std::map< std::string, Graph > dependencies_
map< string, QuantLib::ext::shared_ptr< YieldCurve > > requiredYieldCurves_
map< string, QuantLib::ext::shared_ptr< CDSVolCurve > > requiredCDSVolCurves_
boost::graph_traits< Graph >::vertex_descriptor Vertex
map< string, QuantLib::ext::shared_ptr< Security > > requiredSecurities_
const IborFallbackConfig iborFallbackConfig_
map< string, QuantLib::ext::shared_ptr< InflationCapFloorVolCurve > > requiredInflationCapFloorVolCurves_
QuantLib::ext::shared_ptr< TodaysMarketCalibrationInfo > calibrationInfo_
void buildNode(const std::string &configuration, Node &node) const
map< string, QuantLib::ext::shared_ptr< EquityVolCurve > > requiredEquityVolCurves_
Currency and instrument specific conventions/defaults.
Curve configuration repository.
Curve requirements specification.
DependencyGraph class to establish build order of marketObjects and its dependency.
Market Datum Loader Interface.
An implementation of the Market class that stores the required objects in maps.
std::ostream & operator<<(std::ostream &out, EquityReturnType t)
Serializable Credit Default Swap.
vector< string > curveConfigs
a container holding information on calibration results during the t0 market build
A class to hold todays market configuration(s)