25#ifndef quantext_discounting_forward_bond_engine_hpp
26#define quantext_discounting_forward_bond_engine_hpp
28#include <ql/termstructures/defaulttermstructure.hpp>
29#include <ql/termstructures/yieldtermstructure.hpp>
30#include <ql/time/period.hpp>
34#include <ql/tuple.hpp>
49 const Handle<DefaultProbabilityTermStructure>& defaultCurve,
50 const Handle<Quote>& recoveryRate, Period timestepPeriod,
51 boost::optional<bool> includeSettlementDateFlows = boost::none,
52 const Date& settlementDate = Date(),
const Date& npvDate = Date());
57 Date computeDate, Date settlementDate,
58 bool cashSettlement, Date cmpPaymentDate,
Discounting Forward Bond Engine.
Handle< YieldTermStructure > discountCurve_
Handle< YieldTermStructure > incomeCurve_
Handle< DefaultProbabilityTermStructure > bondDefaultCurve_
boost::optional< bool > includeSettlementDateFlows_
Handle< Quote > bondSpread_
void calculate() const override
Real calculateBondNpv(Date, Date) const
Handle< YieldTermStructure > bondReferenceYieldCurve_
const Handle< Quote > & bondSpread() const
const Handle< YieldTermStructure > & bondReferenceYieldCurve() const
const Handle< YieldTermStructure > & incomeCurve() const
const Handle< Quote > & bondRecoveryRate() const
QuantLib::ext::tuple< Real, Real > calculateForwardContractPresentValue(Real spotValue, Real cmpPayment, Date npvDate, Date computeDate, Date settlementDate, bool cashSettlement, Date cmpPaymentDate, bool dirty) const
const Handle< YieldTermStructure > & discountCurve() const
Handle< Quote > bondRecoveryRate_
const Handle< DefaultProbabilityTermStructure > & bondDefaultCurve() const