28#include <ql/instruments/nonstandardswaption.hpp>
29#include <ql/instruments/swaption.hpp>
33class McLgmSwaptionEngine :
public GenericEngine<QuantLib::Swaption::arguments, QuantLib::Swaption::results>,
38 const Size calibrationSamples,
const Size pricingSamples,
const Size calibrationSeed,
39 const Size pricingSeed,
const Size polynomOrder,
40 const LsmBasisSystem::PolynomialType polynomType,
41 const SobolBrownianGenerator::Ordering ordering = SobolBrownianGenerator::Steps,
42 const SobolRsg::DirectionIntegers directionIntegers = SobolRsg::JoeKuoD7,
43 const Handle<YieldTermStructure>& discountCurve = Handle<YieldTermStructure>(),
44 const std::vector<Date> simulationDates = std::vector<Date>(),
45 const std::vector<Size> externalModelIndices = std::vector<Size>(),
47 const Real regressionVarianceCutoff = Null<Real>())
48 : GenericEngine<
QuantLib::Swaption::arguments,
QuantLib::Swaption::results>(),
52 calibrationPathGenerator, pricingPathGenerator, calibrationSamples, pricingSamples,
53 calibrationSeed, pricingSeed, polynomOrder, polynomType, ordering, directionIntegers,
54 {discountCurve}, simulationDates, externalModelIndices, minimalObsDate, regressorModel) {
62 :
public GenericEngine<QuantLib::NonstandardSwaption::arguments, QuantLib::NonstandardSwaption::results>,
67 const Size calibrationSamples,
const Size pricingSamples,
const Size calibrationSeed,
68 const Size pricingSeed,
const Size polynomOrder,
69 const LsmBasisSystem::PolynomialType polynomType,
70 const SobolBrownianGenerator::Ordering ordering = SobolBrownianGenerator::Steps,
71 const SobolRsg::DirectionIntegers directionIntegers = SobolRsg::JoeKuoD7,
72 const Handle<YieldTermStructure>& discountCurve = Handle<YieldTermStructure>(),
73 const std::vector<Date> simulationDates = std::vector<Date>(),
74 const std::vector<Size> externalModelIndices = std::vector<Size>(),
75 const bool minimalObsDate =
true,
77 : GenericEngine<
QuantLib::NonstandardSwaption::arguments,
QuantLib::NonstandardSwaption::results>(),
81 calibrationPathGenerator, pricingPathGenerator, calibrationSamples, pricingSamples,
82 calibrationSeed, pricingSeed, polynomOrder, polynomType, ordering, directionIntegers,
83 {discountCurve}, simulationDates, externalModelIndices, minimalObsDate, regressorModel) {
FX Black Scholes parametrizations.
void calculate() const override
McLgmNonstandardSwaptionEngine(const QuantLib::ext::shared_ptr< LinearGaussMarkovModel > &model, const SequenceType calibrationPathGenerator, const SequenceType pricingPathGenerator, const Size calibrationSamples, const Size pricingSamples, const Size calibrationSeed, const Size pricingSeed, const Size polynomOrder, const LsmBasisSystem::PolynomialType polynomType, const SobolBrownianGenerator::Ordering ordering=SobolBrownianGenerator::Steps, const SobolRsg::DirectionIntegers directionIntegers=SobolRsg::JoeKuoD7, const Handle< YieldTermStructure > &discountCurve=Handle< YieldTermStructure >(), const std::vector< Date > simulationDates=std::vector< Date >(), const std::vector< Size > externalModelIndices=std::vector< Size >(), const bool minimalObsDate=true, const RegressorModel regressorModel=RegressorModel::Simple)
void calculate() const override
McLgmSwaptionEngine(const QuantLib::ext::shared_ptr< LinearGaussMarkovModel > &model, const SequenceType calibrationPathGenerator, const SequenceType pricingPathGenerator, const Size calibrationSamples, const Size pricingSamples, const Size calibrationSeed, const Size pricingSeed, const Size polynomOrder, const LsmBasisSystem::PolynomialType polynomType, const SobolBrownianGenerator::Ordering ordering=SobolBrownianGenerator::Steps, const SobolRsg::DirectionIntegers directionIntegers=SobolRsg::JoeKuoD7, const Handle< YieldTermStructure > &discountCurve=Handle< YieldTermStructure >(), const std::vector< Date > simulationDates=std::vector< Date >(), const std::vector< Size > externalModelIndices=std::vector< Size >(), const bool minimalObsDate=true, const RegressorModel regressorModel=RegressorModel::Simple, const Real regressionVarianceCutoff=Null< Real >())
base MC engine for multileg (option) instruments