首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Quantlib FloatingRateBond现金流计算

Quantlib FloatingRateBond现金流计算
EN

Stack Overflow用户
提问于 2015-06-25 05:24:30
回答 1查看 671关注 0票数 1

看看Bond.cpp的例子:http://quantlib.org/reference/_bonds_8cpp-example.html,看起来depoSwapTermStructureliborTermStructure是完全一样的曲线。但是,对于浮动利率债券,FloatingRateBond类似乎正在计算floatingRateBond实例的票面利率,从而计算现金流,方法是计算远期利率,然后将利差添加到其中(我觉得这听起来不错)。

这是正确的吗?还是本例的情况是,预测现金流仅通过采用现货曲线并添加价差来计算,以获得预测的息票利率?

EN

回答 1

Stack Overflow用户

发布于 2015-06-25 21:05:29

在该示例中,有两种不同类型的对象在起作用。

它们基本上表现为指向YieldTermStructure的指针。

然后,您有了Handle<YieldTermStructure> (或RelinkableHandle)的实例,它为您提供了另一个间接级别:Handle包含一个shared_ptr,如果需要,可以将其切换为另一个(其基本原理和更多细节可在this link中找到)。

在本例中,libor3m索引被传递给liborTermStructure句柄,因此它将使用链接到它的任何曲线来预测其修正:在本例中为depoSwapTermStructure,因为语句

代码语言:javascript
复制
liborTermStructure.linkTo(depoSwapTermStructure);

在债券定价之前执行。正如你所说,票面利率是通过预测曲线外的指数定价并加上价差来计算的。如果我们将liborTermStructure连接到另一条曲线,并再次要求债券提供现金流,则会根据新曲线重新计算现金流。

贴现也是如此。链接到discountingTermStructure的任何曲线都将用于对现金流进行贴现;在本例中,该曲线将是bondDiscountingTermStructure

至于如何计算息票利率:每个息票在BlackIborCouponPricer实例的帮助下计算自己的利率和金额,该实例在债券之后立即构建,并在不久之后通过语句与息票相关联

代码语言:javascript
复制
setCouponPricer(floatingRateBond.cashflows(),pricer);

实际执行计算的代码涉及BlackIborCouponPricerFloatingRateCoupon类(更多详细信息见here和后面的帖子),但最终在IborIndex类中计算的比率为:

代码语言:javascript
复制
Rate IborIndex::forecastFixing(const Date& fixingDate) const {
    Date d1 = valueDate(fixingDate);
    Date d2 = maturityDate(d1);
    Time t = dayCounter_.yearFraction(d1, d2);
    return forecastFixing(d1, d2, t);
}

Rate IborIndex::forecastFixing(const Date& d1,
                                      const Date& d2,
                                      Time t) const {
    DiscountFactor disc1 = termStructure_->discount(d1);
    DiscountFactor disc2 = termStructure_->discount(d2);
    return (disc1/disc2 - 1.0) / t;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31037325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档