BS公式中变量与期权价格的关系

  根据BS公式我们知道一共有5个变量共同影响了期权价格:S、K、r、σ和t,下面我们就来画图直观地感受一下这些变量与看涨看跌期权价格的关系。沿用上一节最后一个例子的数据,S、K、r、σ和t分别为5.29,6,0.04,0.24和0.5:

from scipy.stats import norm
import numpy as np
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)import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False
plt.figure(figsize=(18,12))
plt.subplot(231)
S=np.linspace(3,7,100)
plt.plot(S,bscall(S,6,0.04,0.24,0.5),'r-',label='看涨期权')
plt.plot(S,bsput(S,6,0.04,0.24,0.5),'k-',label='看跌期权')
plt.xlabel('股票价格')
plt.ylabel('期权价格')
plt.title('股票价格与期权价格关系')
plt.legend()
plt.subplot(232)
K=np.linspace(5,7,100)
plt.plot(K,bscall(5.29,K,0.04,0.24,0.5),'r-',label='看涨期权')
plt.plot(K,bsput(5.29,K,0.04,0.24,0.5),'k-',label='看跌期权')
plt.xlabel('执行价格')
plt.ylabel('期权价格')
plt.title('执行价格与期权价格关系')
plt.legend()
plt.subplot(233)
sigma=np.linspace(0.1,0.4,100)
plt.plot(sigma,bscall(5.29,6,0.04,sigma,0.5),'r-',label='看涨期权')
plt.plot(sigma,bsput(5.29,6,0.04,sigma,0.5),'k-',label='看跌期权')
plt.xlabel('波动率')
plt.ylabel('期权价格')
plt.title('波动率与期权价格关系')
plt.legend()
plt.subplot(234)
r=np.linspace(0.01,0.07,100)
plt.plot(r,bscall(5.29,6,r,0.24,0.5),'r-',label='看涨期权')
plt.plot(r,bsput(5.29,6,r,0.24,0.5),'k-',label='看跌期权')
plt.xlabel('无风险收益率')
plt.ylabel('期权价格')
plt.title('无风险收益率与期权价格关系')
plt.legend()
plt.subplot(235)
t=np.linspace(0,3,500)
plt.plot(t,bscall(5.29,6,0.04,0.24,t),'r-',label='看涨期权')
plt.plot(t,bsput(5.29,6,0.04,0.24,t),'k-',label='看跌期权')
plt.xlabel('到期期限')
plt.ylabel('期权价格')
plt.title('到期期限与期权价格关系')
plt.legend()


  期权价格与股价S和执行价格K的关系容易理解;看涨看跌期权与波动率σ大小成正比是因为波动率反映了期权的时间价值,时间价值对于期权买方来说反映了期权内在价值在未来增值的可能性;当无风险利率r增加时看涨期权价格上升,看跌期权价格下降是因为r的提高代表贴现率也会提高,导致K的现值下降,同时在高利率的情况下手中持有基础资产的机会成本也越高,因此看跌期权价值下降的幅度要比看涨期权上升幅度更大;到期期限与期权价值成正比也和时间价值有关,但是期权马上到期时可能有例外,比如deep-in-the-money put,等待时间越长对持有者越不利。

用希腊值来衡量期权风险

Delta

  Delta反映标的资产价格变化一个单位时期权价格的变化,即期权价格对标的价格的一阶导数。欧式看涨期权和看跌期权(多头)的delta分别为∆=N(d1)、∆=N(d1)-1,空头则都添个负号。下面画出期权多头的∆与股票价格的关系:

def delta(S,X,r,sigma,t,otype):d1=(np.log(S/X)+(r+0.5*sigma**2)*t)/(sigma*np.sqrt(t))if otype=='call':return norm.cdf(d1)else:return norm.cdf(d1)-1
S1=np.linspace(4,8,100)
plt.plot(S1,delta(S1,6,0.04,0.24,0.5,'call'),'r-',label='看涨期权多头')
plt.plot(S1,delta(S1,6,0.04,0.24,0.5,'put'),label='看跌期权多头')
plt.xlabel('股票价格')
plt.ylabel('delta')
plt.title('股票价格与期权多头delta的关系')
plt.legend()
plt.grid()


  由上图可知看涨期权多头∆的取值范围为[0,1],实值看涨期权∆接近于1,虚值看涨期权∆接近于0;看跌期权多头∆的取值范围为[-1,0],实值看跌期权∆接近于-1,虚值看跌期权∆接近于0。

  我们还可以分为平值、实值和虚值期权,对t变量进行取值,观察t和看涨期权∆的关系:

