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 ...
随机推荐
- 优化 resolv.conf
DNS lookup 在把域名解析成 IP 过程中耽误了不少时间,尤其是访问比较复杂的网站的时候,比如某个页面包含多个 url,一次请求需要做多次 DNS 解析,并且从用户浏览器到 DNS serve ...
- Python中numpy.apply_along_axis()函数的用法
numpy.apply_along_axis(func, axis, arr, *args, **kwargs): 必选参数:func,axis,arr.其中func是我们自定义的一个函数,函数fun ...
- JavaScript 对象属性作实参以及实参对象的callee属性
参考自<<JavaScript权威指南 第6版>> /* * 将对象属性用作实参, 从而不必记住参数的顺序. */ function arraycopy(from,from_s ...
- mybatis Generator 生成配置文件
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE generatorConfiguration ...
- 转 org.aspectj.lang.JoinPoint-中文简要API
AspectJ使用org.aspectj.lang.JoinPoint接口表示目标类连接点对象,如果是环绕增强时,使用org.aspectj.lang.ProceedingJoinPoint表示连接点 ...
- awk基础05-自定义函数和脚本
在之前文章中,我们都是在命令行中写一些简短的awk命令,而awk做为一门解释型语言,一样是支持脚本运行的. 基本语法 #!/bin/awk -f # 注释 awk 脚本体 #!:同shell, ...
- MFC中的一般经验之谈----OnInitialUpdate
在MFC程序设计中,按照传统的设计,如果处理WM_PAINT消息,一般会派生一个OnPaint函数,映射到WM_PAINT消息上进行绘图处理.但是很多程序中并没有出现OnPaint,一个OnDraw函 ...
- 工作中经常打交道的Java代码の容器(一)
- django设置cookie和session
1 设置cookie 本例中应用名称为cookie 模型model from django.db import models from django.db import models class Us ...
- 在TFS 2013的迭代视图中修改工作项数目限制
当TFS迭代中的工作项数目超过500时,在TFS的网页(Web Access)显示中就会出现红色警告提示"积压工作(backlog)中的项数超出配置的限制500.当前总数为529-.&quo ...