32 const ext::shared_ptr<BatesModel>& model,
39 tGrid_(tGrid), xGrid_(xGrid),
40 vGrid_(vGrid), dampingSteps_(dampingSteps),
41 schemeDesc_(schemeDesc) {}
44 const ext::shared_ptr<BatesModel>& model,
52 dividends_(
std::move(dividends)),
53 tGrid_(tGrid), xGrid_(xGrid),
54 vGrid_(vGrid), dampingSteps_(dampingSteps),
55 schemeDesc_(schemeDesc) {}
69 const ext::shared_ptr<BatesProcess> process =
70 ext::dynamic_pointer_cast<BatesProcess>(
model_->process());
72 ext::shared_ptr<FdmBatesSolver> solver(
76 const Real v0 = process->v0();
77 const Real spot = process->s0()->value();
Bates stochastic process, Heston process plus compound Poisson process plus log-normal jump diffusion...
Bates stochastic-volatility model.
void calculate() const override
DividendSchedule dividends_
FdBatesVanillaEngine(const ext::shared_ptr< BatesModel > &model, Size tGrid=100, Size xGrid=100, Size vGrid=50, Size dampingSteps=0, const FdmSchemeDesc &schemeDesc=FdmSchemeDesc::Hundsdorfer())
const FdmSchemeDesc schemeDesc_
Finite-differences Heston vanilla option engine.
FdmSolverDesc getSolverDesc(Real equityScaleFactor) const
PricingEngine::arguments * getArguments() const override
Base class for some pricing engine on a particular model.
Handle< BatesModel > model_
Shared handle to an observable.
const ext::shared_ptr< T > & currentLink() const
dereferencing
Vanilla option (no discrete dividends, no barriers) on a single asset.
Partial integro finite-differences Bates vanilla option engine.
Finite-differences Heston vanilla option engine.
std::size_t Size
size of a container
std::vector< ext::shared_ptr< Dividend > > DividendSchedule