在交易利率互换产品时,如果要对利率互换进行定价估值,或者计算它的风险敏感度指标,比如DV01。基础要求是需要对利率互换产品的贴现利率进行计算,即计算即期利率值。

这里以Shibor 3M为参考利率的利率互换为例,阐述进行即期利率计算的python思路。

首先,需要获得Shibor和Shibor 3M利率互换收盘曲线的报价数据,将其作为excel输入文件。

通过pands库来读取输入文件数据,转换为一个dataframe进行后续的计算处理。

目前曲线的关键期限点是1w, 1M, 3M, 6M,9M,1Y,2Y,3Y,5Y,7Y,10Y。 由于利率互换支付频率是3M一次,所以需要将1Y-10Y中按3个月设置出分段的期限点来。同时要对应每个期限点的日期具体是哪一天。

这里用pandas可直接对列的每个数据进行相同的操作。用dataframe的loc来筛选变更对应数据的数值。

用datetime和relativedelta来计算相应期限点的日期。

之后,对这些期限日期进行节假日调整,可以设置一列通过is_workday判断是否是工作日,然后将非工作日的日期调整到下一天直到该日期是个工作日。如果是月末日期,则需要向前一天调整。

调整好节假日后,根据现有日期计算每个期限点的期限差,并初始化即期利率和贴现因子为1.

开始进行1Y内的短期限的即期利率的计算。此时应用1Y内的计算公式:

名义本金*(期限*利率值+1)*贴现因子=名义本金。 计算时名义本金可以当作1.

贴现因子=exp(-利率值*期限)

而6M-1Y的即期利率,每3个月进行一次现金流支付折现。最后一段现金流要加上期末的名义本金。

每段现金流折现的总和减去名义本金等于0。

这里引入scipy.optimize 作为so,定义一个函数,将上述现金流折现的等式作为函数因变量返回,将期限点的即期利率作为函数的自变量。通过so计算在满足该现金流折现等式下的函数值最优解。

后续1Y-10Y的计算思路也差不多是这样。

可以得到关键期限点的即期利率值。

然后用线性插值法,算出每个关键期限点之间,每一天对应的即期利率即可。

可以新建一个df2的dataframe来写入每一天的即期利率。python里用interpolate(method='linear')来插值即期利率。

这样就可以得到完整的每一天的即期利率。

最后用pd.to_excel()保存为excel文件就好。

【如何用python计算利率互换收盘曲线的即期利率】相关推荐

  1. 如何用python完成基本统计信息计算_如何用python计算基本统计值?

    如何用python计算基本统计值? 用python计算基本统计值的代码为def getNum(): #从控制台获取多个不确定数据的方法 nums = []; iNumStr = input(" ...

  2. 如何用python计算圆周率_如何用python计算圆周率?

    如何用python计算圆周率? python计算圆周率的方法: 圆周率没有精确的计算公式,所以只能用近似的方式计算它的近似值. 我们运用蒙特卡罗方法,思路很简单,在下面图形中随机抛置大量的点, 计算落 ...

  3. python牛顿法求方程的根_python计算方程式根的方法 如何用python计算三元方程

    已知一元二次方程的3个参数a,b,c,编写python程序分享import math a = float(raw_input('Enter coefficient a')) b = float(raw ...

  4. chatgpt赋能python:Python开立方根:什么是立方根,如何用Python计算?

    Python开立方根:什么是立方根,如何用Python计算? 如果您正在寻找一种简单的方法来计算任何数字的立方根,那么Python可以为您提供答案.立方根是指一个数字的三次方根,也就是说,要找到一个数 ...

  5. 【Python】如何用 python 计算矩阵相乘 - numpy.dot()

    文章目录 一.如何用 python 计算矩阵乘法? 二.实例 参考链接 一.如何用 python 计算矩阵乘法? 使用 Numpy 包里的 dot() 函数. 该函数主要功能有两个:向量点积 和 矩阵 ...

  6. chatgpt赋能python:如何用Python计算球的表面积和体积

    如何用Python计算球的表面积和体积 球体是数学中的常见图形,计算球的表面积和体积是科学研究和应用中的重要问题.Python作为一种高效.易学.广泛使用的编程语言,可以很方便地用于计算球的表面积和体 ...

  7. python计算圆柱体积_如何用PYTHON计算体积公式

    用PYTHON计算体积公式 工具/原料 PYTHON 方法/步骤 1 打开PYTHON,新建一个空白的PY文档. 2 import math dir() 首先我们要引入模块,然后查看目录是否已经引入成 ...

  8. 如何用python计算工资-手把手用Python教你分析运筹学薪资状况

    『运筹OR帷幄』原创 作者:周岩 由于近些年互联网和计算机的发展,数据对于各各行业来说是一块新的"金矿",再加上近两年人工智能的兴起,数据的重要性更是越加的凸显,因此一些新的职业比 ...

  9. python计算二维平面的曲线的曲率

    曲率用来描述一段曲线像一个圆的程度,曲率的倒数就是曲率半径 曲率半径越大,曲率越小,说明曲线越平滑 曲率半径越小,曲率越大,说明曲线越弯 曲率半径的百度百科网址:https://baike.baidu ...

最新文章

  1. 福建2020年3月计算机二级报名时间,福建2020年3月计算机等级考试报名时间
  2. Ajax的用法之JQuery
  3. 008 释放技能call分析
  4. 执行上下文(Exection Contexts)
  5. jenkins 发送邮件插件Email Extension Template Plugin配置及script pipeline完整脚本
  6. 关于完善Github repo里文档的规范做法
  7. 【OpenCV 例程200篇】81. 频率域高斯低通滤波器
  8. mysql脚本编写与案例_MySQL语句执行顺序和编写顺序实例解析
  9. 前端输入框错误提示_WEB/APP开发基础之旅--前端、服务器端、数据库综合开发案例...
  10. I.MX6 shutdown by software
  11. Android音频路由策略
  12. go语言编写同时支持Linux和Windows的单文件Web界面文件浏览器filebrowser介绍
  13. Word怎么制作流程图
  14. Vue 2.x + Element后台模板开发教程(三)后台首页模板设计
  15. 5*5盒式滤波器matlab代码
  16. 回溯法——回溯法的算法思想
  17. 《C语言程序设计》(谭浩强第五版) 第2章 算法——程序的灵魂
  18. imo班聊未读消息提示优化
  19. Python更新pip错误解决方法
  20. java创建文件目录_java创建目录或文件夹的方法?

热门文章

  1. Docker的Image
  2. C# StreamReader
  3. 毕业设计 Spring Boot的共享充电宝管理系统(含源码+论文)
  4. 三角形主机即将登陆韩国市场
  5. 猴子选大王 java_猴子选大王
  6. Cannot read property 'parentElement' of undefined问题解决
  7. C语言quantity用法,quantity是什么意思?
  8. DFS算法(含步骤总结)
  9. Antd修改Table表格行间距
  10. 一文带你了解XP和Scrum