FRM模型十四:FRA估值

什么是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.mzph.cn/news/717594.shtml

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

相关文章

[HackMyVM] 靶场 Wave

kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 0a:00:27:00:00:05 (Un…

Java JDBC JDBC事务管理 JDBC连接池(阿里巴巴Druid连接池、C3P0连接池) JDBC工具类

Java数据库连接 Java DataBase Connectivity。JDBC 规范定义接口,具体的实现由各大数据库厂商来实现。 JDBC可让Java通过程序操作关系型数据库,JDBC基于驱动程序实现与数据库的连接与操作。 JDBC 是 Java 访问数据库的标准规范,真正怎么操作…

C++ 滑动窗口

例1 209. 长度最小的子数组 ①窗口大小不固定 ②求最小长度 -> ret INT_MAX ③数组内的值都大于0, 符合单调性(sum nums[right] -> sum增大) while里面符合条件,在里面更改ret 参考代码 class Solution { public:i…

集成测试之我的初步学习与总结

基本概念 将软件集成起来后进行测试。 集成测试又叫子系统测试、组装测试、部件测试等。集成测试主要是针对软件高层设计进行测试,一般来说是以模块和子系统为单位进行测试。 集成测试包含的层次 模块内的集成,主要是测试模块内各个接口间的交互集成…

day_12二叉树理论基础以及遍历

第六章 二叉树part01 今日内容: 理论基础 递归遍历 迭代遍历 统一迭代 详细布置 题目分类 二叉树的种类 二叉树有两种主要的形式:满二叉树和完全二叉树。 满二叉树 满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并…

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

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

Unity铰链四杆机构设计和运动仿真

一、效果图 设定好各边长度和转速后,点击【设置并启动】,自动生成一个机构模型,并按照原理进行运转 二、铰链四杆机构介绍 机架:A和D是固定位置,叫做机架。 曲柄:B点绕A点旋转,构成曲柄。 连…

英语学习资源分享

键盘侠的单词记忆软件: Qwerty Learner — 为键盘工作者设计的单词与肌肉记忆锻炼软件https://qwerty.kaiyi.cool/ 经济学人、纽约客等英语外刊杂志下载:若github无法进入可以试试下载VPN插件(在浏览器中安装免费的VPN插件,个人推…

视频汇聚/存储/压缩/诊断平台EasyCVR视频联网整合方案应用特点

随着科技的不断发展,监控视频在各个领域的应用越来越广泛。为了更好地管理和利用这些视频资源,视频联网与整合的需求也越来越多。通过视频联网技术将不同地理位置或不同设备的视频资源进行整合,实现实时共享和集中管理。视频联网整合方案的应…

2024最新算法:鹦鹉优化算法(Parrot optimizer,PO)求解23个基准函数

一、鹦鹉优化算法 鹦鹉优化算法(Parrot optimizer,PO)由Junbo Lian等人于2024年提出的一种高效的元启发式算法,该算法从驯养的鹦鹉中观察到的觅食、停留、交流和对陌生人行为的恐惧中汲取灵感。这些行为被封装在四个不同的公式中…

C++_红黑树

目录 1、红黑树的规则 2、红黑树节点的定义 3、红黑树插入节点的调整操作 3.1 情况一 3.2 情况二 3.3 情况三 4、红黑树的实现 结语 前言: 在C中,红黑树是二叉搜索树的另一种优化版本,他与AVL树的区别在于保持树的平衡方式不同&…

【Mysql】Navicat数据库勿删了mysql.infoschema@localhost,导致打不开数据库,如何修改

运行报错如下: 1449 . The user specified as a definer (mysql.infoschemaocalhost) does not exist该方法不需要重启mysql,或者重装;仅需要恢复删除的mysql.infoschemalocalhost用户 一、登录建立用户 mysql -uroot -pxxxxxx密码二、建立…

【网上商城系统的设计与开发】

目录 1.实训概况 1 1.1 实训题目 1 1.2实训时间 1 1.3实训目的 1 1.4 实训环境 1 1.5 实训内容 2 1.6 进度安排 3 2.需求分析 5 2.1 功能需求分析 5 2.1.1用户需求分析 5 2.2.2网站前台需求 5 2.2.3网站后台需求 6 2.2 可行性分析 7 2.2.1社会可行性 7 2.2.2技术可行性 8 3.系统…

Sora学习(一):Sora技术路径整体认知

前文:最近跟着DataWhale组队学习这一期“Sora原理与技术实战”,本篇博客主要是基于DataWhale成员、厦门大学平潭研究院杨知铮研究员分享的Sora技术原理详解课件内容以及参考网上一些博客资料整理而来(详见文末参考文献)&#xff0…

【谈一谈】并发编程_锁的分类

【谈一谈】并发编程_锁的分类 Hello!~大家好!~每天进步一点点,日复一日,我们终将问剑顶峰 这里主要是介绍下我们常用的锁可以分为几类,目的是整体框架作用~方便后续的并发文章 说白了,这篇就是开头哈~ 本文总纲: 一.可重入锁和不可重入锁 我们开发中一般用到的都是可重入锁比如…

Photoshop 2023:重塑创意,引领数字艺术新纪元

在数字艺术的浩瀚星空中,Adobe Photoshop 2023(简称PS 2023)如同一颗璀璨的新星,为Mac和Windows用户带来了前所未有的创意体验。这款强大的图像处理软件不仅继承了前作的精髓,更在细节上进行了诸多创新,让每…

运行Python文件时出现‘utf-8’code can‘t decode byte 如何解决?(如图)

如图 亦或者出现“SyntaxError: Non-UTF-8 code starting with \xbb ” 出现这种问题往往是编码格式导致的,我们可以在py文件中的第一行加入以下代码: # codingutf-8或者 # codinggdk优先使用gbk编码 解释一下常用的两种编码格式: utf-…

朱维群将出席用碳不排碳碳中和顶层科技路线设计开发

演讲嘉宾:朱维群 演讲题目:“用碳不排碳”碳中和顶层科技路线设计开发 简介 姓名:朱维群 性别:男 出生日期:1961-09-09 职称:教授 1998年毕业于大连理工大学精细化工国家重点实验室精细化工专业&…

什么是B+树,和B树有什么不同?

👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主 ⛪️ 个人社区&#x…

Spring Initializer环境问题

1.基于jdk8与本地 环境准备 1)下载jdk8并安装 2&#xff09;下载maven 3.6.3并解压放入D盘maven目录下&#xff0c;去掉外层 设置阿里源 打开settings.xml,在mirrors标签之内增加&#xff0c;注意粘贴后</id>中的/有可能被删掉&#xff0c;要自己补上 <mirror>&l…