Logo
Reference manual - version qle_version
DiscountingRiskyBondEngineMultiState Class Reference

#include <qle/pricingengines/discountingriskybondenginemultistate.hpp>

Inheritance diagram for DiscountingRiskyBondEngineMultiState:

Public Member Functions

 DiscountingRiskyBondEngineMultiState (const Handle< YieldTermStructure > &discountCurve, const std::vector< Handle< DefaultProbabilityTermStructure > > &defaultCurves, const std::vector< Handle< Quote > > &recoveryRates, const Size mainResultState, const Handle< Quote > &securitySpread, Period timestepPeriod, const QuantLib::ext::optional< bool > includeSettlementDateFlows=QuantLib::ext::nullopt)
void calculate () const
Real calculateNpv (const Size state) const
Real calculateDefaultValue () const
Handle< YieldTermStructure > discountCurve () const
const std::vector< Handle< DefaultProbabilityTermStructure > > & defaultCurves () const
const std::vector< Handle< Quote > > & recoveryRates () const
Handle< QuotesecuritySpread () const
Public Member Functions inherited from DiscountingRiskyBondEngine
 DiscountingRiskyBondEngine (const Handle< YieldTermStructure > &discountCurve, const Handle< DefaultProbabilityTermStructure > &defaultCurve, const Handle< Quote > &recoveryRate, const Handle< Quote > &securitySpread, Period timestepPeriod, QuantLib::ext::optional< bool > includeSettlementDateFlows=QuantLib::ext::nullopt, const bool includePastCashflows=false, const Handle< YieldTermStructure > &incomeCurve={}, const bool conditionalOnSurvival=true, const bool spreadOnIncome=true, const bool treatSecuritySpreadAsCreditSpread=false)
 DiscountingRiskyBondEngine (const Handle< YieldTermStructure > &discountCurve, const Handle< Quote > &securitySpread, Period timestepPeriod, QuantLib::ext::optional< bool > includeSettlementDateFlows=QuantLib::ext::nullopt, const Handle< YieldTermStructure > &incomeCurve={}, const bool conditionalOnSurvival=true, const bool spreadOnIncome=true, const bool treatSecuritySpreadAsCreditSpread=false)
 alternative constructor (does not require default curve or recovery rate)
void calculate () const override
std::pair< Real, Real > forwardPrice (const QuantLib::Date &forwardNpvDate, const QuantLib::Date &settlementDate, const bool conditionalOnSurvival=true, std::vector< CashFlowResults > *const cfResults=nullptr, QuantLib::Leg *const expectedCashflows=nullptr) const override
 ForwardEnabledBondEngine interface.
Handle< YieldTermStructure > discountCurve () const
Handle< DefaultProbabilityTermStructure > defaultCurve () const
Handle< QuoterecoveryRate () const
Handle< QuotesecuritySpread () const

Additional Inherited Members

Protected Member Functions inherited from DiscountingRiskyBondEngine
BondNPVCalculationResults calculateNpv (const Date &npvDate, const Date &settlementDate, QuantLib::ext::optional< bool > includeSettlementDateFlows, const bool conditionalOnSurvival, const bool additionalResults) const
DiscountingRiskyBondEngine::RecoveryContribution recoveryContribution (const Real dfNpv, const Real spNpv, const Real effRecovery, const QuantLib::ext::shared_ptr< DefaultProbabilityTermStructure > &effCreditCurve, const bool additionalResults, const Real nominal, const QuantLib::Date &startDate, const QuantLib::Date &endDate) const
Protected Attributes inherited from DiscountingRiskyBondEngine
Handle< YieldTermStructure > discountCurve_
Handle< DefaultProbabilityTermStructure > defaultCurve_
Handle< QuoterecoveryRate_
Handle< QuotesecuritySpread_
Period timestepPeriod_
QuantLib::ext::optional< boolincludeSettlementDateFlows_
bool includePastCashflows_
Handle< YieldTermStructure > incomeCurve_
bool conditionalOnSurvival_
bool spreadOnIncome_
bool treatSecuritySpreadAsCreditSpread_

Detailed Description

The engine takes a vector of default curves and recovery rates. For the given main result state it will produce the same results as the MidPointCdsEngine. In addition a result with label "stateNPV" is produced containing the NPV for each given default curve / recovery rate and an additional entry with a default value w.r.t. the last given recovery rate in the vector.