Logo
Reference manual - version ored_version
BlackScholes Class Reference
Inheritance diagram for BlackScholes:

Public Member Functions

 BlackScholes (const Type type, const Size size, const std::vector< std::string > &currencies, const std::vector< Handle< YieldTermStructure > > &curves, const std::vector< Handle< Quote > > &fxSpots, const std::vector< std::pair< std::string, QuantLib::ext::shared_ptr< InterestRateIndex > > > &irIndices, const std::vector< std::pair< std::string, QuantLib::ext::shared_ptr< ZeroInflationIndex > > > &infIndices, const std::vector< std::string > &indices, const std::vector< std::string > &indexCurrencies, const std::set< std::string > &payCcys, const Handle< BlackScholesModelWrapper > &model, const std::map< std::pair< std::string, std::string >, Handle< QuantExt::CorrelationTermStructure > > &correlations, const std::set< Date > &simulationDates, const QuantLib::ext::shared_ptr< IborFallbackConfig > &iborFallbackConfig=QuantLib::ext::make_shared< IborFallbackConfig >(IborFallbackConfig::defaultConfig()), const std::string &calibration="ATM", const std::map< std::string, std::vector< Real > > &calibrationStrikes={}, const Params &params={})
 BlackScholes (const Type Type, const Size size, const std::string &currency, const Handle< YieldTermStructure > &curve, const std::string &index, const std::string &indexCurrency, const Handle< BlackScholesModelWrapper > &model, const std::set< Date > &simulationDates, const QuantLib::ext::shared_ptr< IborFallbackConfig > &iborFallbackConfig=QuantLib::ext::make_shared< IborFallbackConfig >(IborFallbackConfig::defaultConfig()), const std::string &calibration="ATM", const std::vector< Real > &calibrationStrikes={}, const Params &params={})
const Date & referenceDate () const override
RandomVariable npv (const RandomVariable &amount, const Date &obsdate, const Filter &filter, const QuantLib::ext::optional< long > &memSlot, const RandomVariable &addRegressor1, const RandomVariable &addRegressor2) const override
RandomVariable fwdCompAvg (const bool isAvg, const std::string &index, const Date &obsdate, const Date &start, const Date &end, const Real spread, const Real gearing, const Integer lookback, const Natural rateCutoff, const Natural fixingDays, const bool includeSpread, const Real cap, const Real floor, const bool nakedOption, const bool localCapFloor) const override
void releaseMemory () override
void resetNPVMem () override
void toggleTrainingPaths () const override
Size trainingSamples () const override
Size size () const override
Real extractT0Result (const RandomVariable &result) const override
const std::string & baseCcy () const override
RandomVariable pay (const RandomVariable &amount, const Date &obsdate, const Date &paydate, const std::string &currency) const override
Public Member Functions inherited from ModelImpl
 ModelImpl (const Model::Type type, const Model::Params &params, const DayCounter &dayCounter, const Size size, const std::vector< std::string > &currencies, const std::vector< std::pair< std::string, QuantLib::ext::shared_ptr< InterestRateIndex > > > &irIndices, const std::vector< std::pair< std::string, QuantLib::ext::shared_ptr< ZeroInflationIndex > > > &infIndices, const std::vector< std::string > &indices, const std::vector< std::string > &indexCurrencies, const std::set< Date > &simulationDates, const ext::shared_ptr< IborFallbackConfig > &iborFallbackConfig)
const std::string & baseCcy () const override
Real dt (const Date &d1, const Date &d2) const override
RandomVariable pay (const RandomVariable &amount, const Date &obsdate, const Date &paydate, const std::string &currency) const override
RandomVariable discount (const Date &obsdate, const Date &paydate, const std::string &currency) const override
RandomVariable eval (const std::string &index, const Date &obsdate, const Date &fwddate, const bool returnMissingMissingAsNull=false, const bool ignoreTodaysFixing=false) const override
Real fxSpotT0 (const std::string &forCcy, const std::string &domCcy) const override
RandomVariable barrierProbability (const std::string &index, const Date &obsdate1, const Date &obsdate2, const RandomVariable &barrier, const bool above) const override
Real extractT0Result (const RandomVariable &value) const override
Type type () const override
const Paramsparams () const override
Public Member Functions inherited from Model
 Model (const Size n)