T=np.linspace(0,5,100)
plt.plot(T,delta(5,6,0.04,0.24,T,'call'),label='虚值期权')
plt.plot(T,delta(6,6,0.04,0.24,T,'call'),label='平值期权')
plt.plot(T,delta(7,6,0.04,0.24,T,'call'),label='实值期权')
plt.xlabel('到期期限')
plt.ylabel('delta')
plt.title('到期期限与看涨期权多头delta的关系')
plt.legend()
plt.grid()

Gamma

  Gamma反映标的价格变化一个单位时期权delta的变化,也就是期权价格对标的价格的二阶导数。根据BS公式求二阶导可得欧式看涨和看跌期权的Gamma表达式为:

def gamma(S,X,r,sigma,t):d1=(np.log(S/X)+(r+0.5*sigma**2)*t)/(sigma*np.sqrt(t))return np.exp(-d1**2/2)/(S*sigma*np.sqrt(2*np.pi*t))
plt.figure(figsize=(10,5))
plt.subplot(121)
plt.plot(S1,gamma(S1,6,0.04,0.24,0.5))
plt.xlabel('股票价格')
plt.ylabel('gamma')
plt.title('股票价格与期权gamma的关系')
plt.grid()
plt.subplot(122)
plt.plot(T,gamma(5,6,0.04,0.24,T),label='虚值期权')
plt.plot(T,gamma(6,6,0.04,0.24,T),label='平值期权')
plt.plot(T,gamma(7,6,0.04,0.24,T),label='实值期权')
plt.xlabel('到期期限')
plt.ylabel('gamma')
plt.title('到期期限与期权gamma的关系')
plt.legend()
plt.grid()


  可以看到在平值点附近期权的Γ值最大,同时较短期的平值期权的∆值对于标的资产价格变动最敏感:因为即将到期,标的资产价格波动给平值期权带来的不确定性很大。

Theta

  Theta表示在其他条件不变的情况下,期权价值随着时间变化而变化的变动率。也就是有效期缩短一个单位时期权价格的变化,期权价格对有效期(缩短)的一阶导数。

def theta(S,X,r,sigma,t,otype):d1=(np.log(S/X)+(r+0.5*sigma**2)*t)/(sigma*np.sqrt(t))d2=(np.log(S/X)+(r-0.5*sigma**2)*t)/(sigma*np.sqrt(t))thetac=-S*sigma*np.exp(-d1**2/2)/(2*np.sqrt(2*np.pi*t))-r*X*np.exp(-r*t)*norm.cdf(d2)if otype=='call':return thetacelse:return thetac+r*X*np.exp(-r*t)
plt.figure(figsize=(10,5))
plt.subplot(121)
plt.plot(S1,theta(S1,6,0.04,0.24,0.5,'call'),label='看涨期权')
plt.plot(S1,theta(S1,6,0.04,0.24,0.5,'put'),label='看跌期权')
plt.xlabel('股票价格')
plt.ylabel('theta')
plt.title('股票价格与期权theta的关系')
plt.legend()
plt.grid()
plt.subplot(122)
plt.plot(T,theta(5,6,0.04,0.24,T,'call'),label='虚值期权')
plt.plot(T,theta(6,6,0.04,0.24,T,'call'),label='平值期权')
plt.plot(T,theta(7,6,0.04,0.24,T,'call'),label='实值期权')
plt.xlabel('到期期限')
plt.ylabel('theta')
plt.title('到期期限与看涨期权theta的关系')
plt.legend()
plt.grid()


  由上图可知在接近平值点时θ均为负且达到最小,意味着期权的价值对时间的变化非常敏感;距离到期日短的平值期权θ的绝对值最大,因为快要到期了还是平值,行权的不确定性很大,而对于较长期的期权来说三种期权的θ值差别不大。

Vega

  Vega表示隐含波动率每变化一个单位时期权价格的变化,即期权价格对隐含波动率的一阶导数。

  同理我们也可以画出vega与股票价格的关系,以及vega与期权到期期限的关系:

  在平值点附近时vega值最大,且三种期权的vega都随着期权到期期限的增加而增加,也就是说隐含波动率变化给长期期权合约的带来的价值变化量更大。

