24#ifndef quantext_discounting_riskybond_engine_hpp
25#define quantext_discounting_riskybond_engine_hpp
27#include <ql/instruments/bond.hpp>
28#include <ql/termstructures/defaulttermstructure.hpp>
29#include <ql/termstructures/yieldtermstructure.hpp>
30#include <ql/time/period.hpp>
64 const Handle<DefaultProbabilityTermStructure>&
defaultCurve,
66 Period timestepPeriod, boost::optional<bool> includeSettlementDateFlows = boost::none);
70 Period timestepPeriod, boost::optional<bool> includeSettlementDateFlows = boost::none);
81 boost::optional<bool> includeSettlementDateFlows = boost::none,
82 const Handle<YieldTermStructure>& incomeCurve = Handle<YieldTermStructure>(),
83 const bool conditionalOnSurvival =
true,
84 const bool additionalResults =
true)
const;
class holding cashflow-related results
Discounting Risky Bond Engine.
Handle< YieldTermStructure > discountCurve_
Handle< Quote > recoveryRate() const
Handle< YieldTermStructure > discountCurve() const
boost::optional< bool > includeSettlementDateFlows_
Handle< DefaultProbabilityTermStructure > defaultCurve() const
void calculate() const override
BondNPVCalculationResults calculateNpv(const Date &npvDate, const Date &settlementDate, const Leg &cashflows, boost::optional< bool > includeSettlementDateFlows=boost::none, const Handle< YieldTermStructure > &incomeCurve=Handle< YieldTermStructure >(), const bool conditionalOnSurvival=true, const bool additionalResults=true) const
Handle< Quote > securitySpread_
Handle< Quote > securitySpread() const
Handle< DefaultProbabilityTermStructure > defaultCurve_
Handle< Quote > recoveryRate_
Real compoundFactorSettlement
Real cashflowsBeforeSettlementValue
std::vector< CashFlowResults > cashflowResults