金融基础知识(三):期权

news2024/12/26 1:00:58

1.认购期权与认沽期权

认购期权和认沽期权都是交易所常见的期权合约。

认购期权(Call Option)是一种给予持有人以在未来某个时间或特定事件发生时购买底层标的资产的权利。认购期权的持有人在行权日(Expiration Date)可以按照期权约定的价格(行权价格,也称执行价格)购买标的资产,也可以选择不行权。

认沽期权(Put Option)是一种给予持有人以在未来某个时间或特定事件发生时出售底层标的资产的权利。持有认沽期权的人可以在行权日按照期权约定的价格出售标的资产,或者选择不行权。

认购期权和认沽期权不同之处在于其行权时的行为。认购期权持有者在行权日可以根据行权价格购买标的资产,而认沽期权持有者则可以在行权日根据行权价格出售标的资产。

在期权交易中,持有认购期权的人利益与标的资产价格上涨相关;而持有认沽期权的人利益与标的资产价格下跌相关。认购和认沽期权的价格通常由许多因素影响,包括执行价格、到期日期、波动率、标的资产的价格等。

期权交易在投资者中非常受欢迎,因为它们为投资者提供了一个灵活的方式来参与市场,降低风险和锁定获利。然而,认购期权和认沽期权在实践中可以十分复杂,并涉及高度技术的分析和决策。投资者在进行期权交易时需要进行慎重的分析和评估,并确保了解所涉及的所有风险和成本。

2.欧式期权与美式期权

欧式期权是指持有人只能在到期日(或事先约定的某个日期)执行期权的权利。也就是说,欧式期权只有在到期日才能被行使。在此之前,持有人无法行使或出售该期权。

相比之下,美式期权给予持有人更大的灵活性。持有人在任何时间都可以选择行使该期权,无论是在到期日之前还是之后。这意味着,持有美式期权的人可以根据市场情况和个人利益来决定何时行使期权。

由于美式期权的灵活性,相对于欧式期权而言,它们通常会有更高的价值。因此,在相同的其他条件下,美式期权的价格通常会高于欧式期权。

无论是欧式期权还是美式期权,它们的定价都受到多种因素的影响,例如标的资产价格、行权价格、到期日、波动率、利率等。对于期权交易者和投资者来说,了解这些不同期权类型的特点和定价因素非常重要,以便根据自己的需求和风险偏好做出正确的决策。

3.计算欧式期权的杠杆率

首先介绍一下欧式期权的定价公式如下:

其中

 

其他 符号说明如下:

C :认购期权的价格

P:认沽期权的价格

S:标的物当前价格

K:行权价

r:无风险利率

T:到期时间

\sigma:标的物年华波动率

N():正太分布变量的累积分布函数

在上面的基础上,以认购期权为例,可以计算期权合约的杠杆率为

以某期权合约为例,期权价格C=0.3528,当日价格S=3.459,行权价格K=3.3,当日利率r=0.022284,合约到期日期t= 0.5,波动率sigma=0.2563,计算杠杆率的python代码如下:

import numpy as np
from scipy.stats import norm

def call_option_d(s,k,r,t,sigma):
    d1 = (np.log(s / k) + (r + 0.5 * sigma * sigma) * t) / (sigma * np.sqrt(t))
    d2 = d1 - sigma * np.sqrt(t)
    return d1, d2

def call_option_lambda(s,k,r,t,sigma):
    d1, d2 = call_option_d(s,k,r,t,sigma)
    c = s * norm.cdf(d1) - np.exp(-r * t) * k * norm.cdf(d2)
    lamb = norm.cdf(d1) * s / c
    return lamb

sigma = 0.2563
t = 0.5
r = 0.022284
k = 3.3
s = 3.459
c = 0.3528

lamb = call_option_lambda(s,k,r,t,sigma)
print(lamb)

 计算出杠杆率为6.4676。期权的杠杆率受很多因素的影响,可以利用控制变量法来体会杠杆率的变化。分别以到期时间1个月、2个月、3个月和6个月为例计算不同到期时间杠杆率随标的物现价的变化,并绘制变化图如下:

如图所示,可以看到随着到期时间的增加,杠杆率是逐渐变小的。对于认购期权来说,随着标的物价格增加,杠杆率会逐渐变小直至收敛到1。相反,随着标的物价格的减小,杠杆率会逐渐变大,理论上会到无穷大。但是,由于小单位的存在,虽然不会到无穷大,但也会是一个相当大的数字,因此,在交易期权时要格外小心,必须搞清楚合约的杠杆率以控制风险。
 

4.计算欧式期权的隐含波动率

事实上,波动率并不是通过统计方法得到的,而是由期权定价公式代入当前价格反解出来的隐含波动率。求隐含波动率,就等价于求一个方程的解。问题是这个方程没有简单的解析解,只能利用数值方法求解,这里使用二分法进行求解。

首先,虚拟一个看涨期权。其中,当前标的股价和执行价格都是10,利率是2%,到期时间是一年,波动率是20%。利用上节公式,可以求出它的理论价格为0.8916037278572535。

import numpy as np
from scipy.stats import norm

def bs(S, K, T, r, vol,c_p):
    d1 = (np.log(S/K) + (r + 0.5*vol**2)*T) / (vol*np.sqrt(T))
    d2 = d1 - vol * np.sqrt(T)
    if c_p in ['C','c','Call','call','CALL']:
        pv = S * norm.cdf(d1) - np.exp(-r * T) * K * norm.cdf(d2)
        return pv
    elif c_p in ['P','p','Put','put','PUT']:
        pv = np.exp(-r * T) * K * norm.cdf(-d2) - S * norm.cdf(-d1)
        return pv
    else:
        print('Wrong option type!')
        return -1
    
S, K, T, r, vol, c_p = 10,10,1,0.02,0.2,'c'
pv = bs(S, K, T, r, vol,c_p)
print(pv)

然后设定一个波动空间,比如设定下届为0.1%,上届为1000%,分别代入公式求出对应的期权价格为-0.6935904609248063,9.108390596166512。

vol_0 = 0.001
vol_1 = 10

pv_0 = bs(S, K, T, r, vol_0,c_p)
print(pv_0 - pv)

pv_1 = bs(S, K, T, r, vol_1,c_p)
print(pv_1 - pv)

 最后利用二分法进行求解,设定设定求得的期权价格与理论价格之差的阈值为0.0001,当二者之差小于这个值时停止迭代,输出结果。

vol_0 = 0.001
vol_1 = 10
vol_x = (vol_0+vol_1)/2.0
pv_x = bs(S, K, T, r, vol_x,c_p)
tol = 0.0001
nn = 0
while (np.abs(pv_x - pv)>tol) and (nn<1000):
    pv_x = bs(S, K, T, r, vol_x,c_p)
    if pv_x < pv:
        vol_0 = vol_x
        vol_x = (vol_0+vol_1)/2.0
    else:
        vol_1 = vol_x
        vol_x = (vol_0+vol_1)/2.0
    nn += 1
    print(nn,vol_x)

输出结果为:

1 2.50075
2 1.250875
3 0.6259374999999999 
4 0.31346874999999996
5 0.15723437499999998
6 0.23535156249999997
7 0.19629296874999996
8 0.21582226562499995
9 0.20605761718749996
10 0.20117529296874997
11 0.19873413085937497
12 0.19995471191406247
13 0.20056500244140624
14 0.20025985717773437
15 0.20010728454589843
16 0.20003099822998044
17 0.19999285507202147
18 0.20001192665100095

经过18次迭代以后,得到的最终结果为20.012%,与真实值20%是非常接近的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/707836.html

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

相关文章

B/S架构的C#云检验系统源码 实验室信息管理系统源码

科技的飞速发展为实验室信息管理带来了新机遇&#xff0c;云计算技术的应用更是为实验室信息管理打开了新的大门。云 LIS 实验室信息管理系统&#xff0c;作为一种新型的信息化管理方案&#xff0c;已经在多个实验室的信息化管理中得到应用&#xff0c;并且具有广阔的应用前景。…

