27#include <ql/termstructures/defaulttermstructure.hpp>
28#include <ql/termstructures/yieldtermstructure.hpp>
38 const std::map<std::string, Handle<YieldTermStructure>>& discountCurves,
39 const std::map<std::string, Handle<Quote>>& fxSpots,
40 const Handle<DefaultProbabilityTermStructure>& defaultCurve,
41 const Handle<Quote>& recoveryRate,
const Size maxGapDays = Null<Size>(),
42 const Size maxDiscretizsationPoints = Null<Size>());
45 const Date& protectionEnd,
const std::vector<Leg>& underlying,
46 const Size maxGapDays = Null<Size>(),
47 const Size maxDiscretisationPoints = Null<Size>());
56 mutable std::map<std::string, Handle<Quote>>
fxSpots_;
static std::vector< Date > buildDiscretisationGrid(const Date &referenceDate, const Date &protectionStart, const Date &protectionEnd, const std::vector< Leg > &underlying, const Size maxGapDays=Null< Size >(), const Size maxDiscretisationPoints=Null< Size >())
Real effectiveRecoveryRate_
std::vector< Date > gridDates_
virtual Real protectionLegNpv() const =0
void calculate() const override
std::map< std::string, Handle< Quote > > fxSpots_
std::map< std::string, Handle< YieldTermStructure > > discountCurves_
Handle< DefaultProbabilityTermStructure > defaultCurve_
Size maxDiscretisationPoints_
Handle< Quote > recoveryRate_
Serializable Credit Default Swap.