Logo
Reference manual - version qle_version
McCamFxForwardEngine Class Reference
Inheritance diagram for McCamFxForwardEngine:

Public Member Functions

 McCamFxForwardEngine (const Handle< CrossAssetModel > &model, const Currency &domesticCcy, const Currency &foreignCcy, const Currency &npvCcy, 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 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)
void calculate () const override
const Handle< CrossAssetModel > & model () const
Public Member Functions inherited from 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< 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< AmcCalculatoramcCalculator () const
virtual RandomVariable overwritePathValueUndDirty (double t, const RandomVariable &pathValueUndDirty, const std::set< Real > &exerciseXvaTimes, const std::vector< std::vector< QuantExt::RandomVariable > > &paths) const
virtual bool useOverwritePathValueUndDirty () 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 > &regModelUndDirty, std::vector< RegressionModel > &regModelUndExInto, std::vector< RegressionModel > &regModelRebate, std::vector< RegressionModel > &regModelContinuationValue, std::vector< RegressionModel > &regModelOption, 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

Additional Inherited Members

Public Types inherited from McMultiLegBaseEngine
enum  RegressorModel {
  Simple , Lagged , LaggedIR , LaggedFX ,
  LaggedEQ
}
enum  VarGroupMode { Global , Trivial }
Public Attributes inherited from McMultiLegBaseEngine
std::vector< Leg > leg_
std::vector< Currency > currency_
std::vector< boolpayer_
QuantLib::ext::shared_ptr< Exercise > exercise_
Settlement::Type optionSettlement_ = Settlement::Physical
std::vector< QuantLib::Date > cashSettlementDates_
bool exerciseIntoIncludeSameDayFlows_ = false
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< 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< AmcCalculatoramcCalculator_
Real resultUnderlyingNpv_
Real resultValue_
Date today_
std::vector< LgmVectorisedlgmVectorised_
Static Public Attributes inherited from McMultiLegBaseEngine
static constexpr Real tinyTime = 1E-10