27#ifndef quantlib_index_hpp
28#define quantlib_index_hpp
53 virtual std::string
name()
const = 0;
64 virtual Real fixing(
const Date& fixingDate,
bool forecastTodaysFixing =
false)
const = 0;
99 template <
class DateIterator,
class ValueIterator>
102 ValueIterator vBegin,
103 bool forceOverwrite =
false) {
106 name(), dBegin, dEnd, vBegin, forceOverwrite,
purely virtual base class for indexes
virtual Calendar fixingCalendar() const =0
returns the calendar defining valid fixing dates
ext::shared_ptr< Observable > notifier() const
virtual Real fixing(const Date &fixingDate, bool forecastTodaysFixing=false) const =0
returns the fixing at the given date
bool hasHistoricalFixing(const Date &fixingDate) const
returns whether a historical fixing was stored for the given date
void clearFixings()
clears all stored historical fixings
virtual bool allowsNativeFixings()
check if index allows for native fixings.
const TimeSeries< Real > & timeSeries() const
returns the fixing TimeSeries
virtual void addFixing(const Date &fixingDate, Real fixing, bool forceOverwrite=false)
void addFixings(const TimeSeries< Real > &t, bool forceOverwrite=false)
stores historical fixings from a TimeSeries
virtual std::string name() const =0
Returns the name of the index.
virtual Real pastFixing(const Date &fixingDate) const
returns a past fixing at the given date
virtual bool isValidFixingDate(const Date &fixingDate) const =0
returns TRUE if the fixing date is a valid one
void addFixings(DateIterator dBegin, DateIterator dEnd, ValueIterator vBegin, bool forceOverwrite=false)
stores historical fixings at the given dates
~Index() override=default
void checkNativeFixingsAllowed()
check if index allows for native fixings
const TimeSeries< Real > & getHistory(const std::string &name) const
bool hasHistoricalFixing(const std::string &name, const Date &fixingDate) const
ext::shared_ptr< Observable > notifier(const std::string &name) const
void addFixings(const std::string &name, DateIterator dBegin, DateIterator dEnd, ValueIterator vBegin, bool forceOverwrite=false, const std::function< bool(const Date &d)> &isValidFixingDate={})
add fixings
Object that notifies its changes to a set of observers.
Object that gets notified when a given observable changes.
static IndexManager & instance()
access to the unique instance
Container for historical data.
floating-point comparisons
#define QL_REQUIRE(condition, message)
throw an error if the given pre-condition is not verified
global repository for past index fixings
observer/observable pattern
#define QL_DEPRECATED_DISABLE_WARNING
#define QL_DEPRECATED_ENABLE_WARNING