26#ifndef quantlib_fd_black_scholes_vanilla_engine_hpp
27#define quantlib_fd_black_scholes_vanilla_engine_hpp
35 class FdmQuantoHelper;
36 class GeneralizedBlackScholesProcess;
50 ext::shared_ptr<GeneralizedBlackScholesProcess>,
53 Size dampingSteps = 0,
55 bool localVol =
false,
60 ext::shared_ptr<GeneralizedBlackScholesProcess>,
64 Size dampingSteps = 0,
66 bool localVol =
false,
71 ext::shared_ptr<GeneralizedBlackScholesProcess>,
72 ext::shared_ptr<FdmQuantoHelper> quantoHelper,
75 Size dampingSteps = 0,
77 bool localVol =
false,
82 ext::shared_ptr<GeneralizedBlackScholesProcess>,
84 ext::shared_ptr<FdmQuantoHelper> quantoHelper,
87 Size dampingSteps = 0,
89 bool localVol =
false,
96 ext::shared_ptr<GeneralizedBlackScholesProcess>
process_;
110 ext::shared_ptr<GeneralizedBlackScholesProcess> process);
113 const ext::shared_ptr<FdmQuantoHelper>& quantoHelper);
125 Real illegalLocalVolOverwrite);
128 const std::vector<Date>& dividendDates,
129 const std::vector<Real>& dividendAmounts);
134 operator ext::shared_ptr<PricingEngine>()
const;
136 ext::shared_ptr<GeneralizedBlackScholesProcess>
process_;
Finite-differences Black Scholes vanilla option engine.
Real illegalLocalVolOverwrite_
FdmSchemeDesc schemeDesc_
void calculate() const override
DividendSchedule dividends_
ext::shared_ptr< GeneralizedBlackScholesProcess > process_
ext::shared_ptr< FdmQuantoHelper > quantoHelper_
CashDividendModel cashDividendModel_
MakeFdBlackScholesVanillaEngine & withIllegalLocalVolOverwrite(Real illegalLocalVolOverwrite)
MakeFdBlackScholesVanillaEngine & withLocalVol(bool localVol)
MakeFdBlackScholesVanillaEngine & withCashDividendModel(FdBlackScholesVanillaEngine::CashDividendModel cashDividendModel)
Real illegalLocalVolOverwrite_
MakeFdBlackScholesVanillaEngine & withTGrid(Size tGrid)
FdBlackScholesVanillaEngine::CashDividendModel cashDividendModel_
MakeFdBlackScholesVanillaEngine & withDampingSteps(Size dampingSteps)
MakeFdBlackScholesVanillaEngine & withQuantoHelper(const ext::shared_ptr< FdmQuantoHelper > &quantoHelper)
MakeFdBlackScholesVanillaEngine & withXGrid(Size xGrid)
MakeFdBlackScholesVanillaEngine & withCashDividends(const std::vector< Date > ÷ndDates, const std::vector< Real > ÷ndAmounts)
DividendSchedule dividends_
ext::shared_ptr< GeneralizedBlackScholesProcess > process_
ext::shared_ptr< FdmQuantoHelper > quantoHelper_
MakeFdBlackScholesVanillaEngine & withFdmSchemeDesc(const FdmSchemeDesc &schemeDesc)
ext::shared_ptr< FdmSchemeDesc > schemeDesc_
template class providing a null value for a given type.
std::size_t Size
size of a container
std::vector< ext::shared_ptr< Dividend > > DividendSchedule
Base class for pricing engines.
static FdmSchemeDesc Douglas()
Vanilla option on a single asset.