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

Public Member Functions

 BlackScholesCG (const ModelCG::Type type, const Size paths, 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 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={})
 BlackScholesCG (const ModelCG::Type type, const Size paths, 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 Date & referenceDate () const override
std::size_t npv (const std::size_t amount, const Date &obsdate, const std::size_t filter, const std::optional< long > &memSlot, const std::set< std::size_t > addRegressors, const std::optional< std::set< std::size_t > > &overwriteRegressors) const override
std::set< std::size_t > npvRegressors (const Date &obsdate, const std::optional< std::set< std::string > > &relevantCurrencies) const override
std::size_t numeraire (const Date &s) const override
std::size_t fwdCompAvg (const bool isAvg, const std::string &indexInput, 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
Real getDirectFxSpotT0 (const std::string &forCcy, const std::string &domCcy) const override
Real getDirectDiscountT0 (const Date &paydate, const std::string &currency) const override
Public Member Functions inherited from ModelCGImpl
 ModelCGImpl (const ModelCG::Type type, 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 QuantLib::ext::shared_ptr< IborFallbackConfig > &iborFallbackConfig)
Real actualTimeFromReference (const Date &d) const override
const std::string & baseCcy () const override
const std::vector< std::string > & currencies () const override
std::size_t dt (const Date &d1, const Date &d2) const override
std::size_t pay (const std::size_t amount, const Date &obsdate, const Date &paydate, const std::string &currency) const override
std::size_t discount (const Date &obsdate, const Date &paydate, const std::string &currency) const override
std::size_t eval (const std::string &index, const Date &obsdate, const Date &fwddate, const bool returnMissingMissingAsNull=false, const bool ignoreTodaysFixing=false) const override
std::size_t fxSpotT0 (const std::string &forCcy, const std::string &domCcy) const override
std::size_t barrierProbability (const std::string &index, const Date &obsdate1, const Date &obsdate2, const std::size_t barrier, const bool above) const override
Real extractT0Result (const RandomVariable &value) const override
ModelCG::Type type () const override
std::size_t cgVersion () const override
const std::vector< std::vector< std::size_t > > & randomVariates () const override
Public Member Functions inherited from ModelCG
 ModelCG (const QuantLib::Size n)
QuantLib::ext::shared_ptr< QuantExt::ComputationGraph > computationGraph ()
virtual QuantLib::Size size () const
virtual Size trainingSamples () const
virtual void toggleTrainingPaths () const
virtual void useStickyCloseOutDates (const bool b) const
virtual Real extractT0Result (const QuantExt::RandomVariable &value) const =0
virtual void resetNPVMem ()
const std::map< std::string, QuantLib::ext::any > & additionalResults () const
void calculate () const override
std::set< ModelCG::ModelParameter > & modelParameters () const
std::set< ModelCG::ModelParameter > & cachedParameters () const
std::size_t addModelParameter (const ModelCG::ModelParameter &p, const std::function< double(void)> &f) const
std::tuple< QuantLib::Date, QuantLib::Date, std::size_t, std::size_t > getInterpolationWeights (const QuantLib::Date &d, const std::set< Date > &knownDates) const
std::tuple< std::size_t, std::size_t, std::size_t, std::size_t > getInterpolationWeights (const double t, const QuantLib::TimeGrid &knownTimes) const

Protected Member Functions

void performCalculations () const override
std::size_t getIndexValue (const Size indexNo, const Date &d, const Date &fwd=Null< Date >()) const override
std::size_t getIrIndexValue (const Size indexNo, const Date &d, const Date &fwd=Null< Date >()) const override
std::size_t getInfIndexValue (const Size indexNo, const Date &d, const Date &fwd=Null< Date >()) const override
std::size_t getDiscount (const Size idx, const Date &s, const Date &t) const override
std::size_t getFxSpot (const Size idx) const override
std::size_t getFutureBarrierProb (const std::string &index, const Date &obsdate1, const Date &obsdate2, const std::size_t barrier, const bool above) const override
Protected Member Functions inherited from ModelCGImpl
void performCalculations () const override

Protected Attributes

std::vector< Handle< YieldTermStructure > > curves_
std::vector< Handle< Quote > > fxSpots_
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_
Date referenceDate_
std::set< Date > effectiveSimulationDates_
TimeGrid timeGrid_
std::vector< Size > positionInTimeGrid_
std::map< Date, std::vector< std::size_t > > underlyingPaths_
std::size_t underlyingPathsCgVersion_ = 0
Protected Attributes inherited from ModelCGImpl
ModelCG::Type type_
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_
std::vector< std::vector< size_t > > randomVariates_
Protected Attributes inherited from ModelCG
std::map< std::string, QuantLib::ext::any > additionalResults_
QuantLib::ext::shared_ptr< QuantExt::ComputationGraph > g_
std::set< ModelCG::ModelParametermodelParameters_
std::set< ModelCG::ModelParametercachedParameters_

Additional Inherited Members

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

Member Function Documentation

◆ referenceDate()

const Date & referenceDate ( ) const
overridevirtual

Implements ModelCG.

◆ npv()

std::size_t npv ( const std::size_t amount,
const Date & obsdate,
const std::size_t filter,
const std::optional< long > & memSlot,
const std::set< std::size_t > addRegressors,
const std::optional< std::set< std::size_t > > & overwriteRegressors ) const
overridevirtual

Implements ModelCG.

◆ npvRegressors()

std::set< std::size_t > npvRegressors ( const Date & obsdate,
const std::optional< std::set< std::string > > & relevantCurrencies ) const
overridevirtual

Implements ModelCG.

◆ numeraire()

std::size_t numeraire ( const Date & s) const
overridevirtual

Implements ModelCG.

◆ fwdCompAvg()

std::size_t fwdCompAvg ( const bool isAvg,
const std::string & indexInput,
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 ModelCG.

◆ getDirectFxSpotT0()

Real getDirectFxSpotT0 ( const std::string & forCcy,
const std::string & domCcy ) const
overridevirtual

Implements ModelCG.

◆ getDirectDiscountT0()

Real getDirectDiscountT0 ( const Date & paydate,
const std::string & currency ) const
overridevirtual

Implements ModelCG.

◆ getIndexValue()

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

Implements ModelCGImpl.

◆ getIrIndexValue()

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

Implements ModelCGImpl.

◆ getInfIndexValue()

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

Implements ModelCGImpl.

◆ getDiscount()

std::size_t getDiscount ( const Size idx,
const Date & s,
const Date & t ) const
overrideprotectedvirtual

Implements ModelCGImpl.

◆ getFxSpot()

std::size_t getFxSpot ( const Size idx) const
overrideprotectedvirtual

Implements ModelCGImpl.

◆ getFutureBarrierProb()

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

Implements ModelCGImpl.