Real timeFromReference (const Date &d) const
const std::map< std::string, QuantLib::ext::any > & additionalResults () const

Protected Member Functions

void performCalculations () const override
RandomVariable getIndexValue (const Size indexNo, const Date &d, const Date &fwd=Null< Date >()) const override
RandomVariable getIrIndexValue (const Size indexNo, const Date &d, const Date &fwd=Null< Date >()) const override
RandomVariable getInfIndexValue (const Size indexNo, const Date &d, const Date &fwd=Null< Date >()) const override
RandomVariable getDiscount (const Size idx, const Date &s, const Date &t) const override
RandomVariable getNumeraire (const Date &s) const override
Real getFxSpot (const Size idx) const override
RandomVariable getFutureBarrierProb (const std::string &index, const Date &obsdate1, const Date &obsdate2, const RandomVariable &barrier, const bool above) const override
Matrix getCorrelation () const
std::vector< Real > getCalibrationStrikes () const
void setAdditionalResults () const
void performCalculationsMcBs () const
void performCalculationsMcLv () const
void performCalculationsFd () const
void initUnderlyingPathsMc () const
void setReferenceDateValuesMc () const
void generatePathsBs () const
void generatePathsLv () const
void populatePathValuesBs (const Size nSamples, std::map< Date, std::vector< RandomVariable > > &paths, const QuantLib::ext::shared_ptr< MultiPathVariateGeneratorBase > &gen, const std::vector< Array > &drift, const std::vector< Matrix > &sqrtCov) const
void populatePathValuesLv (const Size nSamples, std::map< Date, std::vector< RandomVariable > > &paths, const QuantLib::ext::shared_ptr< MultiPathVariateGeneratorBase > &gen, const Matrix &correlation, const Matrix &sqrtCorr, const std::vector< Array > &deterministicDrift, const std::vector< Size > &eqComIdx, const std::vector< Real > &t, const std::vector< Real > &dt, const std::vector< Real > &sqrtdt) const
Protected Member Functions inherited from Model
void performCalculations () const override

Protected Attributes

std::vector< Handle< YieldTermStructure > > curves_
std::vector< Handle< Quote > > fxSpots_
std::set< std::string > payCcys_
Handle< BlackScholesModelWrapper > model_
std::map< std::pair< std::string, std::string >, Handle< QuantExt::CorrelationTermStructure > > correlations_
std::vector< Date > simulationDates_
std::string calibration_
std::map< std::string, std::vector< Real > > calibrationStrikes_
bool applyQuantoAdjustment_ = false
Size quantoSourceCcyIndex_
Size quantoTargetCcyIndex_
Real quantoCorrelationMultiplier_
Date referenceDate_
std::set< Date > effectiveSimulationDates_
TimeGrid timeGrid_
std::vector< Size > positionInTimeGrid_
Matrix correlation_
std::map< Date, std::vector< RandomVariable > > underlyingPaths_
std::map< Date, std::vector< RandomVariable > > underlyingPathsTraining_
bool inTrainingPhase_ = false
std::vector< Matrix > covariance_
std::map< long, std::tuple< Array, Size, Matrix > > storedRegressionModel_
QuantLib::ext::shared_ptr< FdmMesher > mesher_
QuantLib::ext::shared_ptr< FdmLinearOpComposite > operator_
QuantLib::ext::shared_ptr< FdmBackwardSolver > solver_
RandomVariable underlyingValues_
Protected Attributes inherited from ModelImpl
Model::Type type_
Model::Params params_
DayCounter dayCounter_
std::vector< std::string > currencies_
std::vector< std::string > indexCurrencies_
std::set< Date > simulationDates_
QuantLib::ext::shared_ptr< IborFallbackConfigiborFallbackConfig_
std::vector< std::pair< IndexInfo, QuantLib::ext::shared_ptr< InterestRateIndex > > > irIndices_
std::vector< std::pair< IndexInfo, QuantLib::ext::shared_ptr< ZeroInflationIndex > > > infIndices_
std::vector< IndexInfoindices_
Protected Attributes inherited from Model
std::map< std::string, QuantLib::ext::any > additionalResults_

