bs模型的通俗理解_白话

bs模型的通俗理解_白话要想不用一个数学模型只用大白话说明白Black-Scholes这个伟大的期权类衍生品定价模型,似乎与用地球语言解释火星文化一样的困难。所以我的所谓白话也不可能是真的大白话了,总要摆出几个简单的数模以说明问题。只不过这些数学上的东西我相信有一点数学和统计学基础的朋友都能看的明白了。事实上即使摆出一大堆数学模型,我也没有能力真的写出其推导的全过程。幸好我的目的不是写清楚BS模型的推导,而是从其原理性的

大家好,又见面了,我是你们的朋友全栈君。

    要想不用一个数学模型只用大白话说明白Black-Scholes这个伟大的期权类衍生品定价模型,似乎与用地球语言解释火星文化一样的困难。所以我的所谓白话也不可能是真的大白话了,总要摆出几个简单的数模以说明问题。只不过这些数学上的东西我相信有一点数学和统计学基础的朋友都能看的明白了。事实上即使摆出一大堆数学模型,我也没有能力真的写出其推导的全过程。幸好我的目的不是写清楚BS模型的推导,而是从其原理性的东西出发,得到在目前市场条件上使用此模型带有“批判”性质的结论。

    我想从二叉树模型引出一个无风险投资组合,不过在讨论这个模型之前我先写几点预备知识:

连续复利

    复利的概念做投资的人耳熟能详,例如一个活期账户,你一年取一次不如一个月取一次将本息再存,这样一年下来你的总利息定会多一些。同理,一天取一次似乎利息更多,理论上还可以一分钟取一次,一秒取一次,一毫秒取一次,最后的极限就是连续复利的概念,其表达式为EXP(rt),EXP就是自然数e的指数形式(我不知道如何在电脑上写出指数和根号之类,所以本文中都采用了EXCEL中的表达式)。例如连续复利10%的100元钱1年后的实际利息为100*EXP(10%*1)=110.517元。期权公式中由于均涉及未来价格的贴现,贴现方式在模型中采用的都是连续复利。

无套利机会

    市场应该是没有套利机会的,即使出现套利的机会,也会因为投机者的大量买入或卖出而在短时间内填平这个“错误的价格”。在建立对冲组合时,这样的无套利机会意味着你的无风险组合的收益应该等于市场无风险利率,否则总有投机者会建立头寸用无风险利率的借款买入组合(组合收益大于无风险利率)或者卖出组合放出无风险利率的贷款(组合收益小于无风险利率)来套利,直至两者相等。