Rho

  Rho表示无风险收益率每变化1%时期权价格变化0.01*ρ,即期权价格对无风险收益率的一阶导数。

  画出rho与股票价格的关系,以及rho与期权到期期限的关系:

  无论是看涨还是看跌期权,ρ都是股票价格的递增函数,且实值期权ρ的绝对值都要大于虚值期权的;同时看涨期权的ρ值都是期权期限的递增函数。

(三十五)相关变量与期权价格的关系、希腊值相关推荐

  1. 【正点原子Linux连载】第三十五章 Linux内核顶层Makefile详解 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  2. stm32 读取sd卡图片显示_「正点原子STM32Mini板资料连载」第三十五章 汉字显示实验...

    1)实验平台:正点原子STM32mini开发板 2)摘自<正点原子STM32 不完全手册(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第三十五章 汉字显示实验 汉字显示在 ...

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

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

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

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

  5. Linux的冒号和波浪号用法,shell 学习三十五天---波浪号展开与通配符

    shell 学习三十五天---波浪号展开与通配符 shell 中两种与文件名相关的展开.第一种是波浪号展开,第二种是通配符展开式. 波浪号展开 如果命令行字符串的第一个字符为波浪号(~),或者变量指定 ...

  6. NeHe OpenGL第三十五课:播放AVI

    NeHe OpenGL第三十五课:播放AVI 在OpenGL中播放AVI: 在OpenGL中如何播放AVI呢?利用Windows的API把每一帧作为纹理绑定到OpenGL中,虽然很慢,但它的效果不错. ...

  7. Python编程基础:第三十五节 文件删除Delete a File

    第三十五节 文件删除Delete a File 前言 实践 前言 我们这一节来介绍如何删除一个文件,这里需要用到函数os.remove(path)用于删除指定路径下的文件,os.rmdir(path) ...

  8. 东枝戛古舍利佛塔群(缅三十五)

    东枝戛古舍利佛塔群(缅三十五) 撰文.摄影/张源 http://szju2000.blog.163.com/blog/static/16995144420115137370192/     有2000 ...

  9. [Python从零到壹] 三十五.图像处理基础篇之OpenCV绘制各类几何图形

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

最新文章

  1. 阿里云总裁胡晓明:“这些新杭州故事,明天将会在更多城市发生”
  2. Java:XML篇,使用SAX写入XML数据
  3. 分布式数据库一定会替代Oracle吗?
  4. A + B Problem II
  5. js获取浏览器版本或者类别
  6. azure云数据库_在Azure SQL数据库中保护数据的五种方法
  7. python爬取妹子图片1_利用爬虫爬取清纯妹子图片
  8. Structs框架原理
  9. App渠道安装来源识别与匹配
  10. GE Predix 详解
  11. 中国最美的一千个汉字 : 千字文5
  12. 28款GitHub最流行的开源机器学习项目,推荐GitHub上10 个开源深度学习框架
  13. IDEA创建mybatis的xml文件
  14. IDEA 快速返回上次查看代码的位置常用的IDEA快捷键(持续更新)
  15. 辨别亦真亦假的Svchost.exe
  16. python 通过 Snap7 与 PLC 实现数据通信
  17. 北京大学计算机考研复试分数线,2013年北京大学计算机考研复试分数线
  18. 输出直角三角形的代码
  19. UML2面向对象分析与设计(第2版) 谭火彬 期末复习整理+部分答案【超实用】
  20. Hyperledger Fabric无排序组织以Raft共识算法启动多个Orderer服务、多组织共同运行维护Orderer服务

热门文章

  1. 免费好用的微信小助手WeChatExtension1.8.7中文版
  2. 单片机实例28——数字电压表(硬件电路图+C语言程序)
  3. android4.2.2系统投屏,一学就会!手机投屏电视完整攻略
  4. 教你word怎么仿制电子印章
  5. 计算机辅助设计证书怎么查询,怎么查询CAD技能证书
  6. 小程序的学习步骤计划
  7. 自定义内核启动后的Logo
  8. 2019年小学计算机室管理制度,中小学微机室规章标准.doc
  9. photoshop cc使用技巧
  10. 计算机系统备份和还原的目的,电脑怎么一键还原系统(轻松一键系统备份与还原)...