24#ifndef quantlib_nth_to_default_hpp
25#define quantlib_nth_to_default_hpp
27#include <ql/instrument.hpp>
28#include <ql/cashflow.hpp>
29#include <ql/default.hpp>
30#include <ql/termstructures/defaulttermstructure.hpp>
31#include <ql/experimental/credit/onefactorcopula.hpp>
32#include <ql/time/schedule.hpp>
36 class YieldTermStructure;
86 bool settlePremiumAccrual);
156 void reset()
override;
167 NthToDefault::results> { };
template base class for option pricing engines
Abstract instrument class.
ext::shared_ptr< Basket > basket
void validate() const override
bool settlePremiumAccrual
Real upfrontPremiumValue_
ext::shared_ptr< Basket > basket_
void setupArguments(PricingEngine::arguments *) const override
const ext::shared_ptr< Basket > & basket() const
bool isExpired() const override
returns whether the instrument might have value greater than zero.
const Date & maturity() const
Real errorEstimate() const
bool settlePremiumAccrual_
Real protectionLegNPV() const
Real premiumLegNPV() const
void setupExpired() const override
void fetchResults(const PricingEngine::results *) const override
Schedule premiumSchedule_
DayCounter dayCounter() const
Protection::Side side() const
template class providing a null value for a given type.
const Date & endDate() const
std::size_t Size
size of a container
std::vector< ext::shared_ptr< CashFlow > > Leg
Sequence of cash-flows.
information on a default-protection contract