期权二叉树估值与图计算

传统期权二叉树的算法都是基于数组的,对于没有编程基础的人来说非常不直观。二叉树是一种特殊的图,可以用python networkx这个图算法库实现,这个库不仅包含常用的图算法,还包含简单的绘图功能,非常适合研究分析使用。

def binarytree_europtionfull(S,K,r,q,sigma,t,steps,op_type):u=np.exp(sigma*np.sqrt(t/steps))d=1/uP=(np.exp((r-q)*t/steps)-d)/(u-d)#二叉完全树    G=nx.full_rary_tree(2,2**(steps+1)-1)G.nodes[0]['price']=S#正推过程for (parent,children) in nx.bfs_successors(G,0):#print(parent,children)G.nodes[children[0]]['price']=G.nodes[parent]['price']*d;G.nodes[children[1]]['price']=G.nodes[parent]['price']*u;#对最后一天到期日计算所有情况下的payofffor i in nx.descendants_at_distance(G,0,steps):G.nodes[i]['opt_val']=np.maximum(G.nodes[i]['price']-K,0)#倒推过程for (parent,children) in reversed(list(nx.bfs_successors(G,0))):G.nodes[parent]['opt_val']=((1-P)*G.nodes[children[0]]['opt_val']+(P)*G.nodes[children[1]]['opt_val'])*np.exp(-r*t/steps)    #print(node)dat=G.nodes.data()#生成图形显示,可注释掉。pos = graphviz_layout(G, prog="dot")nx.draw(G, pos, labels={k:"price: %.2f\n opt_val:%.2f"%(v['price'],v['opt_val']) for (k,v) in dat},with_labels=True)plt.show()return G.nodes[0]['opt_val']

直接用二叉树空间复杂度为2^{n},呈指数增长。我们注意到,对于中间的节点,其实有一些是相等的,因为对于一支标的价格,S*u*d=S*d*u,所以我们可以将这些节点合并,这就是网格模式。

def binarytree_europtionLattice(S,K,r,q,sigma,t,steps,op_type):u=np.exp(sigma*np.sqrt(t/steps))d=1/uP=(np.exp((r-q)*t/steps)-d)/(u-d)G = nx.Graph()G.add_node(0)G.nodes[0]['price']=Scnt=0for i in range(steps):for j in range(i+1):#print(j,i,cnt,cnt+i+1,cnt+i+2)G.add_edge(cnt,cnt+i+1)G.add_edge(cnt,cnt+i+2)cnt+=1#正推过程for (parent,children) in nx.bfs_successors(G,0):if len(children)==2:G.nodes[children[0]]['price']=G.nodes[parent]['price']*d;G.nodes[children[-1]]['price']=G.nodes[parent]['price']*u;#对最后一天到期日计算所有情况下的payoff,for i in nx.descendants_at_distance(G,0,steps):G.nodes[i]['opt_val']=np.maximum(G.nodes[i]['price']-K,0)#倒推过程for (parent,children) in reversed(list(nx.bfs_successors(G,0))):G.nodes[parent]['opt_val']=((1-P)*G.nodes[children[-1]-1]['opt_val']+(P)*G.nodes[children[-1]]['opt_val'])*np.exp(-r*t/steps)    #生成图形显示,可注释掉。pos = graphviz_layout(G, prog="dot")nx.draw(G, pos, labels={k:"price: %.2f\n opt_val:%.2f"%(v['price'],v['opt_val']) for (k,v) in dat},with_labels=True)plt.show()return G.nodes[0]['opt_val']

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

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

相关文章

Java-反射

一、什么是反射? 反射允许对封装类的成员变量,成员方法和构造方法的信息进行编程访问。 反射可以把成员变量、成员方法、构造方法挨个儿的都获取出来,并对它们进行操作。 IDEA中自动提示的功能就是用反射来做的。 Ctrlp:快捷键&…

Java项目调试实战:如何高效调试Spring Boot项目中的GET请求,并通过equalsIgnoreCase()解决大小写不一致问题

Java项目调试实战:如何高效调试Spring Boot项目中的GET请求,并通过equalsIgnoreCase解决大小写不一致问题 写在最前面全部过程Java equalsIgnoreCase() 方法idea中如何调试SpringBoot项目在IntelliJ IDEA中使用内置HTTP客户端设置断点和调试 补充&#x…

vu3-14

第一个需求是在用户登录成功之后,在主页显示用户的真实姓名和性别,这些信息要调用后端API获取数据库里面的信息,第二个需求是点击菜单1,在表单中修改用户信息之后,更新到后端数据库,然后在主页同步更新用户…

FA模板制作

1、链接克隆模板的制作 (1)安装一个全新的Windows 10,挂载并安装tools,关闭防火墙 (2)挂载FusionAccess_WindowsDestop_Install_6.5.1.iso后启用本地Administrator本地超管,切换为本地超管&am…

BeanUtils.copyProperties的用法

BeanUtils.copyProperties的用法 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,让我们一起探讨Java中一个强大且便捷的工具——BeanUtils.copyPro…

spring、springmvc、springboot、springcloud简介

spring简介 spring是什么? spring: 春天spring: 轻量级的控制反转和面向切面编程的框架 历史 2002年,首次推出spring雏形,interface 21框架2004年,发布1.0版本Rod Johnson: 创始人,悉尼大学,音乐学博士…