Python3 命名空间和作用域 | 菜鸟教程(十七)

目录 一、命名空间 &#xff08;一&#xff09;简介 1、命名空间(Namespace)是从名称到对象的映射&#xff0c;大部分的命名空间都是通过 Python 字典来实现的。 2、命名空间提供了在项目中避免名字冲突的一种方法。 3、各个命名空间是独立的&#xff0c;没有任何关系的&a…

访问者模式(Vistor)

定义 访问者是一种行为设计模式&#xff0c;它能将算法与其所作用的对象隔离开来。 前言 1. 问题 假如你的团队开发了一款能够使用巨型图像中地理信息的应用程序。图像中的每个节点既能代表复杂实体&#xff08;例如一座城市&#xff09;&#xff0c; 也能代表更精细的对象…

Nginx【Docker(安装Nginx、Nginx服务启停控制、全局块、events块、HTTP块)】(二)-全面详解(学习总结---从入门到深化)

目录 Docker安装Nginx Nginx服务启停控制 Nginx配置指令详解_全局块 Nginx配置指令详解_events块 Nginx配置指令详解_HTTP块 Docker安装Nginx 拉取官方的Nginx镜像 [rootlocalhost ~]# docker pull nginx 以下命令使用 Nginx 默认的配置来启动一个 Nginx 容器实例&#xf…

小驰私房菜_28_Qcom Camx相关名词

(Qcom 7325平台) CSID = Camera Serial Interface Decoder module IPE = Image Processing Engine IFE (x3) = Image Front End IFE_lite (x2) BPS = Bayer processing segment (for Snapshot) IPE = Image Processing Engine VPU = Video Processing Unit (CODEC) DP…

matplotlib布局模式

栅格布局 import matplotlib.pyplot as plt import numpy as np plt.figure("OBJ")x np.linspace(-np.pi, np.pi, 1000) cosy np.cos(x) siny np.sin(x) y x * 0.5 timesy x ** 2 # 创建九宫格 gs plt.GridSpec(3, 3) # 第0-1行&#xff0c;第2列 plt.subplot…

Eclipse中有用的快捷键

Eclipse中有的快捷键自己记不清楚&#xff0c;但用起来又很方便&#xff0c;遇到了就放在这边备忘。 【CtrlO】快速定位某个类中的属性、方法 有时候&#xff0c;一个类中的属性、方法比较多&#xff0c;想用快捷键快速查找&#xff0c;提升效率。 举例&#xff1a;我想查找…

MYSQL-聚合函数及分组查询

常用聚合函数 COUNT() 求有多少行 SUM() 求和 AVG() 求平均值 MIN() 求最小值 MAX() 求最大值 举个栗子 SELECT AVG(price) FROM products WHERE price_id > 10; 这行代码就是在求id大于10的价格的平均值 AVG(price)表示求price列的平均值 执行逻辑为 先由WHERE…

Mock在接口测试中的实际应用

关于Mock测试 01、含义和目的 1、 什么是mock测试&#xff1f; Mock 测试就是在测试过程中&#xff0c;对于某些不容易构造&#xff08;如 HttpServletRequest 必须在Servlet 容器中才能构造出来&#xff09;或者不容易获取的比较复杂的对象&#xff08;如 JDBC 中的ResultSe…

chatgpt赋能python:下载完Python,如何进入编辑器

下载完Python&#xff0c;如何进入编辑器 Python是一门高级编程语言&#xff0c;具有简单易懂、易于学习、可拓展性强等特点&#xff0c;被广泛应用于Web应用、桌面应用、科学计算、人工智能等众多领域。如果你已经下载并安装了Python&#xff0c;那么接下来如何进入编辑器呢&…

uniapp智慧停车场系统微信小程序h5、APP源码 智能停车系统源码 安装搭建部署教程

