Почему кредитная кривая ISDA от Quantlib дает другой результат, чем библиотека ISDA?
Я использую следующий код (слегка измененный из примера quantlib), чтобы сгенерировать вероятности дефолта из кредитной кривой ISDA, но по какой-то причине вывод из этого блока кода неправильный. Результат, который я получил, очень близок, но, похоже, всегда примерно на 0,0001 ниже, чем у библиотеки ISDA C. Может ли кто-нибудь помочь мне взглянуть на то, что происходит?
Calendar weekendsOnly = WeekendsOnly();
CreditDefaultSwap::PricingModel model = CreditDefaultSwap::ISDA;
Real recovery_rate = 0.4;
std::vector<boost::shared_ptr<DefaultProbabilityHelper>> instruments{
boost::shared_ptr<DefaultProbabilityHelper>(
new SpreadCdsHelper(cds_spread, 6 * Months, 1, WeekendsOnly(), Quarterly, Following,
DateGeneration::CDS2015, Actual360(), 0.4, tsCurve, true, true, Date(),
Actual360(true), true, model)),
boost::shared_ptr<DefaultProbabilityHelper>(
new SpreadCdsHelper(cds_spread, 5 * Years, 1, WeekendsOnly(), Quarterly, Following,
DateGeneration::CDS2015, Actual360(), 0.4, tsCurve, true, true, Date(),
Actual360(true), true, model)),
};
// build credit curve
Handle<DefaultProbabilityTermStructure> probability =
Handle<DefaultProbabilityTermStructure>(
boost::make_shared<PiecewiseDefaultCurve<SurvivalProbability, LogLinear> >
(0, WeekendsOnly(), instruments, Actual365Fixed()));