期权到期时的盈亏图

  欧式看涨期权的盈亏为max(ST-K,0),若考虑期权费就是max(ST-K-c,-c);欧式看跌期权的盈亏为max(K-ST,0),若考虑期权费就是max(K-ST-p,-p)。下面以看跌期权为例,画出它到期时的盈亏图。需要注意的是np.maximum可以逐个比较array与数值,而np.max是求序列的最值,这里应该使用np.maximum函数

  有一投资者买入基础资产为100股Q股票、执行价格为50元/股的欧式看跌期权,每股的期权费为6元。假定Q股票现在的股价为56元,画出该看跌期权到期时多空头的盈亏图。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False
K=50;P=6;S0=56
S=np.linspace(30,70,100)
plt.figure(figsize=(10,5))
plt.subplot(121)
plt.plot(S,100*np.maximum(K-S,0),'r-',label='看跌期权多头收益图')
plt.plot(S,100*np.maximum(K-S-P,-P),'k--',label='看跌期权多头盈亏图')
plt.xlabel('股价')
plt.ylabel('payoff')
plt.title('看跌期权多头盈亏图')
plt.grid()
plt.legend()
plt.subplot(122)
plt.plot(S,-100*np.maximum(K-S,0),'r-',label='看跌期权空头收益图')
plt.plot(S,-100*np.maximum(K-S-P,-P),'k--',label='看跌期权空头盈亏图')
plt.xlabel('股价')
plt.ylabel('payoff')
plt.title('看跌期权空头盈亏图')
plt.grid()
plt.legend()

看涨-看跌期权平价公式

  考虑两个组合:组合A:一份欧式看涨期权+Ke-rt的现金;组合B:一份看跌期权+一份标的资产。

  对于组合A,当到期ST>K时,以手中的K去买标的资产,价值为ST;到期ST<K时,放弃行权,价值为手中的K;对于组合B,当到期ST>K时,放弃行权,价值为ST;到期ST<K时行权,卖掉标的资产后手中价值为K。因此两个组合到期时的价值均为max(ST,K),那么当前的价值也相等,即P+S=C+Ke-rt

  假设当前股价为20,执行价格为18,无风险利率为每年5%,3个月的欧式看涨期权报价为2.3,3个月的欧式看跌期权报价为0.2,通过平价公式判断期权价格的合理性,如何套利?

def c(p,s,k,r,t):return p+s-k*np.exp(-r*t)
def p(c,s,k,r,t):return c-s+k*np.exp(-r*t)
c(0.2,20,18,0.05,0.25)
Out[1]: 2.4235995911101327
p(2.3,20,18,0.05,0.25)
Out[2]: 0.07640040888986732
#可见看涨期权价格被低估,看跌期权价格被高估,可以买入组合A,卖出组合B:
payoff=-2.3-18*np.exp(-0.05*0.25)+0.2+20
payoff
Out[3]: 0.12359959111013197

用BS公式计算期权价格


  其中N(·)为标准正态分布的累积分布函数。假设有一份期限为六个月的股票期权,标的资产股票价格为5.29元,期权执行价格为6元,年化无风险利率和年化波动率分别为4%和24%,用BS公式求看涨期权和看跌期权的价格。

from scipy.stats import norm
def bscall(S,K,r,sigma,t):d1=(np.log(S/K)+(r+0.5*sigma**2)*t)/(sigma*np.sqrt(t))d2=(np.log(S/K)+(r-0.5*sigma**2)*t)/(sigma*np.sqrt(t))return S*norm.cdf(d1)-K*np.exp(-r*t)*norm.cdf(d2)
def bsput(S,K,r,sigma,t):d1=(np.log(S/K)+(r+0.5*sigma**2)*t)/(sigma*np.sqrt(t))d2=(np.log(S/K)+(r-0.5*sigma**2)*t)/(sigma*np.sqrt(t))return -S*norm.cdf(-d1)+K*np.exp(-r*t)*norm.cdf(-d2)
print('看涨期权价格为{:.4f},看跌期权价格为{:.4f}。'.format(bscall(5.29,6,0.04,0.24,0.5),bsput(5.29,6,0.04,0.24,0.5)))看涨期权价格为0.1532,看跌期权价格为0.7443。

  如果在权利期间内支付红利,只需将S修改为S减去红利的现值,红利的现值可以由sum(d*exp(-rf *t))来计算,其中d和t以array或Series格式传入。

