С помощью библиотеки QuantLib C ++ я пытаюсь оценить облигации, которые имеют разные купоны в течение срока их службы (например, 6% в течение первых трех лет, затем 4% в течение оставшихся трех лет).
Я заметил, что конструктор FixedRateBond
класс принимает вектор купонов: const std::vector< Rate > &coupons
:
FixedRateBond (Natural settlementDays,
Real faceAmount,
const Schedule &schedule,
const std::vector< Rate > &coupons,
const DayCounter &accrualDayCounter,
BusinessDayConvention paymentConvention=Following,
Real redemption=100.0,
const Date &issueDate=Date(),
const Calendar &paymentCalendar=Calendar())
Это кажется полезным для моей цели, но как я могу указать, в какие даты начинает действовать каждый купон?
Просто посчитай купоны. Если ваша облигация выплачивает годовые купоны, у вас будет три купона в первые три года и три после. В этом случае передайте (0,06, 0,06, 0,06, 0,04, 0,04, 0,04) в качестве вектора ставок купона. Если купоны полугодовые, их будет шесть за три года; в этом случае передайте вектор, содержащий 0,06 шесть раз и 0,04 еще шесть раз. Вы получаете идею: пройти ставку для каждого купона.
При диком ударе в темноте, schedule
звучит скорее всего.
Это занимает вектор дат. Увидеть документы