FRM模型十三:互换定价(二)

news2024/9/28 15:18:51

定义一个互换,本金为1e7,7年后到期
固定端:利率2.5%,每年付息一次
浮动端:Libor6M,每半年付息一次

import QuantLib as ql
from prettytable import PrettyTable


# 定义全局时间:当前日期,下一个结算日,到期日
calendar = ql.UnitedStates(ql.UnitedStates.NYSE)   # 定义整体日历格式
todaysDate = ql.Date(20, 10, 2015)   # 定义估值日
settlementDate = calendar.advance(todaysDate, 5, ql.Days)   #定义生效日
maturityDate = calendar.advance(settlementDate, 10, ql.Years)  # 定义到期日
ql.Settings.instance().evaluationDate = todaysDate


# 定义利率的期限结构:
# 1.根据无风险利率确定利率期限结构,定义为:discount_curve
# 2.根据libor计算浮动利率端利率结构,定义为:libor_curve
risk_free_rate = 0.01
libor_rate = 0.02
day_count = ql.Actual365Fixed()
discount_curve = ql.YieldTermStructureHandle(ql.FlatForward(todaysDate, risk_free_rate, day_count))
libor_curve = ql.YieldTermStructureHandle(ql.FlatForward(todaysDate, libor_rate, day_count))



# 定义固定端基本参数
fixedLegFrequency = ql.Period(12, ql.Months)
fixedSchedule = ql.Schedule(settlementDate, maturityDate, fixedLegFrequency, calendar,
                            ql.ModifiedFollowing, ql.ModifiedFollowing, ql.DateGeneration.Forward, False)


# 定义浮动端基本参数
floatingLegFrequency = ql.Period(6, ql.Months)
floatSchedule = ql.Schedule(settlementDate, maturityDate, floatingLegFrequency, calendar,
                            ql.ModifiedFollowing, ql.ModifiedFollowing, ql.DateGeneration.Forward, False)


# 定义一个互换,本金为1e7,7年后到期
# 固定端:利率2.5%,每年付息一次
# 浮动端:Libor6M,每半年付息一次
swapType = ql.VanillaSwap.Payer
nominal = 10000000
fixedRate = 0.025
float_spread = 0.004
fixedLegDayCounter = ql.Actual360()  # 固定端计息方式
floatingLegDayCounter = ql.Actual360()  # 浮动端计息方式
libor3M_index = ql.USDLibor(ql.Period(6, ql.Months), libor_curve)

# 对swap进行估值
spot7YearSwap = ql.VanillaSwap(swapType, nominal, fixedSchedule, fixedRate, fixedLegDayCounter, floatSchedule,
                                libor3M_index, float_spread, floatingLegDayCounter)
swapEngine = ql.DiscountingSwapEngine(discount_curve)     # 根据当前的利率结构折现求互换定价
spot7YearSwap.setPricingEngine(swapEngine)


# 打印固定端和浮动端的现金流
fixedTable = PrettyTable(['Date', 'cashflow'])
floatTable = PrettyTable(['Date', 'cashflow'])

for i, cf in enumerate(spot7YearSwap.leg(0)):
    fixedTable.add_row([str(cf.date()), cf.amount()])

for i, cf in enumerate(spot7YearSwap.leg(1)):
    floatTable.add_row([str(cf.date()), cf.amount()])

print(fixedTable.get_string(title="fixed leg cashflow"))
print(floatTable.get_string(title="float leg cashflow"))


# 打印swap整体情况
print("%-20s: %20.3f" % ("Net Present Value", spot7YearSwap.NPV()))
print("%-20s: %20.3f" % ("Fair Spread", spot7YearSwap.fairSpread()))
print("%-20s: %20.3f" % ("Fair Rate", spot7YearSwap.fairRate()))
print("%-20s: %20.3f" % ("Fixed Leg BPS", spot7YearSwap.fixedLegBPS()))
print("%-20s: %20.3f" % ("Floating Leg BPS", spot7YearSwap.floatingLegBPS()))

结果输出:

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1485924.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis小白入门教程

Redis入门教程 1. Redis入门1.1 Redis简介1.2 Redis服务启动与停止1.2.1 Redis下载1.2.2 服务启动命令1.2.3 客户端连接命令1.2.4 修改Redis配置文件 2. Redis数据类型2.1 五种常用数据类型介绍2.1.1 字符串操作命令2.1.2 哈希操作命令2.1.3 列表操作命令2.1.4 集合操作命令2.1…

Java | Java中与文件同名的类的构造函数的调用

在Java的学习过程中遇到了这样一段代码: public class Test1 {int a1;public static void main(String []args){System.out.println("java");}public Test1(){System.out.println("构造函数");} }它的运行结果是这样的,构造函数中的…

进程与线程:通过实际生活来解析计算机的基本运作单位

进程与线程 进程与线程:详细解析计算机的基本运作单位1. 进程:独立的执行环境1.1 进程的特点: 2. 线程:轻量级的执行单元2.1 线程的特点: 3. 区别和联系4. 表格 进程与线程:详细解析计算机的基本运作单位 在…

win10安全中心误删文件怎么办?解析恢复与预防策略

在使用Windows 10的过程中,许多用户依赖于其内置的安全中心来保护电脑免受恶意软件的侵害。然而,有时安全中心的误判可能导致重要文件被错误地删除。当面对这种情况时,了解如何恢复误删的文件并掌握预防措施显得尤为重要。本文将为您详细解析…

