Greeks介绍 ,python实现方案

##对冲的介绍
以期权举例能更容易的理解对冲的意义,持有期权有两种形式:

  1. naked position
  2. covered position

第一种顾名思义就是单独持有期权,假设一个人write a call option on a stock,如果到期日时股票价格高于行权价格,那么这个人就会遭受损失,股票价格越高这个损失越多,理论上资产价格可以无限增长但不能低于0,所以这个人的风险就是无限大的。

如果这个人同时持有同种股票,那么当股票价格上升时虽然option遭到损失,但是持有的股票确可以受益,在一定的stock和option的比例下,这个人可以实现0风险,拿到一个risk-free rate。这就是对冲的意义。

在金融市场中,不同的机构或这个人对于风险的需求不同,而作为一个完善的金融市场能提供多种的可能性也是其基本的职能。不同产品的诞生,包括不同的结构化,不同的风险构成,不同的期限结构,需要大量的金融工程的人士来进行设计,估值,架构。而对于如何对冲自己持有的金融产品的风险则是基金,资管,银行等机构中的人士需要重点关注的对象。

##Greeks介绍
Greeks包含多种指标,其主要用来帮助专业人士来进行对冲工作,通过不同的greeks exposure我们可以进行不同的金融产品的买卖来有效的稀释风险,达到整体的风险等级需要。

###Delta
Delta: option价格的变化随着underlying asset价格变化的比率
举个例子,假设一个人sell 1000 call option,我们可以计算出delta for this option 是0.6,那么如果我想对冲掉风险,我们就可以买入underlying asset(0.6✖️1000=600)。这样一个组合就是delta neutral的。

Delta 的计算方法有两种:

  1. Delta= change in call option price/ change in underlying asset price
  2. Delta= N(d1) 之前文章提到的BSM模型中的一部分

随便画了一个call option的delta 的图,可以看出随着underlying asset价格的变化delta是不断变化的,所以为了保持delta中性我们也需要随时调整参数。

###Theta
Theta:option价格的变化随着到期时间的变化的比率
Theta 的计算方法也分为两种,第一种就是change in price/change in time。
第二种也要用到BSM模型中的一部分具体的公式很复杂,可以网上搜索一下很快就出来了。

介绍下theta的特点吧:

  1. 对于put和call,theta的影响是一样的
  2. 当underlying asset的价格等于执行价格时候,theta是最明显的,也就是在at-the-money的情况下

###Gamma
Gamma:delta的变化随着underlying asset价格变化的比率
公式同样,两种方法,一种是delta的导数,第二章运用BSM
Gamma,和delta同样的重要,delta仅仅能对冲掉价格小范围变化产生的风险,而gamma则能对冲掉价格大范围变化的风险。所以同时使用delta和gamma是非常有必要的。

Gamma也有很多特点,图片可以看出其在at-the-money时是最大的也就是说delta的变化最大。
###Vega
Vega:形容的是option价格的变化随着sensitivity变化的比率

###Rho
Rho:形容的是option价格的变化随着risk-free rate变化的比率

##最后附上python的code

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import math
from BSM.option import d1f,N,dN
#
#Functions for greeks
#
def BSM_delta (St,K,t,T,r,sigma):d1=d1f(St,K,t,T,r,sigma)delta=N(d1)return deltadef BSM_gamma(St,K,t,T,r,sigma):d1=d1f(St,K,t,T,r,sigma)gamma=dN(d1)/(St*sigma*math.sqrt(T-t))return gammadef BSM_theta(St,K,t,T,r,sigma):d1 = d1f(St, K, t, T, r, sigma)d2 = d1 - sigma * math.sqrt(T - t)theta = -(St * dN(d1) * sigma / (2 * math.sqrt(T - t))+ r * K * math.exp(-r * (T - t)) * N(d2))return thetadef BSM_rho(St,K,t,T,r,sigma):d1 = d1f(St, K, t, T, r, sigma)d2 = d1 - sigma * math.sqrt(T - t)rho = K * (T - t) * math.exp(-r * (T - t)) * N(d2)return rhodef BSM_vega(St,K,t,T,r,sigma):d1 = d1f(St, K, t, T, r, sigma)vega = St * dN(d1) * math.sqrt(T - t)return vega
#
#Plotting
#
def plot_greeks(function,greek):# model parametersSt = 100.0  # index levelK = 100.0  # option striket = 0.0  # valuation dateT = 1.0  # maturity dater = 0.05  # risk-less short ratesigma = 0.2  # volatility# Greek Calculationstlist = np.linspace(0.01, 1, 50)klist = np.linspace(80, 120, 50)V = np.zeros((len(tlist), len(klist)), dtype=np.float)for j in range(len(klist)):for i in range(len(tlist)):V[i, j] = function(St, klist[j], t, tlist[i], r, sigma)# 3D Plottingx, y = np.meshgrid(klist, tlist)fig = plt.figure(figsize=(9, 5))plot = Axes3D(fig)plot.plot_wireframe(x, y, V)plot.set_xlabel('strike $K$')plot.set_ylabel('maturity $T$')plot.set_zlabel('%s(K, T)' % greek)

