44 ext::shared_ptr<ExtOUWithJumpsProcess> process,
45 ext::shared_ptr<YieldTermStructure> rTS,
49 ext::shared_ptr<Shape> shape,
51 : process_(
std::move(process)),
rTS_(
std::move(rTS)), shape_(
std::move(shape)), tGrid_(tGrid),
52 xGrid_(xGrid), yGrid_(yGrid), schemeDesc_(schemeDesc) {}
57 =
rTS_->dayCounter().yearFraction(
rTS_->referenceDate(),
59 const ext::shared_ptr<StochasticProcess1D> ouProcess(
60 process_->getExtendedOrnsteinUhlenbeckProcess());
61 const ext::shared_ptr<Fdm1dMesher> xMesher(
64 const ext::shared_ptr<Fdm1dMesher> yMesher(
70 const ext::shared_ptr<FdmMesher> mesher(
74 const ext::shared_ptr<FdmInnerValueCalculator> calculator(
78 const ext::shared_ptr<FdmStepConditionComposite> conditions =
82 rTS_->referenceDate(),
rTS_->dayCounter());
89 calculator, maturity,
tGrid_, 0 };
91 const ext::shared_ptr<FdmExtOUJumpSolver> solver(
FdExtOUJumpVanillaEngine(ext::shared_ptr< ExtOUWithJumpsProcess > p, ext::shared_ptr< YieldTermStructure > rTS, Size tGrid=50, Size xGrid=200, Size yGrid=50, ext::shared_ptr< Shape > shape=ext::shared_ptr< Shape >(), const FdmSchemeDesc &schemeDesc=FdmSchemeDesc::Hundsdorfer())
void calculate() const override
const ext::shared_ptr< ExtOUWithJumpsProcess > process_
const ext::shared_ptr< Shape > shape_
const ext::shared_ptr< YieldTermStructure > rTS_
const FdmSchemeDesc schemeDesc_
static ext::shared_ptr< FdmStepConditionComposite > vanillaComposite(const DividendSchedule &schedule, const ext::shared_ptr< Exercise > &exercise, const ext::shared_ptr< FdmMesher > &mesher, const ext::shared_ptr< FdmInnerValueCalculator > &calculator, const Date &refDate, const DayCounter &dayCounter)
VanillaOption::results results_
VanillaOption::arguments arguments_
Shared handle to an observable.
ext::shared_ptr< Exercise > exercise
ext::shared_ptr< Payoff > payoff
Option exercise classes and payoff function.
mesher for a exponential jump mesher with high mean reversion rate and low jump intensity
extended Ornstein-Uhlenbeck process
Ornstein Uhlenbeck process plus exp jumps (Kluge Model)
Finite Differences Ornstein Uhlenbeck plus exponential jumps engine for vanilla options.
american step condition for multi dimensional problems
bermudan step condition for multi dimensional problems
const ext::shared_ptr< YieldTermStructure > rTS_
inner value calculator for the Ornstein Uhlenbeck plus exponential jumps model (Kluge Model)
memory layout of a fdm linear operator
FdmMesher which is a composite of Fdm1dMesher.
One-dimensional grid mesher.
composite of fdm step conditions
Real Time
continuous quantity with 1-year units
std::size_t Size
size of a container
std::vector< ext::shared_ptr< Dividend > > DividendSchedule
OperatorTraits< FdmLinearOp >::bc_set FdmBoundaryConditionSet
Interest-rate term structure.