Additional Inherited Members

Public Types inherited from Model
enum class  Type { MC , FD }

Member Function Documentation

◆ referenceDate()

const Date & referenceDate ( ) const
overridevirtual

Implements Model.

◆ npv()

RandomVariable npv ( const RandomVariable & amount,
const Date & obsdate,
const Filter & filter,
const QuantLib::ext::optional< long > & memSlot,
const RandomVariable & addRegressor1,
const RandomVariable & addRegressor2 ) const
overridevirtual

Implements Model.

◆ fwdCompAvg()

RandomVariable fwdCompAvg ( const bool isAvg,
const std::string & index,
const Date & obsdate,
const Date & start,
const Date & end,
const Real spread,
const Real gearing,
const Integer lookback,
const Natural rateCutoff,
const Natural fixingDays,
const bool includeSpread,
const Real cap,
const Real floor,
const bool nakedOption,
const bool localCapFloor ) const
overridevirtual

Implements Model.

◆ releaseMemory()

void releaseMemory ( )
overridevirtual

Reimplemented from Model.

◆ resetNPVMem()

void resetNPVMem ( )
overridevirtual

Reimplemented from Model.

◆ toggleTrainingPaths()

void toggleTrainingPaths ( ) const
overridevirtual

Reimplemented from Model.

◆ trainingSamples()

Size trainingSamples ( ) const
overridevirtual

Reimplemented from Model.

◆ size()

Size size ( ) const
overridevirtual

Reimplemented from Model.

◆ extractT0Result()

Real extractT0Result ( const RandomVariable & result) const
overridevirtual

Implements Model.

◆ baseCcy()

const std::string & baseCcy ( ) const
overridevirtual

Implements Model.

◆ pay()

RandomVariable pay ( const RandomVariable & amount,
const Date & obsdate,
const Date & paydate,
const std::string & currency ) const
overridevirtual

Implements Model.

◆ getIndexValue()

RandomVariable getIndexValue ( const Size indexNo,
const Date & d,
const Date & fwd = Null< Date >() ) const
overrideprotectedvirtual

Implements ModelImpl.

◆ getIrIndexValue()

RandomVariable getIrIndexValue ( const Size indexNo,
const Date & d,
const Date & fwd = Null< Date >() ) const
overrideprotectedvirtual

Implements ModelImpl.

◆ getInfIndexValue()

RandomVariable getInfIndexValue ( const Size indexNo,
const Date & d,
const Date & fwd = Null< Date >() ) const
overrideprotectedvirtual

Implements ModelImpl.

◆ getDiscount()

RandomVariable getDiscount ( const Size idx,
const Date & s,
const Date & t ) const
overrideprotectedvirtual

Implements ModelImpl.

◆ getNumeraire()

RandomVariable getNumeraire ( const Date & s) const
overrideprotectedvirtual

Implements ModelImpl.

◆ getFxSpot()

Real getFxSpot ( const Size idx) const
overrideprotectedvirtual

Implements ModelImpl.

◆ getFutureBarrierProb()

RandomVariable getFutureBarrierProb ( const std::string & index,
const Date & obsdate1,
const Date & obsdate2,
const RandomVariable & barrier,
const bool above ) const
overrideprotectedvirtual

Implements ModelImpl.