24#ifndef quantlib_commodity_index_hpp
25#define quantlib_commodity_index_hpp
44 ext::shared_ptr<ExchangeContracts> exchangeContracts,
48 std::string
name()
const override;
52 bool forecastTodaysFixing =
false)
const override;
63 const ext::shared_ptr<CommodityCurve>&
forwardCurve()
const;
74 [[deprecated(
"Use fixingCalendar instead")]]
82 [[deprecated(
"Use fixing instead")]]
90 [[deprecated(
"Use addFixing instead")]]
98 [[deprecated(
"Use addFixings instead")]]
100 for (
auto quote :
quotes) {
108 [[deprecated(
"Use clearFixings instead")]]
116 [[deprecated(
"Use isValidFixingDate instead")]]
124 [[deprecated(
"Use timeSeries instead")]]
186 inline const ext::shared_ptr<CommodityCurve>&
196 }
catch (
const std::exception& e) {
197 QL_FAIL(
"error fetching forward price for index " <<
name_
198 <<
": " << e.what());
bool isBusinessDay(const Date &d) const
base class for commodity indexes
const TimeSeries< Real > & quotes() const
UnitOfMeasure unitOfMeasure_
Date lastQuoteDate() const
Calendar fixingCalendar() const override
returns the calendar defining valid fixing dates
Real forwardCurveUomConversionFactor_
const Calendar & calendar() const
const Currency & currency() const
const ext::shared_ptr< CommodityCurve > & forwardCurve() const
ext::shared_ptr< ExchangeContracts > exchangeContracts_
void addQuote(const Date "eDate, Real quote)
CommodityType commodityType_
bool isValidQuoteDate(const Date "eDate) const
std::string name() const override
Returns the name of the index.
Real price(const Date &date)
bool isValidFixingDate(const Date &fixingDate) const override
returns TRUE if the fixing date is a valid one
void addQuotes(const std::map< Date, Real > "es)
const CommodityType & commodityType() const
Real forwardPrice(const Date &date) const
ext::shared_ptr< CommodityCurve > forwardCurve_
bool forwardCurveEmpty() const
const UnitOfMeasure & unitOfMeasure() const
friend std::ostream & operator<<(std::ostream &, const CommodityIndex &)
Real fixing(const Date &fixingDate, bool forecastTodaysFixing=false) const override
returns the fixing at the given date
purely virtual base class for indexes
void clearFixings()
clears all stored historical fixings
const TimeSeries< Real > & timeSeries() const
returns the fixing TimeSeries
virtual void addFixing(const Date &fixingDate, Real fixing, bool forceOverwrite=false)
virtual Real pastFixing(const Date &fixingDate) const
returns a past fixing at the given date
Container for historical data.
bool empty() const
returns whether the series contains any data
Date lastDate() const
returns the last date for which a historical datum exists
Unit of measure specification
#define QL_FAIL(message)
throw an error (possibly with file and line information)
QL_INTEGER Integer
integer number
virtual base class for indexes
bool operator==(const Currency &c1, const Currency &c2)