如果未做特别说明,文中的程序都是 Python3 代码。

QuantLib 金融计算——基本组件之 DayCounter 类

“天数计算规则”(Day Count Convention)对金融产品的估值至关重要,尤其是对固定收益类的产品。QuantLib 提供了下列常见的规则:

  • Actual360:Actual / 360
  • Actual365Fixed:Actual / 365(Fixed)
  • ActualActual:Actual / Actual
  • Business252:Business / 252
  • Thirty360:30 / 360

载入 QuantLib:

import QuantLib as ql

print(ql.__version__)
1.10

DayCounter 对象的构造

DayCounter 对象的构造非常简便,例如,要构造 Actual / 360 规则的对象,只需 myCounter = Actual360() 即可。有些规则还允许针对具体的产品和市场配置相应的参数,例如针对美国国债市场使用的 Act / Act ISMA 规则可以这样构造:myCounter = ActualActual(ActualActual.ISMA),其中 ActualActual.ISMA 是 quantlib-python 预留的特殊变量。

一些常用的成员函数

常用的成员函数有两个:

  • dayCount(d1, d2):计算 d1d2 之间的天数。
  • yearFraction(d1, d2):将 d1d2 之间的天数年化。

例子 1:

def DayCounterTesting1():
dc = ql.Thirty360() d1 = ql.Date(1, ql.March, 2018)
d2 = d1 + ql.Period(2, ql.Months) print('Days Between d1 / d2:', dc.dayCount(d1, d2))
print('Year Fraction d1 / d2:', dc.yearFraction(d1, d2))
print('Actual Days Between d1 / d2:', d2 - d1)
print('d1:', d1)
print('d2:', d2)
Days Between d1 / d2: 60
Year Fraction d1 / d2: 0.16666666666666666
Actual Days Between d1 / d2: 61
d1: March 1st, 2018
d2: May 1st, 2018

2018-03-01 向后推移两个月后是 2018-05-01,两者的实际距离是 61 天。但在 Thirty / 360 的规则下,每年有 360 天,每月有 30 天,所以两者的距离是 60 天,60 天年化后的结果是 60 / 360 = 1 / 6。

最新文章

  1. (整理)MyBatis入门教程(一)
  2. 关于2016.12.12——T1的反思:凸包的意义与应用
  3. 3357: [Usaco2004]等差数列
  4. php empty,isset,is_null比较(差异与异同)
  5. ios -网络加载json和本地加载json
  6. splice slice
  7. 【Unity】13.1 场景视图中的GI可视化
  8. idea常用快捷键大全(转)
  9. android微信简单界面
  10. When to use DataContract and DataMember attributes?
  11. Codeforces Round #204 (Div. 2): A
  12. WebSQL实例记录
  13. Swift纯代码走进UICollectionView
  14. uestc poj2559 秋实大哥去打工
  15. QTableView表格滚动条样式(QSS真是细致到家了)
  16. JS的预编译和执行顺序 详析
  17. ref和out,以及一般方法的引用参数和值参数寻解
  18. VxWorks嵌入式系统几种常用的延时方法
  19. UML在代码中的展现
  20. linux下安装python3(转)

热门文章

  1. rsync同步常用命令[转载]
  2. [Selenium] Java代码获取屏幕分辨率
  3. 产品设计师 VS UX设计师:你更想成为哪一个?
  4. msys2 + clion安装所需的mingw64编译环境
  5. DB2日期转格式化字符串
  6. Oracle GoldenGate 二、配置和使用
  7. 虚拟机CentOS6.5搭建samba服务器实现文件共享
  8. 让UITableView的Cell都变成静态的
  9. Xcode使用心得01:断点中断问题和调整编译目标[转]
  10. Linux 基础教程 33-硬盘分区及挂载