Delta

    在期权的对冲和套保中,Delta是一个重要参数。它定义为期权价格变动与标的股票价格变动之比。例如我们下面的例子中股票从15到25元变动的10元,这一过程中股票的期权变动为4元,则Delta为4/10=0.4。说明0.4份股票和1份期权的组合可以对冲掉风险。

    现在我们可以开始谈二叉树模型了,这个模型其实简单,就是事情发展的两种可能性。例如一只现价20元的股票,一年后可能是25元,还有一条分叉可能是15元,如果现在有一个行权价格为21元的看多期权,那这个期权在一年后在两个分叉上对应的价值分别是4元和0元。我们现在来看看这只期权现在的价格应该是多少呢?

    在这个例子里Delta是0.4,也就是说无风险组合为买入0.4份股票而卖出1份看多期权,这样组合在1年后的价值肯定是6元,其可能是一条分叉中的25*0.4-4=6元或者是另一条分叉中的15*0.4-0=6元。如果市场无风险利率为10%,这个1年后的6元现值为6*EXP(-10%)=5.429元。那么这个组合在构建时的成本就应该是5.429元,即20*0.4-f*1=5.429,计算f=2.57元。这就应该是期权的现价。

    这个模型我们可以整理出其一般形式,即f=EXP(-r*t)*(p*Fu+(1-p)*Fd);其中p=(EXP(r*t)-d)/(u-d);r为无风险利率;t为期限;u为现货期末价的可能涨幅(Up分叉),上例中为25/20=1.25,d为现货期末可能跌幅(Down分叉),上例中为15/20=0.75;Fu为期权Up分叉的期末价值,上例中为4元;Fd为期权Down分叉的期末价值,上例中为0元。上例通过这个公式可以计算一下f正好等于2.57元。但是,这个价格有意义吗?两个分叉的期末价格完全是主观上的猜测!在不加主观因素的条件下如何设定这个u和d呢?于是波动率的概念出场了。

    波动率σ是一年内股票连续复利收益的标准差。在一个很小的Δt时间内,收益的方差为σ^2*Δt,经过一连串的推导之后,u=EXP(σ*SQRT(Δt)),d=EXP(-σ*SQRT(Δt)),SQRT是根号。例如上例中如果通过历史数据计算σ为30%,则u=EXP(30%*SQRT(1))=1.3498588,d=EXP(-30%*SQRT(1))=0.7408182,代入二叉树的一般形式,即可得到期权的现价。

    利用波动率计算后的期权定价似乎完全避免了主观的成分,因为它仅仅依靠了波动率,无风险利率,时间期限这些给定的原始数据推出。这似乎对于在我们这个以做投机为主的市场来看有点不可思议。这种之后我会再次提及的所谓风险中性(risk neutral)体系,也是BS模型的重要前提,也成为我“批判”的原因之一。不过这个批判是打引号的,因为错的不是体系和模型,我只是提醒使用者不要忘记这些推导的前提,而我们的市场和投资者性质注定我们目前还无法使用它。

    模型的优化远远没有结束,这个单步二叉树是最简单的,问题多多。BS模型要是这么简单就不会有人因此获诺贝尔奖了。我们可以马上想到的是,可以把时间间隔缩小,将两个分叉各自再分出去,然后再分,再分……你马上就发现每个“二叉”的Delta是不同的,有一些软件可以设定时间步数来用计算机模拟这一过程,但我们想要的还是一般公式的模式,所以我们接下来要探讨一下复杂的多的连续时间的股价随机过程。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125122.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 推荐几个火狐浏览器插件好_安卓火狐浏览器插件

    推荐几个火狐浏览器插件好_安卓火狐浏览器插件致敬思杰马克丁起初马克丁追杀ParallelDesktop,我用VirtualBox,所以我不说话;接着他们追杀几何画板,我用Matl…

    2022年9月28日
    2
  • 深入编程之QQ盗号核心代码[通俗易懂]

    深入编程之QQ盗号核心代码[通俗易懂]经常有听到有朋友QQ被盗的消息,总感觉做出这种行为的人是可鄙的,不就是对QQ窗口进行监视,然后再是记录用户输入的号码和密码,认为没什么了不起。对于Windows核心编程,本人还是一只菜鸟,前一段时间把《Windows系统编程》粗略的看一边(当然重点地方仔细的看),由于对于C++有点基础,感觉学起来比较容易上手。但到了这两天真正实践的时候,遇到了各种各样的问题。即使一个小小的问题都足以让我…

    2022年6月26日
    67
  • idea搭建vue(使用VUE打开一个项目)

    使用IDEA创建咱们的第一个VUE项目最近在学习VUE,想着使用vscode、hbulider、webstorm这些软件学习,但听前端前辈们说要很多插件什么的等等等!听完咱还是选择IDEA吧,毕竟和IDEA还是很亲近的!1.安装环境–让VUE‘顺产’(1)安装node.js至于为什么安装大家可以看看前辈们的博客哦!1.先让IDAE准备准备(迎接VUE)~~~提示:这里可以添加要学的内容例如:1、搭建Java开发环境2、掌握Java基本语法3、掌握条件语句4、掌握循环

    2022年4月14日
    297
  • 详解 CAP 定理 Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)

    详解 CAP 定理 Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)详解CAP定理Consistency(一致性)、Availability(可用性)、Partitiontolerance(分区容错性)CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partitiontolerance(分区容错性),三者不可得兼。分布式系统(distributedsystem)正变得越来越重要,大型网站几乎都是分布式的。分布式系统的最大难点,就是各个节点的状态如何同步。CAP定理是.

    2022年7月25日
    17
  • java mediatype属性_SpringMVC 及常用MediaType

    java mediatype属性_SpringMVC 及常用MediaTypeSpringMVC简介在WEB开发中,SpringMVC实现了较为经典的MVC(Model,View,Controller)模式,组成:1.Model层(模型层):管理App中每个功能模块所用到的值和数据.(实体类entity).2.View层(视图层):将模型层的数据展示给用户.(页面jsp,html,thymeleaf等..)3.Controller层(控制层/控制器):管理页面跳转…

    2022年5月9日
    214
  • torch.nn.Conv2d详解

    torch.nn.Conv2d详解首先看一下这个类的定义 classConv2d ConvNd 初始化函数 这里主要了解有哪些参数传进来就可以了 def init self in channels int out channels int kernel size size 2 t stride size 2 t 1 padding size 2 t 0 d

    2025年11月14日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号