2016-09-30 2 views
1

Когда я использую Quantlib для обмена процентными ставками на ваниль, даты платежей для каждого потока денежных средств всегда совпадают с датами окончания периода начисления. Вот как я обычно использую, чтобы создать ванильный своп:C++ Quantlib Swap Даты платежа

Schedule fixedSchedule(previousResetDate, maturity, 6 * Months, NullCalendar(), ModifiedFollowing, ModifiedFollowing, DateGeneration::Backward, false); 
Schedule floatSchedule(previousResetDate, maturity, 3 * Months, NullCalendar(), ModifiedFollowing, ModifiedFollowing, DateGeneration::Backward, false); 
VanillaSwap swap(VanillaSwap::Receiver, nominal, fixedSchedule, fixedRate, Thirty360(), floatSchedule, libor, spread, Actual360()); 

На практике, есть некоторые свопы могут иметь даты оплаты, отличные от даты начисления на конец отчетного периода. Например, через 2 дня после даты окончания начисления, а затем примените корректировку конвенции рабочего дня. Я просто удивляюсь, можно ли установить даты платежей таким образом в Quantlib?

Большое спасибо.

ответ

1

Нет, в это время нет никакого способа, чтобы получить поведение, которое вы хотите. Я предполагаю, что это потребует добавления соответствующего кода к классам FixedRateLeg и IborLeg, так как именно там расписание рассоединяется и создаются купоны.

0

Вы всегда можете дать свои собственные даты оплаты, как:

Schedule(std::vector<Date> { Date(1, Jan, 2016 }, Date(1, Jan, 2017 } }); 

Конструктор, который делает это:

Schedule(const std::vector<Date>&, 
      const Calendar& calendar = NullCalendar(), 
      const BusinessDayConvention 
           convention = Unadjusted, 
      boost::optional<BusinessDayConvention> 
       terminationDateConvention = boost::none, 
      const boost::optional<Period> tenor = boost::none, 
      boost::optional<DateGeneration::Rule> rule = boost::none, 
      boost::optional<bool> endOfMonth = boost::none, 
      const std::vector<bool>& isRegular = std::vector<bool>(0)); 
+0

Спасибо за ваше предлог. Я попробовал этот конструктор, передав вектор даты платежа в «Расписание». Тем не менее, похоже, Quantlib просто использует этот вектор в качестве дат денежных потоков, а также даты начала и окончания начисления. Следовательно, проблема не решена. Есть ли способ отделить дату окончания начисления с датой платежа, скажем, 2 рабочих дня? – Ben10

Смежные вопросы