FRM模型十四:FRA估值

news2024/9/25 17:12:22

什么是FRA

FRA(Forward rate agrreement)远期利率协议,是一种场外衍生品。FRA在0时刻确定,在未来时刻进行交易的协议。例如FRA3,6表示双方约定在3个月后以Rk的利率水平借款3个月。

应用场景:某公司未来3个月有融资需求,借款时间为6个月,担心未来市场利率过高,为了控制融资成本,进入了FRA将融资成本锁定。

估值:多头方
在这里插入图片描述

( R − R k ) ∗ τ ∗ P r i n c i p a l 1 + R f ∗ τ \frac{(R-R_{k})*\tau*Principal}{1+R_{f}*\tau} 1+Rfτ(RRk)τPrincipal

举个例子:
一个投资者进入FRA合约,约定三个月后按照3%的固定利率借入1million,假设3个月后市场利率为1%,计算该FRA的价格。

$1,000,000(0.01 − 0.03)(0.25) = −$5,000
注意:该价值为在t1时刻的价值,如果求0时刻价值,需要折现到0时刻。

代码实现

仍然用到强大的QuantLib包。

ql.ForwardRateAgreement(valueDate, maturityDate, position, strikeForward, notional, iborIndex, discountCurve=ql.YieldTermStructureHandle())

构造FRA合约需要用到几个参数
valueDate:估值日
maturityDate:到期日
position:多头还是空头方
strikeForward:约定未来执行利率
notional:本金
discountCurve:折现曲线,需为xxxxhandle对象

构建一个FRA3*6,当前日期为2020年6月30日,6个月后到期,固定利率为1%,结算以90天LIBOR为基础。

import QuantLib as ql

############ FRA
# 构建几个重要时间
todayDate = ql.Date(30, 6, 2020)
ql.Settings.instance().evaluationDate = todayDate   #将评估日设定为当前日期


# 设定按照美国市场的时间,因为FRA一般在1年以内,所以用act/360计息
calendar = ql.UnitedStates(ql.UnitedStates.SOFR)
dayCount = ql.Actual360()
compounding = ql.Simple
compoundingFrequency = ql.Annual


# 构建折现的利率曲线
spotDates = [todayDate, calendar.advance(todayDate, ql.Period(6, ql.Months)),
             calendar.advance(todayDate, ql.Period(12, ql.Months))]
spotRates = [0.05, 0.05, 0.05]
curve = ql.ZeroCurve(spotDates, spotRates, dayCount, calendar, ql.Linear(), ql.Compounded, ql.Semiannual)
yts = ql.YieldTermStructureHandle(curve)
index = ql.USDLibor(ql.Period('3M'), yts)



# FRA估值
maturityDate = calendar.advance(todayDate, ql.Period(6, ql.Months))
FRA = ql.ForwardRateAgreement(calendar.advance(todayDate,ql.Period(3,ql.Months)), maturityDate, ql.Position.Long,
                              0.01, 1e6, index, yts)
print(FRA.NPV())

最终得到该FRA价值为:9786

几个注意点:

  1. 构建利率曲线时定义spotDates不要自己手输时间(比如2020年6月30日,2020年9月30日,2021年6月30日),因为输入的日期很有可能是非交易日,会报错。应该用advance函数。
  2. 构建FRA函数时第一个参数估值日并非当前时间(按照上面的图来看,不是0时刻而是t1时刻),如果输入的是0时刻,得到的估值就是0.

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

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

相关文章

政安晨【示例演绎虚拟世界开发】(六):从制作一个对战小游戏开始(Cocos Creator 《击败老大》)(第三段)

在上一篇文章中,我们已经将游戏的场景基本搭建完毕,接下来我们就可以为游戏编写代码并实现相关的核心逻辑了。 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: AI虚拟世界大讲堂 希望政安晨的博客能够对您有所裨益&a…

多层感知机 + 代码实现 - 动手学深度学习v2 | 李沐动手学深度学习课程笔记

感知机 感知机≈二分类问题 感知机和其他问题的对比 训练感知机 如果小于等于零,说明预测错啦 ,其实就是同号为正,异号为负 举个分类的例子 增加样本,改变分类线 继续分类 感知机的收敛定理 XOR问题 XOR问题其实就是第1、3象限数…

前端学习第七天-css常用样式设置

达标要求 掌握元素的显示与隐藏 熟练应用溢出的文字隐藏 熟练掌握版心和布局流程 1. 元素的显示与隐藏 在CSS中有三个显示和隐藏的单词比较常见,我们要区分开,他们分别是 display visibility 和 overflow。 他们的主要目的是让一个元素在页面中消失…

外包干了6个月,技术退步明显

