|
|
| McLgmFwdBondEngine (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 Handle< YieldTermStructure > &incomeCurve=Handle< YieldTermStructure >(), const Handle< YieldTermStructure > &contractCurve=Handle< YieldTermStructure >(), const Handle< Quote > &conversionFactor=Handle< Quote >(), const std::vector< Date > simulationDates=std::vector< Date >(), const std::vector< Date > &stickyCloseOutDates=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 >(), const bool recalibrateOnStickyCloseOutDates=false, const bool reevaluateExerciseInStickyRun=false, const Size cfOnCpnMaxSimTimes=1, const Period &cfOnCpnAddSimTimesCutoff=Period(), const Size regressionMaxSimTimesIr=0, const Size regressionMaxSimTimesFx=0, const Size regressionMaxSimTimesEq=0, const VarGroupMode regressionVarGroupMode=VarGroupMode::Global) |
|
void | calculate () const override |
|
void | setMember () const |
|
double | conversionFactor () const |
| RandomVariable | overwritePathValueUndDirty (double t, const RandomVariable &pathValueUndDirty, const std::set< Real > &exerciseXvaTimes, const std::vector< std::vector< QuantExt::RandomVariable > > &paths) const override |
| bool | useOverwritePathValueUndDirty () const override |
| | 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< Date > &stickyCloseOutDates=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 >(), const bool recalibrateOnStickyCloseOutDates=false, const bool reevaluateExerciseInStickyRun=false, const Size cfOnCpnMaxSimTimes=1, const Period &cfOnCpnAddSimTimesCutoff=Period(), const Size regressionMaxSimTimesIr=0, const Size regressionMaxSimTimesFx=0, const Size regressionMaxSimTimesEq=0, const VarGroupMode regressionVarGroupMode=VarGroupMode::Global) |
|
virtual | ~McMultiLegBaseEngine () |
| | Destructor.
|
|
void | calculate () const |
|
QuantLib::ext::shared_ptr< AmcCalculator > | amcCalculator () const |
|
void | generatePathValues (const std::vector< Real > &simulationTimes, std::vector< std::vector< RandomVariable > > &pathValues) const |
|
void | calculateModels (const std::set< Real > &simulationTimes, const std::set< Real > &exerciseXvaTimes, const std::set< Real > &exerciseTimes, const std::set< Real > &xvaTimes, const std::vector< CashflowInfo > &cashflowInfo, const std::vector< std::vector< RandomVariable > > &pathValues, const std::vector< std::vector< const RandomVariable * > > &pathValuesRef, std::vector< RegressionModel > ®ModelUndDirty, std::vector< RegressionModel > ®ModelUndExInto, std::vector< RegressionModel > ®ModelRebate, std::vector< RegressionModel > ®ModelContinuationValue, std::vector< RegressionModel > ®ModelOption, RandomVariable &pathValueUndDirty, RandomVariable &pathValueUndExInto, RandomVariable &pathValueOption) const |
|
Real | time (const Date &d) const |
|
CashflowInfo | createCashflowInfo (QuantLib::ext::shared_ptr< CashFlow > flow, const Currency &payCcy, bool payer, Size legNo, Size cfNo) const |
|
Size | timeIndex (const Time t, const std::set< Real > &simulationTimes) const |
|
RandomVariable | cashflowPathValue (const CashflowInfo &cf, const std::vector< std::vector< RandomVariable > > &pathValues, const std::set< Real > &simulationTimes) const |
|
| enum | RegressorModel {
Simple
, Lagged
, LaggedIR
, LaggedFX
,
LaggedEQ
} |
| enum | VarGroupMode { Global
, Trivial
} |
|
std::vector< Leg > | leg_ |
|
std::vector< Currency > | currency_ |
|
std::vector< bool > | payer_ |
|
QuantLib::ext::shared_ptr< Exercise > | exercise_ |
|
Settlement::Type | optionSettlement_ = Settlement::Physical |
|
std::vector< QuantLib::Date > | cashSettlementDates_ |
|
bool | exerciseIntoIncludeSameDayFlows_ = false |
|
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< Date > | stickyCloseOutDates_ |
|
std::vector< Size > | externalModelIndices_ |
|
bool | minimalObsDate_ |
|
RegressorModel | regressorModel_ |
|
Real | regressionVarianceCutoff_ |
|
bool | recalibrateOnStickyCloseOutDates_ |
|
bool | reevaluateExerciseInStickyRun_ |
|
Size | cfOnCpnMaxSimTimes_ |
|
Period | cfOnCpnAddSimTimesCutoff_ |
|
Size | regressionMaxSimTimesIr_ |
|
Size | regressionMaxSimTimesFx_ |
|
Size | regressionMaxSimTimesEq_ |
|
VarGroupMode | regressionVarGroupMode_ |
|
bool | includeTodaysCashflows_ |
|
bool | includeReferenceDateEvents_ |
|
QuantLib::ext::shared_ptr< AmcCalculator > | amcCalculator_ |
|
Real | resultUnderlyingNpv_ |
|
Real | resultValue_ |
|
Date | today_ |
|
std::vector< LgmVectorised > | lgmVectorised_ |
|
static constexpr Real | tinyTime = 1E-10 |