26#include <ql/cashflow.hpp>
27#include <ql/handle.hpp>
28#include <ql/patterns/visitor.hpp>
29#include <ql/termstructures/yieldtermstructure.hpp>
30#include <ql/time/daycounter.hpp>
41 const Real
notional,
const QuantLib::ext::shared_ptr<Index>& Index,
42 const Real
initialPrice = Null<Real>(),
const QuantLib::ext::shared_ptr<FxIndex>&
fxIndex =
nullptr);
46 Real
amount()
const override;
47 Date
date()
const override;
56 const QuantLib::ext::shared_ptr<Index>&
index()
const {
return index_; }
67 void update()
override { notifyObservers(); }
72 virtual void accept(AcyclicVisitor&)
override;
78 QuantLib::ext::shared_ptr<Index>
index_;
88 TRSLeg(
const std::vector<Date>& valuationDates,
const std::vector<Date>& paymentDates,
const Real notional,
89 const QuantLib::ext::shared_ptr<Index>& index,
const QuantLib::ext::shared_ptr<FxIndex>& fxIndex =
nullptr);
97 QuantLib::ext::shared_ptr<Index>
index_;
bond index class representing historical and forward bond prices
QuantLib::ext::shared_ptr< FxIndex > fxIndex_
const QuantLib::ext::shared_ptr< FxIndex > & fxIndex() const
QuantLib::ext::shared_ptr< Index > index_
Real amount() const override
virtual void accept(AcyclicVisitor &) override
const QuantLib::ext::shared_ptr< Index > & index() const
const Real initialPrice() const
const Date & fixingEndDate() const
Date date() const override
virtual const Real notional() const
virtual const Real notional(Date date) const
const Date & fixingStartDate() const
helper class building a sequence of trs cashflows
TRSLeg & withInitialPrice(Real)
QuantLib::ext::shared_ptr< FxIndex > fxIndex_
QuantLib::ext::shared_ptr< Index > index_
std::vector< Date > valuationDates_
std::vector< Date > paymentDates_