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

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

围绕收益率展开的若干计算(如计算贴现因子)是固定收益分析中最基础的部分。同时,由于固定收益产品在付息频率、计息方式、天数计算规则等细节方面的多样性,这一块的计算显得更加复杂繁琐。QuantLib 将与收益率有关的计算整合封装在 InterestRate 类,用户所作的只是按照规定配置特定的参数。

载入 QuantLib:

import QuantLib as ql

print(ql.__version__)
1.12

InterestRate 对象的构造

InterestRate 对象的构造需要四个参数,

InterestRate(r,
dc,
comp,
freq)

这些变量的类型和解释如下:

  • r,浮点数,收益率大小;
  • dc,DayCounter 对象,配置天数计算规则;
  • comp,整数,配置计息方式,取值范围是 quantlib-python 的一些预留变量;
  • freq,整数,配置付息频率,取值范围是 quantlib-python 的一些预留变量。

目前 quantlib-python 支持的计息方式有:

  • Simple,\(1 + r\tau\),单利
  • Compounded,\((1 + r)^\tau\),复利
  • Continuous,\(e^{r\tau}\),连续复利

目前 quantlib-python 支持的计息方式有很多:

  • NoFrequency,无付息;
  • Once,付息一次,常见于零息债券;
  • Annual,每年付息一次;
  • Semiannual,每半年付息一次;
  • EveryFourthMonth,每 4 个月年付息一次;
  • Quarterly,每季度付息一次;
  • Bimonthly,每两个月付息一次;
  • Monthly,每月付息一次;
  • EveryFourthWeek,每 4 周付息一次;
  • Biweekly,每两周付息一次;
  • Weekly,每周付息一次;
  • Daily,每天付息一次。

一些常用的成员函数

下面是一些常用的成员函数:

  • rate():浮点数,返回收益率的值;
  • dayCounter():DayCounter 对象,返回控制天数计算规则的成员变量;
  • compounding():整数,返回计息方式;
  • frequency():整数,返回付息频率。
  • discountFactor(d1, d2):浮点数,d1 和 d2 都是 Date 型对象(d1 < d2),返回 d1 到 d2 的贴现因子大小;
  • compoundFactor(d1, d2):浮点数,d1 和 d2 都是 Date 型对象(d1 < d2),返回 d1 到 d2 的付息因子大小;
  • equivalentRate(resultDC, comp, freq, d1, d2):InterestRate 对象,返回某个与当前对象等价的 InterestRate 对象,该对象的配置参数包括 resultDC、comp、freq:
    • d1 和 d2 都是 Date 型对象(d1 < d2)
    • resultDC,DayCounter 对象,配置天数计算规则;
    • comp,整数,配置计息方式,取值范围是 quantlib-python 的一些预留变量;
    • freq,整数,配置付息频率,取值范围是 quantlib-python 的一些预留变量。

某些情况下需要根据付息因子的大小逆算收益率,InterestRate 类提供了函数 impliedRate 实现这一功能:

  • impliedRate(compound, resultDC, comp, freq, d1, d2):InterestRate 对象,返回逆算出的 InterestRate 对象,该对象的配置参数包括 resultDC、comp、freq:

    • d1 和 d2 都是 Date 型对象(d1 < d2)
    • resultDC,DayCounter 对象,配置天数计算规则;
    • comp,整数,配置计息方式,取值范围是 quantlib-python 的一些预留变量;
    • freq,整数,配置付息频率,取值范围是 quantlib-python 的一些预留变量。

例子1:

def InterestRate1():
dc = ql.ActualActual()
myRate = ql.InterestRate(
0.0341, dc, ql.Simple, ql.Annual) print('Rate:', myRate) d1 = ql.Date(10, ql.September, 2009)
d2 = d1 + ql.Period(3, ql.Months)
compFact = myRate.compoundFactor(d1, d2) print('Compound Factor: ', compFact)
print('Discount Factor: ', myRate.discountFactor(d1, d2))
print(
'Equivalent Rate: ',
myRate.equivalentRate(
dc, ql.Continuous, ql.Semiannual, d1, d2)) implRate = ql.InterestRate.impliedRate(
compFact, dc, ql.Simple, ql.Annual, d1, d2) print('Implied Rate from Comp Fact : ', implRate) InterestRate1()
Rate: 3.410000 % Actual/Actual (ISDA) simple compounding
Compound Factor: 1.0085016438356165
Discount Factor: 0.9915700248109837
Equivalent Rate: 3.395586 % Actual/Actual (ISDA) continuous compounding
Implied Rate from Comp Fact : 3.410000 % Actual/Actual (ISDA) simple compounding

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. ubuntu下的文件夹命名

    本文主要学习引用了http://dbua.iteye.com/blog/943945的方法.分享快乐,嘿嘿. 由于本人菜鸟一枚,所以ubuntu选的中文,但是安装后会发现文件夹名称,什么桌面啦,下载啦 ...

  2. 京东应用架构设计ppt阅读总结

    (一)架构设计原则总结: 1.架构愿景:高可用性.高可扩展性.低成本.多快好省(高时效.高人效.低成本) 2.业务架构设计原则:基础业务下沉抽象成平台.核心业务非核心业务分离.隔离不同类型的业务.主流 ...

  3. 利用NotePad++ 格式化代码(格式标准化) worldsing

    在阅读别人的代码时往往会遇到格式很乱,阅读起来很费劲,如果手动改很容易出错,而且很费时间,这时可以借助一些专业的编辑器来格式化代码,NotePad++是一个轻量级的代码编辑器,占用内存少,运行速度快, ...

  4. mvc html.PartialView()传参

    方式一,viewDatapublic static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName, ...

  5. 使用Git 管理heroku的项目(windows)

    此过程与管理github中的项目类似,即是普通的git配置 安装 Heroku Toolbelt, 里面包含了 msygit Foreman,以及heroku的命令行界面 1.首先在heroku上新建 ...

  6. 動態修改 XML 欄位

    /* -- for test DECLARE @content VARCHAR(50) DECLARE @folioId VARCHAR(50) DECLARE @opinionType VARCHA ...

  7. Window vista 以上制作自定义证书并为端口配置ssl

    此处的关键在于证书需要分两步,不然在配置ssl时总会有错误.也许makecert命令也会有些玄机,但是管他呢,请按以下步骤和命令配置,几分钟就可成功: 证书制作: 1,  在开始/所有程序(或其他地方 ...

  8. linux常见命令-查看磁盘空间

    linux查看磁盘使用情况命令 1. 统一每个目录下磁盘的整体情况: df -h 2. 查看指定目录,在命令后直接放目录名,比如查看“usr”目录使用情况:df -h  /usr/ 3. 查看当前目录 ...

  9. Lucene索引的【增、删、改、查】

    前言 搞检索的,应该多少都会了解Lucene一些,它开源而且简单上手,官方API足够编写些小DEMO.并且根据倒排索引,实现快速检索.本文就简单的实现增量添加索引,删除索引,通过关键字查询,以及更新索 ...

  10. python day25 正则表达式

    2019.4.30 S21 day25笔记总结 正则表达式 1. 正则表达式 re模块:re模块本身只是用来操作正则表达式的,和正则本身没关系. 正则表达式:是一种规则 匹配字符串的规则. 为什么要有 ...