【APP】: flutter(原生混合框架&#xff0c;不是web封装&#xff0c;原生应用&#xff0c;一套代码直接生成原生Android和ios应用)&#xff0c;既不损失性能&#xff0c;也能降低开发成本 【小程序/h5/公众号】&#xff1a;uni-app(底层框架Vue) 【后台管理】&#xff1a;vue-e…

DeepSpeed-Chat 打造类ChatGPT全流程 笔记一

这篇文章主要是对DeepSpeed Chat的功能做了一些了解&#xff0c;然后翻译了几个主要的教程了解了一些使用细节。最后在手动复现opt-13b做actor模型&#xff0c;opt-350m做reward模型进行的chatbot全流程训练时&#xff0c;踩了一些坑也分享出来了。最后使用训练后的模型做servi…

计算机组成原理(课堂测验3次)

3、同步通信与异步通信的主要区别是什么&#xff0c;说明通信双方如何联络。 同步通信和异步通信的主要区别是&#xff1a;前者有公共时钟线&#xff0c;所有设备按统一的时序、同一的传输周期进行信息传输&#xff0c;通信双方按约定好的时序联络&#xff1b;后者没有公共时钟…

探秘直链网盘:高效传输、便捷分享的存储利器!

什么是直链网盘&#xff1f; 直链网盘是一种用于存储和共享文件的在线服务。它为用户提供了一个方便的方式来存储和访问他们的文件&#xff0c;而无需依赖本地存储设备。直链网盘的主要特点是它们可以生成直接下载链接&#xff0c;允许用户快速下载文件&#xff0c;而不需要进…

使用 Sigstore 签名的 Elastic Stack 容器镜像!

作者&#xff1a;Maxime Greau 软件供应链攻击不断增加。 这就是为什么这个主题是安全领导者的首要任务。 在这方面&#xff0c;这篇博文重点介绍了使用 Sigstore 对 Elastic Stack 容器镜像进行签名的新功能&#xff0c;以便&#xff1a; 保护 Elastic 软件供应链工作流程为…

java面试Day14

1.如何使用 Redis 实现一个排行榜&#xff1f; Redis实现排行榜是Redis中一个很常见的场景&#xff0c;主要使用的是ZSet进行实现&#xff0c;下面是为什么选用ZSet&#xff1a; 有序性&#xff1a;排行榜肯定需要实现一个排序的功能&#xff0c;在Redis中有序的数据结构有List…

Tauri:跨平台探索之旅

一、简介 Tauri 是一个跨平台 GUI 框架&#xff0c;与 Electron 的思想基本类似。都是属于跨平台技术的解决方案 优缺点快速分析 我们一般会把tauri作为 Electron 的替代方案&#xff0c;electron优点咱们不看&#xff0c;这里就提两个electron比较明显的问题&#xff1a; 安装…

高考志愿填报的个人看法,希望能对你有所启发

各省高考成绩已出&#xff0c;又到一年高考季。张雪峰提到&#xff1a;“普通家庭不要光谈理想&#xff0c;也要谈落地。”志愿怎样填报、选专业还是选学校、什么专业好就业、高考志愿主要看什么&#xff1f; 作为一名过来人&#xff0c;今天就站在小部分群体的角度来聊聊&…

自动化测试常见的三大问题及解决方案

各位小伙伴们&#xff0c;大家好&#xff0c;今天给大家带来的是关于自动化测试常见的三大问题及解决方案&#xff0c;希望给遇到这三大问题的你一些帮助 一&#xff0c;就是我们定位元素的时候&#xff0c;定位不到或有时定位得到&#xff0c;有时定位不到。 特别是喜欢复制…

策略模式(Strategy)

定义 策略是一种行为设计模式&#xff0c;它能让你定义一系列算法&#xff0c;并将每种算法分别放入独立的类中&#xff0c;以使算法的对象能够相互替换。 前言 1. 问题 你打算为游客们创建一款导游程序。该程序的核心功能是提供美观的地图&#xff0c;以帮助用户在任何城市…