利率互换定价

对于互换多头(即支固收浮者,希望利率上升),例如浮动利率债券的多头与固定利率债券的空头的组合,利率互换的价值V = Bfl - Bfix;反之对于互换空头(收浮支固者,希望利率下降),例如固定利率债券的多头与浮动利率债券的空头的组合,利率互换的价值就是V = Bfix - Bfl

其中固定利率债券的价值 Bfix就是未来交换的现金流的贴现和,一般用连续复利的即期利率来贴现。为计算Bfl,注意到浮动债券在付息后等于其面值A(因为其收益率和折现率均为上一支付日的浮动利率如Libor),假定下一次互换现金流的时间为t* 时刻,在t* 时刻支付浮动利息是K*,在支付利息之后的那一时刻Bfl = A+K*,所以浮动利率债券可看作是在t* 时刻提供单一现金流的金融资产,对这一现金流用对应期限的贴现率r* 进行贴现即可得出浮动利率债券的现值为Bfl = (A+K*)×e-r*t*

案例:假设按照某利率互换条款,某一金融机构同意支付6个月期的LIBOR,同时收取每年8%的利率(半年期的年复利),名义本金为1亿美元,该互换还有1.25年时间到期。按照连续复利计算的3个月、6个月、9个月和15个月的相关贴现率分别是10%、10.3%、10.5%和11%。上一支付日所对应的LIBOR为10.2%(半年复利)。计算该利率互换对于该金融机构的价值。

注意该互换15个月后到期,因此支付日从现在往后推分别是3个月后,9个月后和15个月后。该金融机构支浮收固,是互换空头,V = Bfix - Bfl = -4.267百万美元,对于该金融机构来说互换价值为负。

import numpy as np
def int_swap_long(t,r,A,k,r0):Bfix=sum(A*k*0.5*(np.exp(-r*t)))+A*(np.exp(-r[-1]*t[-1]))Bfl=(A+0.5*A*r0)*(np.exp(-r[0]*t[0]))return Bfl-Bfix
A=100;t=np.array([0.25,0.75,1.25]);k=0.08
r=np.array([0.1,0.105,0.11]);r0=0.102
V=-int_swap_long(t,r,A,k,r0)
V
Out[3]: -4.2671758531406

利率互换中固定利率的计算

互换的固定利率定价要使得互换合约刚签订时的价值为0。假定Libor为6个月期的浮动利率,利息每6个月交换一次。由于付息日浮动利率的确定来自6个月前,因此知道互换的年限后,未来的浮动利率要根据远期利率来计算,而远期利率可以根据零息债券的收益率(利率期限结构)获得,即:(1+ri/2)i (1+fi+1,i/2) = (1+ri+1/2)i+1,ri为第i个半年后到期的零息债券半年付息一次的年收益率。因此使得 Bfix - Bfl = 0的x就是固定利率的定价(下图中左边式子还要×0.5,n为半年期的期数):

比如要确定一个5年期、名义本金为100万美元、6个月付息一次的利率互换的固定利率,利率的期限结构t=[0.5,1,1.5,2,2.5,3,3.5,4,4.5,5],对应的零息债券收益率分别为r=[0.0614,0.0642,0.066,0.0684,0.0702,0.0726,0.0754,0.0795,0.0827,0.0868]:

t=np.array([1,2,3,4,5,6,7,8,9,10])#5年有10个复利期间
r=np.array([0.0614,0.0642,0.066,0.0684,0.0702,0.0726,0.0754,0.0795,0.0827,0.0868])
f=np.zeros(len(t));f[0]=r[0]
for i in range(len(t)-1):#求远期利率f[i+1]=(((2+r[i+1])**t[i+1])/(2+r[i])**t[i])-2
f
Out[6]:
array([0.0614    , 0.0670038 , 0.06960471, 0.07561674, 0.07741568,0.0846418 , 0.09227962, 0.10842769, 0.10847791, 0.12406512])
discount=np.zeros(len(t))
for i in range(len(t)):#求折现因子discount[i]=(1+r[i]/2)**t[i]
Bfl=A*0.5*sum(f/discount)#浮动利率债券价格
from scipy import optimize#求解固定利率x
def g(x):e=Bfl-A*0.5*sum(x/discount)return e
result=optimize.fsolve(g,0.1)
print('固定利率为{:.2%}'.format(float(result)))固定利率为8.45%

货币互换定价

与利率互换的方式相似,货币互换可以分解为用两种债券表示的情况。假如有两个公司,一个是支付10.8%年利率英镑债券的多头,另一个是支付8.0%年利率美元债券的空头。如果用V表示互换的价值,对支付美元利率的那一方而言,美国为本国,V=S×BF - BD,BF表示在互换中以外币形式衡量的外币债券价值,BD为互换中美元债券的价值,S为即期汇率(以每单位外币等于若干本国货币数量来表示)。因此,互换的价值可以由本国货币的利率期限结构、外币的利率期限结构以及即期汇率来确定。

案例:假设日元和美元的利率期限结构都是平的,日元年利率为4%,美元年利率为9%(连续复利)。一家金融机构进行货币互换,它每年以日元收取年利率为5%的利息,以美元支付年利率为8%的利息,以两种货币表示的本金分别为120000万日元和100万美元,互换将持续3年,每年互换一次。现在的汇率为1美元=110日元,试求该互换对于金融机构的价值。