Nexus私服简介及搭建(Linux3.62版本)

文章目录 一、Nexus的安装1、运行程序2、查看运行日志和初始密码3、启动配置文件的修改 二、Nexus的使用1、Nexus使用流程说明2、库类型说明2.1、maven-public库配置说明2.2、maven-central库配置说明 3、用户本地配置使用maven-public库3.1、禁用了匿名访问,额外需…

test mock-03-wiremock 模拟 HTTP 服务的开源工具 flexible and open source API mocking

拓展阅读 test 之 jmockit-01-overview jmockit-01-test 之 jmockit 入门使用案例 mockito-01-overview mockito 简介及入门使用 PowerMock Mock Server ChaosBlade-01-测试混沌工程平台整体介绍 jvm-sandbox 入门简介 wiremock WireMock是一个流行的开源工具&#xf…

DFA 算法实现敏感词过滤

背景 项目中APP端发帖,评论可能包含多个关键词,铭感词。此时需要对该内容进行过滤处理。此前都是在客户端层面操作,这样不仅带来了性能的损耗,而且新增铭感词时,需要客户端重新打包上架,显得十分不合理。所…

浅谈企业定岗定编工作中的几点误区

定岗定编是企业人力资源管理的基础性工作,包括员工招聘、培训、绩效考核、薪酬福利体系设计等都需要结合定岗定编的最终结果应用。但在企业中,越是基础的工作越容易被忽视,很多时候为了完成此项工作任务,简化了很多必要的工作环节…

R306指纹识别模块指令系统

一:指令集 1. GR_GetImage 指令代码:01H 功能:从传感器上读入图像存于图像缓冲区 2. GR_GenChar 指令代码:02H 功能:根据原始图像生成指纹特征存于 CharBuffer1 或 CharBuffer2 3. GR_Match 指令代码&#xff…

记Android字符串资源支持的参数类型

参数以%开头&#xff0c;后拼接对应的参数类型名称&#xff0c;如下所示&#xff1a; <string name"tips">Hello, %s! You have some new messages.</string> 类型名称如下所示&#xff1a; s字符串格式用于插入字符串值。例如&#xff0c;"Hel…

SpringCloud(H版alibaba)框架开发教程,使用eureka,zookeeper,consul,nacos做注册中心——附源码(1)

源码地址&#xff1a;https://gitee.com/jackXUYY/springboot-example 创建订单服务&#xff0c;支付服务&#xff0c;公共api服务&#xff08;共用的实体&#xff09;&#xff0c;eureka服务 1.cloud-consumer-order80 2.cloud-provider-payment8001 3.cloud-api-commons 4.…

kubeadm来搭建k8s集群。

我们采用了二进制包搭建出的k8s集群&#xff0c;本次我们采用更为简单的kubeadm的方式来搭建k8s集群。 二进制的搭建更适合50台主机以上的大集群&#xff0c;kubeadm更适合中小型企业的集群搭建 主机配置建议&#xff1a;2c 4G 主机节点 IP …

Spring@Scheduled定时任务与SQLSERVER distinct order by的错误吞噬

目录 Scheduled 提供的调度机制 遇到错误不会抛出 数据库SQL差异 Scheduled 提供的调度机制 cronzonefixedDelayfixedDelayStringfixedRatefixedRateStringinitialDelayinitialDelayString 上面具体怎么用自己代码定位到API上去看注释说明。 遇到错误不会抛出 在SqlSe…

【力扣题解】P700-二叉搜索树中的搜索-Java题解

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P700-二叉搜索树中的搜索-Java题解&#x1f30f;题目描述&#x1f4a1;题解&#x1f…

2024年,独立建站过渡SASS建站,你准备好了吗?

在这个数字时代&#xff0c;一个充满活力的网站对于企业和个人来说都是非常重要的。独立建站是一个非常不错的选择&#xff0c;但是过渡到SASS建站可以更方便地达到成功。 SASS建站不仅为您提供业界领先的技术和创意设计&#xff0c;还可以让您轻松管理您的网站内容。同时&…

智慧园区物联综合管理平台之架构简述

总体架构 系统总体划分为物联感知系统层、 核心平台层、 综合运营服务平台和展示层四部分。 物联感知系统层 物联感知系统主要是支撑园区智能化运行的各子系统, 包括门禁系统、 视频监控系统、 车辆管理系统等。 核心平台层 核心平台层包括: 园区物联综合管理平台和园区…

x-cmd pkg | gum - 很好看的终端 UI 命令行工具

目录 简介首次用户功能特点Bubbles 与 Lip Gloss进一步探索 简介 gum 由 Charm 组织于 2022 年使用 Go 语言开发。旨在帮助用户编写 Shell 脚本与 dotfiles 时提供一系列快捷使用&#xff0c;可配置&#xff0c;可交互&#xff0c;美观的 Terminal UI 组件。 首次用户 使用 x…

[Angular] 笔记 25:指令

组件指令 (chatgpt 回答) 在 Angular 中&#xff0c;组件本身可以被视为指令&#xff0c;这种指令被称为组件指令。组件是 Angular 应用的构建块之一&#xff0c;它封装了一段具有特定功能和特性的用户界面&#xff0c;并且可以在应用中重复使用。 组件指令具有以下特征&…