c++ - 如何使用 QuantLib 计算单名债券价格?

标签 c++ quantlib

我想计算债券的价格,使用称为时间函数的贴现因子和固定息票。

我从 QuantLib 1.5 中找到的示例 (bond.cpp) 看起来相当复杂。我删除了零债券和 float 息债券,只留下固定息债券计算部分。

我不明白的部分是我应该如何根据我的表格定义 RATE HELPERS 和 CURVE BUILDING 部分:

仪器类型 |到期日 |报价 |折扣系数

 CD                 03/04/2015       0.25        0.9999
 CD                 03/18/2015       0.254       0.9998
 CD                 06/17/2015       0.266       0.9997
 CD                 09/16/2015       0.38        0.9996
 CD                 12/16/2015       0.57        0.9995
.....
 SWAP               03/04/2019       1.33        0.94
 SWAP               03/04/2020       1.66        0.92
 SWAP               03/04/2021       1.74        0.89

我应该怎么做才能在 QuantLib 中构建折扣曲线?

最佳答案

您应该直接使用您的折扣因子,而忘记费率助手和曲线构建。

当您想暗示某个报价的曲线时使用后者;但是如果你已经计算了折扣因子,你可以只使用 InterpolatedDiscountCurve类模板并直接构建曲线,如:

#include <ql/termstructures/yield/discountcurve.hpp>

...

boost::shared_ptr<YieldTermStructure> discountCurve(
    new InterpolatedDiscountCurve<LogLinear>(dates, discounts,
                                             dayCounter));

哪里datesvector<Date> (必须包括曲线开始的第一个日期,通常是今天的日期),discountsvector<double>包含相应的折扣因子(包括 1 作为第一个)和 dayCounter将用于将日期转换为时间; Actual360()应该没问题。

上面的例子使用了对数线性插值;您可以通过替换 LogLinear 来更改它使用不同的(查看 <ql/math/interpolations/> 文件夹中可用的)。

关于c++ - 如何使用 QuantLib 计算单名债券价格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28882100/

相关文章:

c++ - Quantlib FloatingRateBond 现金流计算

python - Quantlib-python 没有定义构造函数

windows - 哪个 python 可以访问 Quantlib 的预编译版本?

部署 Shiny 应用程序时,RQuantLib 将不会加载

c++ - 枚举C++中的所有组合

c++ - 比较器 -1073741819 (0xC0000005)

c++ - 在 Visual Studio 2008 中使用指向模板函数的指针编译错误

Python 量化库错误 : DayCounter_yearFraction

c++ - Phong 着色问题

c++ - 如何使用 boost::asio 查找 UDP 数据包的目标地址?