gpt4 book ai didi

c++ - Quantlib FloatingRateBond 现金流计算

转载 作者:行者123 更新时间:2023-11-30 05:41:45 43 4
gpt4 key购买 nike

查看 Bond.cpp 示例:http://quantlib.org/reference/_bonds_8cpp-example.html看起来 depoSwapTermStructureliborTermStructure 是完全相同的曲线。然而,对于 float 利率债券,似乎 FloatingRateBond 类正在计算票面利率,因此计算 floatingRateBond 实例的现金流量,方法是计算远期利率,然后向其添加利差(这对我来说听起来很正确)。

这是否正确,或者对于这个例子来说,预测现金流量是通过仅采用即期曲线并加上利差以获得预测票面利率来计算的吗?

最佳答案

示例中有两种不同类型的对象。

实际曲线是在智能指针中构建和存储的;例如,depoSwapTermStructure (即期曲线)是 boost::shared_ptr<YieldTermStructure>bondDiscountingTermStructure 也是.它们基本上表现为指向 YieldTermStructure 的指针。 .

然后,您有 Handle<YieldTermStructure> 的实例(或 RelinkableHandle )给你另一个间接级别: Handle包含 shared_ptr如果需要,可以将其切换为另一个(原因和更多详细信息可在 this link 中找到)。

在示例中,libor3m索引通过了 liborTermStructure handle,因此它将通过使用链接到它的任何曲线来预测它的固定值:在这种情况下,depoSwapTermStructure , 因为声明

liborTermStructure.linkTo(depoSwapTermStructure);

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

折扣也是如此。无论曲线链接到 discountingTermStructure将用于贴现现金流量;在示例中,这将是 bondDiscountingTermStructure .

至于如何计算优惠券利率:每张优惠券在 BlackIborCouponPricer 的帮助下计算自己的利率和金额。在债券之后立即构建并在不久之后通过语句关联到优惠券的实例

setCouponPricer(floatingRateBond.cashflows(),pricer);

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

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;
}

关于c++ - Quantlib FloatingRateBond 现金流计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31037325/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com