24#ifndef quantlib_equity_cash_flow_hpp
25#define quantlib_equity_cash_flow_hpp
35 class EquityCashFlowPricer;
40 ext::shared_ptr<EquityIndex>
index,
43 const Date& paymentDate,
53 void setPricer(
const ext::shared_ptr<EquityCashFlowPricer>&);
54 const ext::shared_ptr<EquityCashFlowPricer>&
pricer()
const {
return pricer_; };
57 ext::shared_ptr<EquityCashFlowPricer>
pricer_;
Black volatility term structure base classes.
degenerate base class for the Acyclic Visitor pattern
ext::shared_ptr< EquityCashFlowPricer > pricer_
const ext::shared_ptr< EquityCashFlowPricer > & pricer() const
Real amount() const override
returns the amount of the cash flow
void accept(AcyclicVisitor &) override
void setPricer(const ext::shared_ptr< EquityCashFlowPricer > &)
ext::shared_ptr< EquityIndex > index_
virtual Real price() const =0
virtual void initialize(const EquityCashFlow &)=0
EquityCashFlowPricer()=default
Handle< Quote > correlation_
void initialize(const EquityCashFlow &) override
Real price() const override
Handle< YieldTermStructure > quantoTermStructure
Handle< BlackVolTermStructure > fxVolatility_
Handle< YieldTermStructure > quantoCurrencyTermStructure_
Handle< BlackVolTermStructure > equityVolatility_
Shared handle to an observable.
Cash flow dependent on an index ratio.
virtual Date fixingDate() const
virtual Real notional() const
void accept(AcyclicVisitor &) override
virtual Date baseDate() const
virtual bool growthOnly() const
virtual ext::shared_ptr< Index > index() const
Object that notifies its changes to a set of observers.
Object that gets notified when a given observable changes.
Visitor for a specific class
virtual void visit(T &)=0
Cash flow dependent on an index ratio (NOT a coupon, i.e. no accruals)
void setCouponPricer(const Leg &leg, const ext::shared_ptr< FloatingRateCouponPricer > &pricer)
std::vector< ext::shared_ptr< CashFlow > > Leg
Sequence of cash-flows.
ext::shared_ptr< BlackVolTermStructure > v
degenerate base class for the Acyclic Visitor pattern
Zero-yield based term structure.