31#include <ql/indexes/interestrateindex.hpp>
32#include <ql/processes/blackscholesprocess.hpp>
33#include <ql/timegrid.hpp>
64 ModelImpl(
const DayCounter& dayCounter,
const Size
size,
const std::vector<std::string>& currencies,
65 const std::vector<std::pair<std::string, QuantLib::ext::shared_ptr<InterestRateIndex>>>& irIndices,
66 const std::vector<std::pair<std::string, QuantLib::ext::shared_ptr<ZeroInflationIndex>>>& infIndices,
67 const std::vector<std::string>& indices,
const std::vector<std::string>& indexCurrencies,
68 const std::set<Date>& simulationDates,
73 Real
dt(
const Date& d1,
const Date& d2)
const override {
return dayCounter_.yearFraction(d1, d2); }
75 const std::string& currency)
const override;
76 RandomVariable discount(
const Date& obsdate,
const Date& paydate,
const std::string& currency)
const override;
77 RandomVariable eval(
const std::string& index,
const Date& obsdate,
const Date& fwddate,
78 const bool returnMissingMissingAsNull =
false,
79 const bool ignoreTodaysFixing =
false)
const override;
80 Real
fxSpotT0(
const std::string& forCcy,
const std::string& domCcy)
const override;
112 std::vector<std::pair<IndexInfo, QuantLib::ext::shared_ptr<InterestRateIndex>>>
irIndices_;
113 std::vector<std::pair<IndexInfo, QuantLib::ext::shared_ptr<ZeroInflationIndex>>>
infIndices_;
119 const QuantLib::ext::shared_ptr<ZeroInflationIndex>& infIndex,
const Size indexNo,
120 const Date& limDate,
const Date& obsdate,
const Date& fwddate,
121 const Date& baseDate)
const;
virtual Size size() const
virtual RandomVariable getInfIndexValue(const Size indexNo, const Date &d, const Date &fwd) const =0
const std::vector< std::string > currencies_
Real extractT0Result(const RandomVariable &value) const override
Real fxSpotT0(const std::string &forCcy, const std::string &domCcy) const override
RandomVariable barrierProbability(const std::string &index, const Date &obsdate1, const Date &obsdate2, const RandomVariable &barrier, const bool above) const override
std::vector< std::pair< IndexInfo, QuantLib::ext::shared_ptr< ZeroInflationIndex > > > infIndices_
RandomVariable discount(const Date &obsdate, const Date &paydate, const std::string ¤cy) const override
virtual RandomVariable getFutureBarrierProb(const std::string &index, const Date &obsdate1, const Date &obsdate2, const RandomVariable &barrier, const bool above) const =0
const std::string & baseCcy() const override
std::vector< IndexInfo > indices_
Real dt(const Date &d1, const Date &d2) const override
RandomVariable getInflationIndexFixing(const bool returnMissingFixingAsNull, const std::string &indexInput, const QuantLib::ext::shared_ptr< ZeroInflationIndex > &infIndex, const Size indexNo, const Date &limDate, const Date &obsdate, const Date &fwddate, const Date &baseDate) const
virtual Real getFxSpot(const Size idx) const =0
virtual RandomVariable getDiscount(const Size idx, const Date &s, const Date &t) const =0
RandomVariable eval(const std::string &index, const Date &obsdate, const Date &fwddate, const bool returnMissingMissingAsNull=false, const bool ignoreTodaysFixing=false) const override
const DayCounter dayCounter_
std::vector< std::pair< IndexInfo, QuantLib::ext::shared_ptr< InterestRateIndex > > > irIndices_
virtual RandomVariable getIndexValue(const Size indexNo, const Date &d, const Date &fwd=Null< Date >()) const =0
RandomVariable pay(const RandomVariable &amount, const Date &obsdate, const Date &paydate, const std::string ¤cy) const override
virtual RandomVariable getNumeraire(const Date &s) const =0
const std::vector< std::string > indexCurrencies_
const IborFallbackConfig iborFallbackConfig_
const std::set< Date > simulationDates_
virtual RandomVariable getIrIndexValue(const Size indexNo, const Date &d, const Date &fwd=Null< Date >()) const =0
SafeStack< ValueType > value
interface for model against which a script can be run
Serializable Credit Default Swap.