def cur_swap(t,k1,k2,A1,A2,r1,r2,ex):BF=sum(A2*k2*(np.exp(-r2*t)))+A2*(np.exp(-r2*t[-1]))BD=sum(A1*k1*(np.exp(-r1*t)))+A1*(np.exp(-r1*t[-1]))return BF/ex-BD
A1,A2=1000,120000
r1,r2=0.09,0.04
k1,k2=0.08,0.05
t=np.array([1,2,3])
ex=110
V=cur_swap(t,k1,k2,A1,A2,r1,r2,ex)
V
Out[7]: 154.29957746883156

该互换对于金融机构的价值为+154.3万美元。

(四十二)利率互换与货币互换的定价相关推荐

  1. maya批量命名插件_教你玩转MAYA的四十二精华造诣(第一期)

    最近在整理文档时发现我收藏了一篇关于MAYA应用技巧的文章,突然有兴趣看了看,结果发现老版本MAYA中的某些内容很多已经无法应用于新版本.我又上网查了一下,结果发现网上好多帖子和我收藏的这篇内容基本一 ...

  2. OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co

    OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...

  3. 四十二、深入Java中的文件读取操作

    @Author:Runsen @Date:2020/6/8 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

  4. JavaScript学习(四十二)—利用工厂模式创建对象以及工厂模式创建对象的不足

    JavaScript学习(四十二)-利用工厂模式创建对象以及工厂模式创建对象的不足 一.利用工厂模式创建对象 工厂模式是JavaScript中的一种设计模式,它的作用是批量创建具有同种属性的对象. 格 ...

  5. 【Visual C++】游戏开发笔记四十二 浅墨DirectX教程之十 游戏输入控制利器 DirectInput专场

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  6. 多麦克风做拾音的波束_乱侃外设 篇四十二:一浪更比一浪强!HyperX Quadcast S 声浪加强版麦克风浅评...

    原标题:乱侃外设 篇四十二:一浪更比一浪强!HyperX Quadcast S 声浪加强版麦克风浅评 乱侃外设 篇四十二:一浪更比一浪强!HyperX Quadcast S 声浪加强版麦克风浅评 20 ...

  7. 如何选择适合你的兴趣爱好(四十二),风筝

    围城网的摇摇今天给大家带来了"如何选择适合你的兴趣爱好"系列专辑的第四十二讲--风筝.风筝是在纸鸢背上系上一条弓弦,或在纸鸢头部按一个风笛,当纸升空以后,强风通过笛,或者引起弓弦的 ...

  8. 【Microsoft Azure 的1024种玩法】四十二. 通过Windows Admin Center快速创建Azure Virtual Machines

    [简介] Windows Admin Center是微软开发的一套可以部署在本地基于浏览器的GUI的工具集平台,其平台可用于管理Windows相关服务器和PC机器,我们可以利用Windows Admi ...

  9. 【Visual C++】游戏开发笔记四十二 浅墨DirectX教程之十 游戏输入控制利器:DirectInput专场...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/zhmxy555/article/details/8547531 作者:毛星云(浅墨) ...

  10. (四十二):Aligning Linguistic Words and Visual Semantic Units for Image Captioning

    (四十二):Aligning Linguistic Words and Visual Semantic Units for Image Captioning 手写笔记 PPT总结 ABSTRACT 1 ...

最新文章

  1. ImageNet识别率一次提高1%:谷歌AI新突破引Jeff Dean点赞
  2. varnish性能调优
  3. ASP.NET 实现登录界面(生成验证码)
  4. 论文浅尝 - ACL2020 | 一种用于关系三元组提取的级联二进制标记框架
  5. Java BigInteger类| isProbablePrime()方法与示例
  6. 关于redis连接池
  7. usermod命令,用户密码管理,mkpasswd命令
  8. java jre 7_jre1.7官方下载|
  9. 《麦肯锡方法》第五部分 麦肯锡校友的忠告-思维导图
  10. mac系统如何显示和隐藏文件
  11. 停车场计费算法 php,时段计费算法,一般用于停车计费
  12. c语言切蛋糕问题程序设计报告,c语言切蛋糕问题,问题如图。望大神指教。
  13. 20190604第二次月考
  14. iOS签名校验那些事儿
  15. php 输出等腰三角形,C语言输出等腰三角形
  16. 小米路由器局域网设备ping不通
  17. 笔记-项目干系人管理-控制干系人参与
  18. vue3 baseCss 初始化
  19. MP-2平面烟雾气体传感器介绍
  20. get 到的html代码如何转码,爬虫网页转码逻辑

热门文章

  1. c语言 一元多项式展开括号,一元多项式Polynomial的C语言实现
  2. html语言实现两数相加,HTML(2)
  3. Python三维绘图--Matplotlib
  4. android logo颜色渐变,华为悄然更新品牌Logo:无渐变色,更加扁平化
  5. Eclipse反编译插件 Enhanced Class Decompiler
  6. what is CPU capacity-什么是CPU容量
  7. springboot 连接并操作redis 完全可用的
  8. OSChina 周六乱弹 —— 成功的解决了发现问题的人
  9. qq邮箱 服务器认证失败怎么回事,为什么我的QQ邮箱登录不了 QQ邮箱无法登陆怎么解决...
  10. xp系统开启wlan服务器,XP系统笔记本怎么设置无线网络?