Greeks介绍 ,python实现方案相关推荐

  1. BSM模型心得,python实现方案

    #BSM模型心得,python实现方案 BSM简介 首先对于BSM模型先简单介绍一下,接触过期权的人应该都不陌生,BSM模型全称Black-Scholes-Merton model,其主要的贡献是提供 ...

  2. python 布莱克舒尔斯_BSM模型心得,python实现方案

    #BSM模型心得,python实现方案 ##BSM简介 首先对于BSM模型先简单介绍一下,接触过期权的人应该都不陌生,BSM模型全称Black-Scholes-Merton model,其主要的贡献是 ...

  3. 介绍Python中的__future__模块

    这篇文章主要介绍了介绍Python中的__future__模块,__future__模块使得在Python2.x的版本下能够兼容更多的Python3.x的特性,需要的朋友可以参考下 Python的每个 ...

  4. python软件界面-python软件界面介绍(python软件介绍)

    python软件界面介绍 1.接口初始化 当我们使用pycharm工具时,我们将遇到的第一个问题是,在进行各种配置后界面变得混乱时,我们该怎么办?我们应该还原,那么如何还原初始设置? 尽管此工具是从e ...

  5. python位运算符_详细介绍Python语言中的按位运算符

    按位运算符是把数字看作二进制来进行计算的.Python中的按位运算法则如下: 按位与 ( bitwise and of x and y ) & 举例: 5&3 = 1 解释: 101 ...

  6. python的六个类型_介绍Python中6个序列的内置类型

    原标题:介绍Python中6个序列的内置类型 1.Python中6个序列的内置类型分别是什么? Python包含6中内建的序列,即列表.元组.字符串.Unicode字符串.buffer对象和 xran ...

  7. opencv介绍+python调取图片

    opencv介绍+python调取图片 opencv介绍 简介 优势 python调取图片 前期准备 程序 运行结果 后续 opencv介绍 简介 OpenCV是一个基于BSD许可(开源)发行的跨平台 ...

  8. python装饰器 property_介绍Python的@property装饰器的用法

    在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改: s = Student() s.score = 9999 这显然不合逻辑.为了限制score的 ...

  9. python介绍---python工作笔记008

    然后我们先来看一下python的介绍 python是作者起名字也是挺随意. 进入官网看看,可以看到

最新文章

  1. 计算机科学与技术专业综合二,计算机科学与技术专业综合一第二页
  2. 哈佛博士教你如何摆脱「尬聊」
  3. socket编程之inet_addr和inet_ntoa
  4. Jmeter_前端RSA加密下的登陆模拟_引用js文件实现(转)
  5. 【转】asp.net mvc生成验证码
  6. python模块管理工具,Python的包管理工具
  7. 我的世界服务器设置op显示,我的世界设置op权限 | 手游网游页游攻略大全
  8. JavaScript数据结构与算法(1)(数组、栈、队列、链表)(ES6)
  9. 现代GPU的体系结构
  10. DM8168 DDR3接口的PCB布线指南
  11. EntityFramework使用及优化
  12. CentOS linux系统将UTC时间修改为CST时间
  13. 诺基亚5800软件测试初学者,诺基亚5800刷机【教程详解】
  14. 一文了解plc编程、电脑编程、手机APP编程、组态编程、云编程(下)
  15. matlab editor 颜色,matlab编辑器颜色风格设置
  16. css模板 bulma_用Bulma在6分钟内学习CSS框架
  17. 学习字节跳动的团队管理
  18. JavaScript DOM 学习笔记
  19. 获取其他APP中素材
  20. raw图片处理软件:DxO PhotoLab for Mac

热门文章

  1. 优美动听的葫芦丝名曲
  2. 晨曦记账本关于取回和修改密码的方法
  3. 数字化智慧城市建设的一系列项目工程变化与联系
  4. Thinkpad 各系列简介
  5. APP积分商城的前后置条件是什么?
  6. 易语言系列————————窗口_枚举所有子窗口(精易模块)
  7. 小米红头数据线接线解析
  8. L2-036 网红点打卡攻略 (25 分)(哈密顿回路)
  9. pdf转cad最好的软件如何选择免费
  10. c++ 单源最短路径-狄杰斯特拉算法