LabVIEW高精度天线自动测试系统

LabVIEW高精度天线自动测试系统 系统是一个集成了LabVIEW软件的自动化天线测试平台,提高天线性能测试的精度与效率。系统通过远程控制测试仪表,实现了数据采集、方向图绘制、参数计算等功能,特别适用于对天线辐射特性的精确测量。 在天线的…

【C++】类的默认成员函数(上)

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一、默认成员函数二、构造函数构造函数的概念及特性 三、析构函数析构函数的特性…

介绍平衡准确率(Balance Accuracy)和加权 F1 值(Weighted F1)

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 先复习一下查准率、召回率和 F1 分数: 查准率是对预测结果而言,每个类别模型预测正确的比例。 召回率是对样本标签而言,每个类别中有多少被预测正确了。 F1 分数是…

电机的极数和槽数,机械角度和电角度,霍尔IC,内外转子

什么是电机的极数和槽数? 【第7集】② 正弦波驱动的转矩脉动、正弦电流的时序和相位变化、超前角控制(超前角调整)、正弦波驱动的各种波形 - 电源设计电子电路基础电源技术信息网站_罗姆电源设计R课堂 (rohm.com.cn) 下面为您介绍表示电机…

算法【线性表的查找-折半查找/二分查找/对分查找】

线性表的查找-折半查找/二分查找/对分查找 折半查找概念查找过程折半查找算法: (非递归算法) 折半查找法的性能分析性能分析:平均查找长度ASL: 复杂度折半查找法的特点: 折半查找概念 折半查找,也称为二分查找,是一种…

【JS】解构赋值注意点,解构赋值报错

报错代码 const 小明 { email: 6, pwd: 66 } const 小刚 { email: 9, pwd: 99 }const { email } 小明 const { email } 小刚 报错图 原因 2个常量重复,重复在同一个作用域内是不能重复的,例如大括号内{const a 1; const a 2} 小伙伴A提问 问&…

从头构建gpt2 基于Transformer

从头构建gpt2 基于Transformer VX关注{晓理紫|小李子},获取技术推送信息,如感兴趣,请转发给有需要的同学,谢谢支持!! 如果你感觉对你有所帮助,请关注我。 源码获取 VX关注晓理紫并回复“chatgpt…

Unreal触屏和鼠标控制旋转冲突问题

Unreal触屏和鼠标控制旋转冲突问题 鼠标控制摄像机旋转添加Input轴计算旋转角度通过轴事件控制旋转 问题和原因问题原因 解决办法增加触摸控制旋转代码触屏操作下屏蔽鼠标轴响应事件 鼠标控制摄像机旋转 通过Mouse X和Mouse Y控制摄像机旋转。 添加Input轴 计算旋转角度 通过…

10 计算机结构

冯诺依曼体系结构 冯诺依曼体系结构,也被称为普林斯顿结构,是一种计算机架构,其核心特点包括将程序指令存储和数据存储合并在一起的存储器结构,程序指令和数据的宽度相同,通常都是16位或32位 我们常见的计算机,笔记本…

Android 性能优化--APK加固(1)混淆

文章目录 为什么要开启混淆如何开启代码混淆如何开启资源压缩代码混淆配置代码混淆后,Crash 问题定位结尾 本文首发地址:https://h89.cn/archives/211.html 最新更新地址:https://gitee.com/chenjim/chenjimblog 为什么要开启混淆 先上一个 …

计算机二级Python刷题笔记------基本操作题11、14、17、21、30(考察列表)

文章目录 第十一题(列表遍历)第十四题(len)第十七题(len、insert)第二十一题(append)第三十题(二维列表) 第十一题(列表遍历) 题目&a…

【RT-Thread应用笔记】英飞凌PSoC 62 + CYW43012 WiFi延迟和带宽测试

文章目录 一、安装SDK二、创建项目三、编译下载3.1 编译代码3.2 下载程序 四、WiFi测试4.1 扫描测试4.2 连接测试 五、延迟测试5.1 ping百度5.2 ping路由器 六、带宽测试6.1 添加netutils软件包6.2 iperf命令参数6.3 PC端的iperf6.4 iperf测试准备工作6.5 进行iperf带宽测试6.6…

力扣日记3.3-【回溯算法篇】332. 重新安排行程

力扣日记:【回溯算法篇】332. 重新安排行程 日期:2023.3.3 参考:代码随想录、力扣 ps:因为是困难题,望而却步了一星期。。。T^T 332. 重新安排行程 题目描述 难度:困难 给你一份航线列表 tickets &#xf…

NLP-词向量、Word2vec

Word2vec Skip-gram算法的核心部分 我们做什么来计算一个词在中心词的上下文中出现的概率? 似然函数 词已知,它的上下文单词的概率 相乘。 然后所有中心词的这个相乘数 再全部相乘,希望得到最大。 目标函数(代价函数&#xff0…

C语言数组全面解析:从初学到精通

数组 1. 前言2. 一维数组的创建和初始化3. 一维数组的使用4. 一维数组在内存中的存储5. 二维数组的创建和初始化6. 二维数组的使用7. 二维数组在内存中的存储8. 数组越界9. 数组作为函数参数10. 综合练习10.1 用函数初始化,逆置,打印整型数组10.2 交换两…

[计算机网络]--I/O多路转接之poll和epoll

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、poll函…