(三十四)期权的盈亏图、平价公式和BS公式相关推荐

  1. [Python人工智能] 三十四.Bert模型 (3)keras-bert库构建Bert模型实现微博情感分析

    从本专栏开始,作者正式研究Python深度学习.神经网络及人工智能相关知识.前一篇文章开启了新的内容--Bert,首先介绍Keras-bert库安装及基础用法及文本分类工作.这篇文章将通过keras- ...

  2. 【Visual C++】游戏开发笔记三十四 浅墨DirectX提高班之三 起承转合的艺术:Direct3D渲染五步曲...

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

  3. Android 天气APP(三十四)语音搜索

    上一篇:Android 天气APP(三十三)语音播报 语音搜索 前言 正文 一.权限配置 二.用户体验优化 三.配置语音识别听写 四.语音搜索 五.地图天气添加语音搜索功能 六.城市搜索添加语音搜索功 ...

  4. [转载]三十四个有趣的小故事

    [转载]三十四个有趣的小故事 一. 用人之道 去过庙的人都知道,一进庙门,首先是弥陀佛,笑脸迎客,而在他的北面,则是黑口黑脸的韦陀.但相传在很久以前,他们并不在同一个庙里,而是分别掌管不同的庙.弥乐佛 ...

  5. 【正点原子FPGA连载】第三十四章RGB-LCD触摸屏实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...

  6. 操作系统真象还原实验记录之实验三十四:实现管道

    操作系统真象还原实验记录之实验三十四:实现管道 1.管道相关知识总结 先说我们操作系统的管道实现: 上述图中,管道缓冲区就是一页内存,这一页内存被我们当成了环形缓冲区结构, 当这页管道被创建出来后,全 ...

  7. 【Visual C++】游戏开发笔记三十四 浅墨DirectX提高班之三 起承转合的艺术:Direct3D渲染五步曲

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

  8. 程序员编程艺术第三十四~三十五章:格子取数问题,完美洗牌算法

    第三十四~三十五章:格子取数,完美洗牌算法 作者:July.caopengcs.绿色夹克衫.致谢:西芹_new,陈利人, Peiyush Jain,白石,zinking. 时间:二零一三年八月二十三日 ...

  9. 程序员编程艺术第三十四 三十五章 格子取数问题,完美洗牌算法

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

  10. 【正点原子FPGA连载】 第三十四章双目OV5640摄像头RGB-LCD显示实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...

最新文章

  1. 2019天猫双11成交额达2684亿,盘点今年双11有哪些亮点!
  2. 77.数据库里怎么预防死锁?-80.视图索引
  3. Nginx技巧:灵活的server_name,Nginx配置一个服务器多个站点 和 一个站点多个二级域名...
  4. 一个调用其他activity的完整例子,使用了 onActivityResult和startActivityForResult
  5. 作为一个上市公司HR,跟大家分享一些面试的真相
  6. mysql增量脚本_mysql全量和增量备份脚本
  7. java控制台输出五行字符串_java五行代码导出Excel
  8. Tips--tensorboard在win系统中jupyter notebook上打开方式
  9. TIOBE 4 月榜单:上古编程语言 Fortran 击败 Objective-C,PHP、Go 下滑
  10. vivo手机解锁工具_vivo正式官宣APEX 2020概念手机!或将实现全面屏指纹解锁
  11. 我晕,原来是这个问题!
  12. hdu1176免费馅饼
  13. kafka 查看队列信息
  14. 数据库增量同步开源软件
  15. 2009年下半年 系统集成项目管理工程师 下午试卷
  16. js封装websocket
  17. Jenkins | 搭建你第一个Jenkins应用
  18. 李白藏头诗鸿蒙,女子示爱的诗词
  19. SpringBoot整合Elasticsearch BBoss
  20. iOS虚拟支付被封,6个技巧帮你快速解决烦恼

热门文章

  1. CityMaker学习教程08 一个示例,创建漫游路径
  2. 十分钟学习nfs服务器
  3. 多线程操作同一个变量
  4. Form 表单详解:案例、CSS 美化
  5. 树莓派3B入门开发之(一)--简介
  6. Pytorch中nn.Module中的self.register_buffer解释
  7. x264-几种码控模式
  8. 论文学习:BP神经网络
  9. 51单片机-WIFI模块
  10. sql语句常见错误:Unknown column 'xxx' in 'where clause该如何解决?