26#ifndef quantlib_fd_heston_vanilla_engine_hpp
27#define quantlib_fd_heston_vanilla_engine_hpp
38 class FdmQuantoHelper;
49 VanillaOption::arguments,
50 VanillaOption::results> {
57 Size dampingSteps = 0,
59 ext::shared_ptr<LocalVolTermStructure> leverageFct = {},
60 Real mixingFactor = 1.0);
67 Size dampingSteps = 0,
69 ext::shared_ptr<LocalVolTermStructure> leverageFct = {},
70 Real mixingFactor = 1.0);
73 ext::shared_ptr<FdmQuantoHelper> quantoHelper,
77 Size dampingSteps = 0,
79 ext::shared_ptr<LocalVolTermStructure> leverageFct = {},
80 Real mixingFactor = 1.0);
84 ext::shared_ptr<FdmQuantoHelper> quantoHelper,
88 Size dampingSteps = 0,
90 ext::shared_ptr<LocalVolTermStructure> leverageFct = {},
91 Real mixingFactor = 1.0);
121 const ext::shared_ptr<FdmQuantoHelper>& quantoHelper);
133 ext::shared_ptr<LocalVolTermStructure>& leverageFct);
136 const std::vector<Date>& dividendDates,
137 const std::vector<Real>& dividendAmounts);
139 operator ext::shared_ptr<PricingEngine>()
const;
Finite-differences Heston vanilla option engine.
FdmSolverDesc getSolverDesc(Real equityScaleFactor) const
std::vector< Real > strikes_
std::vector< std::pair< VanillaOption::arguments, VanillaOption::results > > cachedArgs2results_
const ext::shared_ptr< FdmQuantoHelper > quantoHelper_
void calculate() const override
const ext::shared_ptr< LocalVolTermStructure > leverageFct_
DividendSchedule dividends_
void enableMultipleStrikesCaching(const std::vector< Real > &strikes)
const FdmSchemeDesc schemeDesc_
Base class for some pricing engine on a particular model.
ext::shared_ptr< HestonModel > hestonModel_
MakeFdHestonVanillaEngine & withDampingSteps(Size dampingSteps)
MakeFdHestonVanillaEngine & withQuantoHelper(const ext::shared_ptr< FdmQuantoHelper > &quantoHelper)
MakeFdHestonVanillaEngine & withTGrid(Size tGrid)
MakeFdHestonVanillaEngine & withCashDividends(const std::vector< Date > ÷ndDates, const std::vector< Real > ÷ndAmounts)
DividendSchedule dividends_
ext::shared_ptr< FdmQuantoHelper > quantoHelper_
MakeFdHestonVanillaEngine & withVGrid(Size vGrid)
ext::shared_ptr< FdmSchemeDesc > schemeDesc_
MakeFdHestonVanillaEngine & withFdmSchemeDesc(const FdmSchemeDesc &schemeDesc)
MakeFdHestonVanillaEngine & withLeverageFunction(ext::shared_ptr< LocalVolTermStructure > &leverageFct)
MakeFdHestonVanillaEngine & withXGrid(Size xGrid)
ext::shared_ptr< LocalVolTermStructure > leverageFct_
Generic option engine based on a model.
std::size_t Size
size of a container
Heston model for the stochastic volatility of an asset.
Local volatility term structure base class.
std::vector< ext::shared_ptr< Dividend > > DividendSchedule
static FdmSchemeDesc Hundsdorfer()
Vanilla option on a single asset.