24#ifndef quantlib_cdo_hpp
25#define quantlib_cdo_hpp
27#include <ql/instrument.hpp>
28#include <ql/termstructures/yieldtermstructure.hpp>
29#include <ql/termstructures/defaulttermstructure.hpp>
30#include <ql/experimental/credit/lossdistribution.hpp>
31#include <ql/experimental/credit/onefactorcopula.hpp>
32#include <ql/time/schedule.hpp>
126 bool protectionSeller,
131 Rate upfrontPremiumRate,
157 std::vector<Handle<DefaultProbabilityTermStructure> >
basket_;
collateralized debt obligation
Real upfrontPremiumValue_
void performCalculations() const override
bool isExpired() const override
returns whether the instrument might have value greater than zero.
std::vector< Real > nominals()
Handle< OneFactorCopula > copula_
Rate protectionValue() const
Real expectedTrancheLoss(Date d) const
void setupExpired() const override
Schedule premiumSchedule_
std::vector< Real > lgds_
Rate premiumValue() const
std::vector< Real > nominals_
std::vector< Handle< DefaultProbabilityTermStructure > > basket_
Handle< YieldTermStructure > yieldTS_
Shared handle to an observable.
Abstract instrument class.
std::size_t Size
size of a container