Quantlib USDLibor,它如何知道哪个是正确的修复日期?

时间:2015-06-30 21:13:02

标签: c++ date reset quantlib

在计算浮动利率债券时,需要使用USDLibor类的实例并在给定日期(相当于上次重置日期减去两个工作日)的情况下添加新的定价。但是,有时它会抱怨运行时告诉用户指定日期的修复不可用(意味着已经提供了错误日期的修复)。

USDLibor的实例如何知道哪个是正确的日期?我问这个是因为我可以通过直接检索正确的日期来解决这个问题,因为USDLibor可以解决找出正确日期的问题。

1 个答案:

答案 0 :(得分:0)

修复日期是重置日期之前的两个工作日,正如您所说的那样(逻辑的实现在FloatingRateCoupon::fixingDate()方法中,如果您想检查它)。

但是,您可能使用了错误的工作日。美元LIBOR在伦敦是固定的,因此假期根据英国日历而非美国日历确定。

在任何情况下,一旦你建立了债券,你可以问现金流自己的定价日期与这样的事情(我没有测试过,所以它甚至可能没有编译,但你应该得到这个想法) :

using namespace QuantLib;

Leg cashflows = bond.cashflows();
std::vector<Date> fixingDates;
for (Size i=0; i<cashflows.size(); ++i) {
    boost::shared_ptr<FloatingRateCoupon> coupon =
        boost::dynamic_pointer_cast<FloatingRateCoupon>(cashflows[i]);
    if (coupon)
        fixingDates.append(coupon->fixingDate());
}

之后fixingDates向量将包含(毫不奇怪)固定日期。