如果未做特别说明,文中的程序都是 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。

QuantLib 金融计算——基本组件之 DayCounter 类的更多相关文章

  1. QuantLib 金融计算——基本组件之 Index 类

    目录 QuantLib 金融计算--基本组件之 Index 类 QuantLib 金融计算--基本组件之 Index 类 Index 类用于表示已知的指数或者收益率,例如 Libor 或 Shibor ...

  2. QuantLib 金融计算——基本组件之 InterestRate 类

    目录 QuantLib 金融计算--基本组件之 InterestRate 类 InterestRate 对象的构造 一些常用的成员函数 如果未做特别说明,文中的程序都是 Python3 代码. Qua ...

  3. QuantLib 金融计算——基本组件之 Currency 类

    目录 QuantLib 金融计算--基本组件之 Currency 类 概述 构造函数 成员函数 如果未做特别说明,文中的程序都是 python3 代码. QuantLib 金融计算--基本组件之 Cu ...

  4. QuantLib 金融计算——基本组件之 Date 类

    目录 QuantLib 金融计算--基本组件之 Date 类 Date 对象的构造 一些常用的成员函数 一些常用的静态函数 为估值计算配置日期 如果未做特别说明,文中的程序都是 Python3 代码. ...

  5. QuantLib 金融计算——基本组件之 Calendar 类

    目录 QuantLib 金融计算--基本组件之 Calendar 类 Calendar 对象的构造 一些常用的成员函数 自定义假期列表 工作日修正 如果未做特别说明,文中的程序都是 Python3 代 ...

  6. QuantLib 金融计算——基本组件之 DateGeneration 类

    目录 QuantLib 金融计算--基本组件之 DateGeneration 类 QuantLib 金融计算--基本组件之 DateGeneration 类 许多产品的估值依赖于对未来现金流的分析,因 ...

  7. QuantLib 金融计算——基本组件之 Schedule 类

    目录 QuantLib 金融计算--基本组件之 Schedule 类 Schedule 对象的构造 作为"容器"的 Schedule 对象 一些常用的成员函数 如果未做特别说明,文 ...

  8. QuantLib 金融计算——基本组件之 ExchangeRateManager 类

    目录 QuantLib 金融计算--基本组件之 ExchangeRateManager 类 概述 Money 类中的汇率转换配置 ExchangeRateManager 函数 如果未做特别说明,文中的 ...

  9. QuantLib 金融计算——基本组件之 Money 类

    目录 QuantLib 金融计算--基本组件之 Money 类 概述 构造函数 成员函数 如果未做特别说明,文中的程序都是 python3 代码. QuantLib 金融计算--基本组件之 Money ...

随机推荐

  1. Java程序设计8——抽象类、接口与内部类

    1 抽象类 当编写一个类时,常常会为该类定义一些方法,这些方法用以描述该类的行为方式,那么这些方法都有具体的方法体.但在某些情况下,某个父类并不需要实现,因为它只需要当做一个模板,而具体的实现,可以由 ...

  2. 基于Web Service的客户端框架搭建二:数据转换层(FCL)

    引言 要使用WebService来分离客户端与服务端,必定要使用约定好两者之间的数据契约.Json数据以其完全独立于语言的优势,成为开发者的首选.C# JavaScriptSerializer为Jso ...

  3. SVN下的文件被locked不能update和commit

    一次早上开机svn更新代码,提示某一个文件夹被locked,提示clean up,但是clearn up也不行,get lock不行,release lock不行 根据网上搜的,.svn(隐藏文件夹) ...

  4. Redis数据结构(三)

    Redis五种数据类型: (1)字符串 (2)字符串列表 (3)有序字符串集合 (4)哈希 (5)字符串集合 其中(4)(5)应用最多. key命名的注意: (1)不要过长,尽量不要超过1024,会降 ...

  5. SGU 194 Reactor Cooling (有容量和下界的可行流)

    题意:给定上一个有容量和下界的网络,让你求出一组可行解. 析:先建立一个超级源点 s 和汇点 t ,然后在输入时记录到每个结点的下界的和,建边的时候就建立c - b的最后再建立 s 和 t , 在建立 ...

  6. gcc支持的一种结构体赋值方式

    struct info{ int a; char b; struct fd{    int c;    int d;          }fg;}; 其实我们也可以这样赋值:同样对于其他的类型也是一样 ...

  7. (DP)uva 10036 Problem C: Divisibility

    链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=88171#problem/F 代码: #include <cstdio> ...

  8. openGL中的原理理解1---一个视图需要支持OGL需要配置,GLenbalView的理解

    OpenGL的绘图机制是 OpenGL的绘图方式与Windows一般的绘图方式是不同的,主要区别如下: (1)Windows采用的是GDI(Graphy Device Interface 图形设备接口 ...

  9. Ubuntu的TOOL工具收集

    Ubuntu工具 1. Ubuntu下嵌入式开发环境的搭建 http://www.linuxidc.com/Linux/2011-03/33824.htm

  10. Java动态代理(一)动态类Proxy的使用

    1.什么是动态代理? 答:动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实.代理一般会实现它所表示的实际对象的接口.代理可以访问实际对象,但是延迟实现实际对象的部分功能,实际对象实现系统 ...