先说一下自己的情况,本科生,19年通过校招进入广州某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

(学习日记)2024.03.01:UCOSIII第三节 + 函数指针 (持续更新文件结构)

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

java-ssm-jsp-宠物护理预定系统

java-ssm-jsp-宠物护理预定系统 获取源码——》公主号:计算机专业毕设大全

勇敢尝鲜之Springboot3大坑-集成Mybatisplus报错:ddlApplicationRunner

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 往期热门专栏回顾 专栏…

【LeetCode-1143】最长公共子序列(动归)

目录 题目描述 解法1:动态规划 代码实现 题目链接 题目描述 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除…

python识别并控制操作已打开的浏览器进行自动化测试

前提:已安装python和selenium 一、将浏览器以debugger模式打开 打开方法: 1.右击浏览器,选择属性: 2.在目标中加上 --remote-debugging-port9222 --user-data-dir"C:\selenum\AutomationProfile" 二、识别代码 from…

java面试题(spring框架篇)(黑马 )

树形图: 一、Spring框架种的单例bean是线程安全吗? Service Scope("singleton") public class UserServiceImpl implements UserService{ } singleton:bean在每个Spring IOC容器中只有一个实例 protype:一个bean的定义可以有多个…

加密与安全_探索签名算法

文章目录 概述应用常用数字签名算法CodeDSA签名ECDSA签名小结 概述 在非对称加密中,使用私钥加密、公钥解密确实是可行的,而且有着特定的应用场景,即数字签名。 数字签名的主要目的是确保消息的完整性、真实性和不可否认性。通过使用私钥加…

从零开始手写RPC框架(3)——ZooKeeper入门

目录 ZooKeeper简介ZooKeeper中的一些概念 ZooKeeper安装与常用命令常用命令 ZooKeeper Java客户端 Curator入门 ZooKeeper简介 是什么? ZooKeeper 是一个开源的分布式协调服务,本身就是一个分布式程序(只要半数以上节点存活,Zo…

Vue+SpringBoot打造海南旅游景点推荐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四、核心代码4.1 随机景点推荐4.2 景点评价4.3 协同推荐算法4.4 网站登录4.5 查询景点美食 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的海南旅游推荐系统&#xff…

酷开科技,让酷开系统成为现代生活的变革者

电视,从问世就一直受到人们的追捧。还记得小时候一家人围坐在电视机前的场景,小小的黑白屏幕,牢牢的吸引着大家的目光。随着科技的不断进步,我们的生活也发生了翻天覆地的变化。而电视,也从笨重的黑白电视变成了轻薄的…

8.WEB渗透测试-Linux基础知识-Linux基础操作(二)

内容参考于: 易锦网校会员专享课 上一个内容:7.WEB渗透测试-Linux基础知识-Linux基础操作(一)-CSDN博客 Tab键是补全命令,双击两下Tab键,会告诉你能补全的所有命令 文本编辑器指令:vi 输入vi 1…

React富文本编辑器开发(六)

现在,相关的基础知识我们应该有个大概的了解了,但离我们真正的开发出一个实用型的组件还有一段距离,不过不用担心,我们离目标已经越来越近。 以现在我们所了解的内容而言,或许你发现了一个问题,就是我们的编…

用Java语言创建的Spring Boot项目中,如何传递数组呢??

问题: 用Java语言创建的Spring Boot项目中,如何传递数组呢?? 在这个思路中,其实,Java作为一个后端开发的语言,没必要着重于如何传入,我们主要做的便是对传入的数组数据进行处理即可…

力扣hot6---双指针

题目: TLE做法(哈希两重for循环) 标签虽然说是用双指针,但是第一个想法真就不是双指针呀。。。就感觉这道题很像: 力扣hot1--哈希-CSDN博客 于是就用了类似的想法: 首先要排个序,至于为什么要…

MySQL 如何从 Binlog 找出变更记录并回滚

文章目录 前言1. 案例模拟1.1 确认信息1.2 下载 Binlog1.3 准备环境1.4 注册 Binlog1.5 准备结构信息1.6 Python 订阅1.7 输出结果展示 2. 原理解析2.1 程序设计2.2 模块版本 总结 前言 最近有研发同学问我:有一个问题,想查一个 ID 为 xxxx 的 sku 什么…

Linux(CentOS为例)环境下 Git提交代码加速,使用FastGithub,运行报错解决

当你的在服务器上使用Git进行推送时,时常会出现超时错误。这里使用FastGithub 首先下载FastGithub 这个软件作者不是为什么删除了GithUb的仓库,这个链接还有。下载Linux版本的 FastGithub Linux,Windows版本 下载完毕后解压 ./fastgithu…