QuantLib: a free/open-source library for quantitative finance
Fully annotated sources - version 1.32
Loading...
Searching...
No Matches
Classes | Public Member Functions | List of all members
MarketModelMultiProduct Class Referenceabstract

market-model product More...

#include <ql/models/marketmodels/multiproduct.hpp>

+ Inheritance diagram for MarketModelMultiProduct:
+ Collaboration diagram for MarketModelMultiProduct:

Classes

struct  CashFlow
 

Public Member Functions

virtual ~MarketModelMultiProduct ()=default
 
virtual std::vector< SizesuggestedNumeraires () const =0
 
virtual const EvolutionDescriptionevolution () const =0
 
virtual std::vector< TimepossibleCashFlowTimes () const =0
 
virtual Size numberOfProducts () const =0
 
virtual Size maxNumberOfCashFlowsPerProductPerStep () const =0
 
virtual void reset ()=0
 during simulation put product at start of path More...
 
virtual bool nextTimeStep (const CurveState &currentState, std::vector< Size > &numberCashFlowsThisStep, std::vector< std::vector< CashFlow > > &cashFlowsGenerated)=0
 return value indicates whether path is finished, TRUE means done More...
 
virtual std::unique_ptr< MarketModelMultiProductclone () const =0
 returns a newly-allocated copy of itself More...
 

Detailed Description

market-model product

This is the abstract base class that encapsulates the notion of a product: it contains the information that would be in the termsheet of the product.

It's useful to have it be able to do several products simultaneously. The products would have to have the same underlying rate times of course. The class is therefore really encapsulating the notion of a multi-product.

For each time evolved to, it generates the cash flows associated to that time for the state of the yield curve. If one was doing a callable product then this would encompass the product and its exercise strategy.

Definition at line 50 of file multiproduct.hpp.

Constructor & Destructor Documentation

◆ ~MarketModelMultiProduct()

virtual ~MarketModelMultiProduct ( )
virtualdefault

Member Function Documentation

◆ suggestedNumeraires()

virtual std::vector< Size > suggestedNumeraires ( ) const
pure virtual

◆ evolution()

virtual const EvolutionDescription & evolution ( ) const
pure virtual

◆ possibleCashFlowTimes()

virtual std::vector< Time > possibleCashFlowTimes ( ) const
pure virtual

◆ numberOfProducts()

virtual Size numberOfProducts ( ) const
pure virtual

◆ maxNumberOfCashFlowsPerProductPerStep()

virtual Size maxNumberOfCashFlowsPerProductPerStep ( ) const
pure virtual

◆ reset()

virtual void reset ( )
pure virtual

◆ nextTimeStep()

virtual bool nextTimeStep ( const CurveState currentState,
std::vector< Size > &  numberCashFlowsThisStep,
std::vector< std::vector< CashFlow > > &  cashFlowsGenerated 
)
pure virtual

◆ clone()

virtual std::unique_ptr< MarketModelMultiProduct > clone ( ) const
pure virtual