Logo
Reference manual - version qle_version
Classes | Protected Member Functions | Protected Attributes | List of all members
McMultiLegBaseEngine Class Reference
+ Inheritance diagram for McMultiLegBaseEngine:

Protected Member Functions

 McMultiLegBaseEngine (const Handle< CrossAssetModel > &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, const SobolRsg::DirectionIntegers directionIntegers, const std::vector< Handle< YieldTermStructure >> &discountCurves=std::vector< Handle< YieldTermStructure >>(), const std::vector< Date > &simulationDates=std::vector< Date >(), const std::vector< Size > &externalModelIndices=std::vector< Size >(), const bool minimalObsDate=true)
 
void calculate () const
 
boost::shared_ptr< AmcCalculatoramcCalculator () const
 

Protected Attributes

std::vector< Leg > leg_
 
std::vector< Currency > currency_
 
std::vector< Real > payer_
 
boost::shared_ptr< Exercise > exercise_
 
Settlement::Type optionSettlement_ = Settlement::Physical
 
Handle< CrossAssetModelmodel_
 
SequenceType calibrationPathGenerator_
 
SequenceType pricingPathGenerator_
 
Size calibrationSamples_
 
Size pricingSamples_
 
Size calibrationSeed_
 
Size pricingSeed_
 
Size polynomOrder_
 
LsmBasisSystem::PolynomialType polynomType_
 
SobolBrownianGenerator::Ordering ordering_
 
SobolRsg::DirectionIntegers directionIntegers_
 
std::vector< Handle< YieldTermStructure > > discountCurves_
 
std::vector< Date > simulationDates_
 
std::vector< Size > externalModelIndices_
 
bool minimalObsDate_
 
boost::shared_ptr< AmcCalculatoramcCalculator_
 
Real resultUnderlyingNpv_
 
Real resultValue_
 

Constructor & Destructor Documentation

◆ McMultiLegBaseEngine()

McMultiLegBaseEngine ( const Handle< CrossAssetModel > &  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,
const SobolRsg::DirectionIntegers  directionIntegers,
const std::vector< Handle< YieldTermStructure >> &  discountCurves = std::vector< Handle< YieldTermStructure >>(),
const std::vector< Date > &  simulationDates = std::vector< Date >(),
const std::vector< Size > &  externalModelIndices = std::vector< Size >(),
const bool  minimalObsDate = true 
)
protected

The npv is computed in the model's base currency, discounting curves are taken from the model. simulationDates are additional simulation dates. The cross asset model here must be consistent with the multi path that is the input to AmcCalculator::simulatePath().

Current limitations:

  • the parameter minimalObsDate is ignored, the corresponding optimization is not implemented yet
  • pricingSamples are ignored, the npv from the training phase is used alway