QuantLib 金融计算——基本组件之 InterestRate 类
如果未做特别说明,文中的程序都是 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 类的更多相关文章
- QuantLib 金融计算——基本组件之 Currency 类
目录 QuantLib 金融计算--基本组件之 Currency 类 概述 构造函数 成员函数 如果未做特别说明,文中的程序都是 python3 代码. QuantLib 金融计算--基本组件之 Cu ...
- QuantLib 金融计算——基本组件之 Date 类
目录 QuantLib 金融计算--基本组件之 Date 类 Date 对象的构造 一些常用的成员函数 一些常用的静态函数 为估值计算配置日期 如果未做特别说明,文中的程序都是 Python3 代码. ...
- QuantLib 金融计算——基本组件之 Calendar 类
目录 QuantLib 金融计算--基本组件之 Calendar 类 Calendar 对象的构造 一些常用的成员函数 自定义假期列表 工作日修正 如果未做特别说明,文中的程序都是 Python3 代 ...
- QuantLib 金融计算——基本组件之 DayCounter 类
目录 QuantLib 金融计算--基本组件之 DayCounter 类 DayCounter 对象的构造 一些常用的成员函数 如果未做特别说明,文中的程序都是 Python3 代码. QuantLi ...
- QuantLib 金融计算——基本组件之 DateGeneration 类
目录 QuantLib 金融计算--基本组件之 DateGeneration 类 QuantLib 金融计算--基本组件之 DateGeneration 类 许多产品的估值依赖于对未来现金流的分析,因 ...
- QuantLib 金融计算——基本组件之 Schedule 类
目录 QuantLib 金融计算--基本组件之 Schedule 类 Schedule 对象的构造 作为"容器"的 Schedule 对象 一些常用的成员函数 如果未做特别说明,文 ...
- QuantLib 金融计算——基本组件之 Index 类
目录 QuantLib 金融计算--基本组件之 Index 类 QuantLib 金融计算--基本组件之 Index 类 Index 类用于表示已知的指数或者收益率,例如 Libor 或 Shibor ...
- QuantLib 金融计算——基本组件之 ExchangeRateManager 类
目录 QuantLib 金融计算--基本组件之 ExchangeRateManager 类 概述 Money 类中的汇率转换配置 ExchangeRateManager 函数 如果未做特别说明,文中的 ...
- QuantLib 金融计算——基本组件之 Money 类
目录 QuantLib 金融计算--基本组件之 Money 类 概述 构造函数 成员函数 如果未做特别说明,文中的程序都是 python3 代码. QuantLib 金融计算--基本组件之 Money ...
随机推荐
- Linux内核分析 - 网络[十四]:IP选项
Linux内核分析 - 网络[十四]:IP选项 标签: linux内核网络structsocketdst 2012-04-25 17:14 5639人阅读 评论(1) 收藏 举报 分类: 内核协议栈 ...
- 阿里云Object Storage Service(OSS)
最近在做一个文件上传.下载的东西,由于上传下载操作频繁.文件存储到独立的服务器, 后来发现阿里云有一项文件存储服务,介绍说很好用,于是就开始使用了. https://help.aliyun.com/d ...
- 安装scrapy解决的坑
在windows下: pip install scrapy 最后一步报错: 本来以为是缺少 Microsoft Visual C++ 14.0 这个库,一看下载需要400多M,算了再看下报错... 感 ...
- 分布式java应用基础与实践
始读于2014年4月30日,完成于2014年6月6日15:43:39. 阿里巴巴高级研究员林昊早年的书了,这些理论放到今天估计工作一两年的人都耳熟能详了,我个人很早以前就知道此书一直没有找到资源, ...
- Oracle GoldenGate 一、介绍和安装
1 说明 1.1 下载和文档说明 下载地址:http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html 我 ...
- Basic4android v3.00 发布
这次发布的版本主要是增加了快速debuger. 在运行时,可以在IDE 里面随时修改代码,而不需要重新发布应用. 大大提高了开发效率. Basic4android v3.00 is released. ...
- 服务器上创建git仓库
1. 在服务器上 su - git ,切换用户 2. 创建一个目录 mkdir test.git ,请注意带上 .git 扩展 3. 切换进入此目录,git init --bare ,初始化裸 ...
- linux平台 spark standalone集群 使用 start-all,stop-all 管理集群的启动和退出
一.配置/etc/profile: 文件尾部增加以下内容: export SPARK_HOME=/home/spark/spark-2.2.0-bin-hadoop2.7 export PATH=$P ...
- CodeForces 686B Little Robber Girl's Zoo (构造冒泡排序)
题意:给定一排列,让你通过一个区间交换的方式,完成排序. 析:这个题说了,最多不能超过20000次,而 n 最大才100,那么冒泡排序复杂度为 n * n,才10000,肯定是可以的,所以我们就模拟冒 ...
- openGL中的原理理解1---一个视图需要支持OGL需要配置,GLenbalView的理解
OpenGL的绘图机制是 OpenGL的绘图方式与Windows一般的绘图方式是不同的,主要区别如下: (1)Windows采用的是GDI(Graphy Device Interface 图形设备接口 ...