当前位置: 首页 > news >正文

QuantLib学习笔记——InterestRate的应用

⭐️ 单利还是复利

巴菲特老爷子有句名言:“人生就像滚雪球,重要的是发现很湿的雪和很长的坡。” 很湿的雪,指的就是复利。很长的坡,指的就是时间。很湿的雪和很长的坡组合起来,就能滚成巨大的雪球。

哈哈,复利是多么让人愉快啊!!!连爱因斯坦都称它为世界第八大奇迹。

在这里插入图片描述
这里引出一个概念:计息方式,
大家知道,计息方式有两种,单利和复利,两者的主要区别在于利息是否参与计息,在单利中,每次产生的利息不会和本金放在一起参与计息,而复利则相反。👇

单利:是指按照固定的本金计算利息

复利:是指第一期产生利息后,第二次的本金包括之前的本金和上次产生的利息,以此为本金计算利息,后面的计息周期以此类推(复利又叫利滚利)。

假如你有一项投资,你希望它是单利的,还是复利的?

⭐️ 因子

为说明因子的概念,这里需要引入一些公式,很简单的公式,我们以复利为例。
设P代表终值,r代表利率,U代表本金或初值,n代表计息期数,比如1年,1个月等等。
按照复利的定义,我没有
在这里插入图片描述

n可以取整数,也可以取小数,比如以年为计息周期,则n取0.5代表半年。
这里出现了复利因子和折扣因子,我们可以看出,
当前价值一块钱的资产,在计息结束后的价值就等于复利因子。
计息结束后价值一块钱的资产,其当前价值就等于折扣因子。

复利因子和折扣因子是互为倒数的关系。

单利的情况依次类推。

⭐️ QuantLib的利率类

该类用于实例化一个利率(而非利率期限结构)并提供了一些利率相关的计算

ql.InterestRate(rate, dayCount, compounding, frequency)

参数说明如下

参数说明
rate利率的值
dayCounter计日器,它可以按照某种约定判断某日是否参与计息并计算计息天数
compounding是单利还是复利计息
frequency计息频率,是半年一次还是一年一次,等等

它有一些重要的成员方法,如下所示

参数说明
rate()返回利率的值
dayCounter()返回计日器对象
discountFactor(d1, d2)计算从日期d1到日期d2这段时间的折扣因子,d1小于d2
compoundFactor(d1, d2)计算从日期d1到日期d2这段时间的复利因子或单利因子,d1小于d2
impliedRate(compound, resultDC, comp, freq, d1, d2)在给定某段时间内的复利因子的情况下,返回一个利率,这个利率就是隐含利率
equivalentRate(resultDC, comp, freq, d1, d2)返回一个等效利率

这里特别说明一下 equivalentRate 这个方法,它产生一个和当前利率等效的利率
何为等效?在这里,等效就是经过一段时间的计息,产生了相同的利息。等效利率和原利率可以有不同的日期计数规则,计息方式和计息频率等。

⭐️ 代码

本文代码调用了一些利率类的方法

import QuantLib as qlif __name__ == "__main__": # 当前利率的值r = 0.05# 输出按公式计算的因子print("python计算的两年期复利因子: ", (1+r)**2)print("python计算的两年期折扣因子: ", 1/(1+r)**2)   # 开始计息日d1 = ql.Date(15,6,2020)# 结束计息日d2 = ql.Date(15,6,2022)# 利率对象rate = ql.InterestRate(r, ql.Actual360(), ql.Compounded, ql.Annual)# 利率值print("利率值: ", rate.rate())# 日期计数器print("日期计数器: ", rate.dayCounter())# 2年以后,即2年期折扣因子print("2年期折扣因子: ", rate.discountFactor(2))# 从d1到d2的折扣因子print("从d1到d2的折扣因子: ", rate.discountFactor(d1, d2))# 从d1到d2的复利因子print("从d1到d2的复利因子: ", rate.compoundFactor(d1, d2))# 等效利率print("等效利率: ", rate.equivalentRate(ql.Actual360(), ql.Compounded, ql.Semiannual, d1, d2))# 隐含利率factor = rate.compoundFactor(d1, d2)print("隐含利率: ", rate.impliedRate(factor, ql.Actual360(), ql.Continuous, ql.Annual, d1, d2))

代码执行结果如下

python计算的两年期复利因子:  1.1025
python计算的两年期折扣因子:  0.9070294784580498
利率值:  0.05
日期计数器:  Actual/360 day counter
2年期折扣因子:  0.9070294784580498
从d1到d2的折扣因子:  0.9058010300610555
从d1到d2的复利因子:  1.103995211765872
等效利率:  4.939015 % Actual/360 Semiannual compounding
隐含利率:  4.879016 % Actual/360 continuous compounding

笔者水平有限,若有不对的地方欢迎评论指正!

http://www.lryc.cn/news/155453.html

相关文章:

  • 记录--解决前端内存泄漏:问题概览与实用解决方案
  • IP初学习
  • live5555 testProgs目录
  • yolov5模型s,l,m,x的区别
  • Springboot 实践(13)spring boot 整合RabbitMq
  • YoloV8改进策略:轻量级Slim Neck打造极致的YoloV8
  • 使用java代码给Excel加水印,代码全,进阶版
  • day37:网编day4,多点通信和并发服务器
  • STM32 硬件IIC 控制OLED I2C卡死问题
  • Redis图文指南
  • C++17 std::string_view介绍与使用
  • 写得了代码,焊得了板!嵌入式开发工程师必修之代码管理方案(下)
  • Matlab论文插图绘制模板第110期—水平双向柱状图
  • 【广州华锐互动】VR全景工厂虚拟导览,虚拟现实技术提升企业数字化信息管理水平
  • idea 创建mybatis xml文件时找不到
  • Python钢筋混凝土结构计算.pdf-混凝土构件计算
  • mysql5.7-基于docker-compose搭建主从同步
  • 【USRP】调制解调系列5:16QAM、32QAM、64QAM、256QAM、1024QAM、基于labview的实现
  • Odoo|5分钟创建自定义的业务系统唯一序列号
  • mysql索引为什么提高查询速度(底层原理)
  • 算法通关村——位运算在查找重复元素中的妙用
  • 使用环境中的视觉地标和扩展卡尔曼滤波器定位移动机器人研究(Matlab代码实现)
  • 【python基础知识】5.for循环和while循环
  • STM32CUBEMX_创建时间片轮询架构的软件框架
  • vue 插槽Slots
  • 论文阅读《Nougat:Neural Optical Understanding for Academic Documents》
  • 较难的换根dp:P6213 「SWTR-04」Collecting Coins
  • Springboot - 15.二级分布式缓存集成-Caffeine
  • 二叉树的介绍及二叉树的链式结构的实现(C语言版)
  • 不同写法的性能差异