Почему кредитная кривая 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()));

0 ответов

Другие вопросы по тегам