32#include <qle/models/lgmbackwardsolver.hpp>
34#include <ql/termstructures/volatility/swaption/swaptionvolstructure.hpp>
42 FdGaussianCam(
const Handle<CrossAssetModel>& cam,
const std::string& currency,
43 const Handle<YieldTermStructure>& curve,
44 const std::vector<std::pair<std::string, QuantLib::ext::shared_ptr<InterestRateIndex>>>& irIndices,
45 const std::set<Date>& simulationDates,
const Size stateGridPoints = 50,
46 const Size timeStepsPerYear = 24,
const Real mesherEpsilon = 1E-4,
53 const boost::optional<long>& memSlot,
const RandomVariable& addRegressor1,
56 const Date& end,
const Real spread,
const Real gearing,
const Integer lookback,
57 const Natural rateCutoff,
const Natural fixingDays,
const bool includeSpread,
58 const Real cap,
const Real floor,
const bool nakedOption,
59 const bool localCapFloor)
const override;
63 const std::string& currency)
const override;
77 Real
getFxSpot(
const Size idx)
const override;
80 Handle<CrossAssetModel>
cam_;
92 mutable std::unique_ptr<LgmBackwardSolver>
solver_;
additional interface for amc enabled models
std::set< Date > simulationDates_
RandomVariable getInfIndexValue(const Size indexNo, const Date &d, const Date &fwd=Null< Date >()) const override
void performCalculations() const override
void releaseMemory() override
RandomVariable getFutureBarrierProb(const std::string &index, const Date &obsdate1, const Date &obsdate2, const RandomVariable &barrier, const bool above) const override
RandomVariable getIrIndexValue(const Size indexNo, const Date &d, const Date &fwd=Null< Date >()) const override
RandomVariable npv(const RandomVariable &amount, const Date &obsdate, const Filter &filter, const boost::optional< long > &memSlot, const RandomVariable &addRegressor1, const RandomVariable &addRegressor2) const override
std::unique_ptr< LgmBackwardSolver > solver_
Real getFxSpot(const Size idx) const override
std::map< std::tuple< Size, Date, Date >, RandomVariable > irIndexValueCache_
const Date & referenceDate() const override
RandomVariable getNumeraire(const Date &s) const override
Handle< CrossAssetModel > cam_
Handle< YieldTermStructure > curve_
Real extractT0Result(const RandomVariable &result) const override
Type type() const override
std::set< Date > effectiveSimulationDates_
RandomVariable pay(const RandomVariable &amount, const Date &obsdate, const Date &paydate, const std::string ¤cy) const override
RandomVariable getDiscount(const Size idx, const Date &s, const Date &t) const override
RandomVariable getIndexValue(const Size indexNo, const Date &d, const Date &fwd=Null< Date >()) const override
IborFallbackConfig iborFallbackConfig_
RandomVariable fwdCompAvg(const bool isAvg, const std::string &index, const Date &obsdate, const Date &start, const Date &end, const Real spread, const Real gearing, const Integer lookback, const Natural rateCutoff, const Natural fixingDays, const bool includeSpread, const Real cap, const Real floor, const bool nakedOption, const bool localCapFloor) const override
static IborFallbackConfig defaultConfig()
SafeStack< Filter > filter
Build a cross asset model.
basis implementation for a script engine model
Serializable Credit Default Swap.