如何使用QuantLib计算单名债券价格
How to calculate single-name bond price using QuantLib?
我想计算债券的价格,折扣系数是时间的函数,息票是固定的。
我从QuantLib 1.5中找到的例子(bond.cpp)看起来相当复杂。我删除了零息债券和浮动息债券,只留下固定息债券的计算部分。
我不明白的是,根据我的表格,我应该如何定义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));
其中,dates
是vector<Date>
(必须包括曲线开始的第一个日期,通常是今天的日期),discounts
是包含相应折扣因子的vector<double>
(包括作为第一个的1),并且dayCounter
将用于将日期转换为时间;Actual360()
应该可以。
上面的例子使用对数线性插值;您可以通过将LogLinear
替换为另一个来更改它(查看<ql/math/interpolations/>
文件夹中的可用文件夹)。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 如何计算文件中的"columns"数?
- 计算排序向量的向量中唯一值的计数
- 如何使用 std::累积在 C++ 中计算总和立方体
- 使用Qt C++计算类似Git的SHA1哈希
- OpenCV C++.快速计算混淆矩阵
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- C++如何计算用户输入的数字中的偶数位数
- 如何计算数据类型的范围,例如int
- 类似枚举的计算常量
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 计算缩放多边形的比例,得到给定的多边形面积
- 在C++中如何在没有pow的情况下进行基础计算
- 计算平均值,不包括上次得分
- 如何使用QuantLib计算单名债券价格