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< AmcCalculator > | amcCalculator () 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< CrossAssetModel > | model_ |
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< AmcCalculator > | amcCalculator_ |
Real | resultUnderlyingNpv_ |
Real | resultValue_ |
|
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: