蒙特卡洛法批量计算期权希腊值

一般计算期权的希腊值会用中心差分的办法,比如Delta就需要分别计算标的涨跌1%的估值。再加上其他希腊值,我们就需要运行多次蒙特卡洛,时间效率不高。

由于cuda最多支持3个维度,所以我们可以利用这一特点一次性把这些值都算出来。

我们可以定义第一个维度是价格路径,第二个维度是估值的类型。以回望期权计算Delta和Gamma为例,核函数可以写成

@cuda.jit()
def KernelLookBackBatch(payoff,zpath,SMat,K,H,T,r,q,sigma,steps,N):#第一个维度是路径,第二个维度是种类path_i,kind_i = cuda.grid(2)if(path_i>=payoff.shape[0] or kind_i>=payoff.shape[1]):return    maxprice=0dt = T / stepsS=SMat[kind_i]for i in range(0,steps):S=S*math.exp((r - q - 0.5 * sigma**2) * dt + sigma * math.sqrt(dt) * zpath[i,path_i])#Sdebug[path_i,i,kind_i]=Sif maxprice < S:maxprice=Spayoff[path_i,kind_i]=max(maxprice-K,0)* math.exp(-r * T)

调用方式改为

payoffs=np.zeros((QuasiN,3))
threadsperblock = (512,1)
blockspergrid_x = math.ceil(payoffs.shape[0] / threadsperblock[0])
blockspergrid_y = math.ceil(payoffs.shape[1] / threadsperblock[1])
blockspergrid = (blockspergrid_x, blockspergrid_y)
#S扩展为一个向量,分别计算上涨和下跌一个dS(0.01)的价格
SMat=np.asarray([S,S*(1+0.01),S*(1-0.01)])
KernelLookBackBatch[blockspergrid, threadsperblock](payoffs,zpath,SMat,K,H,T,r,q,sigma,steps,QuasiN)
lookback_price = np.mean(payoffs,axis=0)
print("lookback_price",lookback_price[0])
print(f"lookback delta  {lookback_price[1]-lookback_price[2]/(S*0.01*2)}")
print(f"lookback gamma  {lookback_price[1]+lookback_price[2]-2*lookback_price[0]/(S*0.01)**2}")

这样就可以一次性把所有希腊值计算出来。

同样的,这个方法也可以用来计算多个期权的估值。

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

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

相关文章

医卫医学生理学试题及答案,分享几个实用搜题和学习工具 #经验分享#知识分享

下面&#xff0c;我将为您介绍几款备受大学生欢迎的搜题软件&#xff0c;希望能够帮助您更好地完成学业和提升学习效果。 1.历史地图 历史地图app是一款学习型地图软件&#xff0c;历史地图app比较适用于对历史进行学习和偏爱历史的朋友使用 &#xff0c;历史地图app支持多平…

什么是C++的模板元编程(Template Metaprogramming)?请提供一个示例

什么是C的模板元编程&#xff08;Template Metaprogramming&#xff09;&#xff1f;请提供一个示例 C的模板元编程&#xff08;Template Metaprogramming&#xff0c;TMP&#xff09;是一种利用模板技术在编译期执行计算和生成代码的方法。它允许在编译时进行元编程&#xff…

Android Studio Hedgehog 代码补全失效问题记录

Android Studio Hedgehog 代码补全失效问题记录 代码失效问题网上答案很多&#xff0c;如&#xff1a; 关闭省电模式&#xff1b;清空缓存&#xff1b;重启电脑&#xff1b;删除重新安装啥的。但是很一行都没有用&#xff0c;并且我电脑上的4.3.3版本的Android Studio是没有该…

个人搭建部署gpt站点

2024搭建部署gpt 参照博客 https://cloud.tencent.com/developer/article/2266669?areaSource102001.19&traceIdRmFvGjZ9BeaIaFEezqQBj博客核心点 准备好你的 OpenAI API Key; 点击右侧按钮开始部署&#xff1a; Deploy with Vercel&#xff0c;直接使用 Github 账号登…

Spring Boot项目打包及依赖管理-瘦身

在Spring Boot项目中&#xff0c;通过Maven插件的配置&#xff0c;我们可以定制项目的打包过程&#xff0c;将依赖项抽取到指定的lib目录中。本文将演示如何使用Spring Boot Maven Plugin进行项目打包&#xff0c;同时抽取依赖项到lib目录&#xff0c;并提供相应的启动命令。 …

Vue3利用父子组件实现字典

子组件 <template><div><el-tag :type"tagType" v-if"tagVisible">{{ tagText }}</el-tag></div> </template><script setup> import { defineProps, onMounted, ref } from vueconst tagVisible ref(false);…

新手要了解的几种网络请求方式

1、HTTP请求&#xff1a;HTTP是一种应用层协议&#xff0c;常用于Web应用中的数据传输。通过发送HTTP请求&#xff0c;可以使用GET、POST、PUT、DELETE等方法与服务器进行交互。 2、HTTPS请求&#xff1a;HTTPS是在HTTP基础上添加了SSL/TLS加密层的安全传输协议。通过HTTPS发送…

linux docker部署深度学习环境(docker还是conda)

在深度学习中&#xff0c;避免不了在远程服务器上进行模型的训练&#xff0c;如果直接在服务器裸机的基础环境跑显然是不可取的&#xff0c;此时搭建用于模型训练的docker环境显得尤为重要。 在深度学习中&#xff0c;避免不了在远程服务器上进行模型的训练&#xff0c;如果直…

Rabbitmq入门与应用(六)-rabbitmq的消息确认机制

rabbitmq的消息确认机制 确认消息是否发送给交换机 配置 server:port: 11111 spring:rabbitmq:port: 5672host: 192.168.201.81username: adminpassword: 123publisher-confirm-type: correlated编码RabbitTemplate.ConfirmCallback ConfirmCallback 是一个回调接口&#xf…

Python学习笔记——自定义函数(基础知识)

自定义函数非常简洁有效地实现了代码的复用&#xff0c;让程序编写、阅读、测试和修改变得更加容易。 下面记录Python自定义函数的使用。 1、定义函数&#xff1a; def describe_pet(pet_name,animal_typedog):显示宠物的信息print(f"\nI have a {animal_type}.")…

仿12306校招项目-前后端运行

目录 1.git 克隆 2.设置JDK版本 3.sql脚本导入数据 4.启动中间件 5.运行后端 6.运行前端 1.git 克隆 打开 IntelliJ IDEA&#xff0c;菜单栏顶部找到 Git -> Clone 选项。找到 Clone 这个按钮输入 gitgitee.com:nageoffer/12306.git或者https://gitee.com/nageoffer/…

C# CAD交互界面-模态窗体与非模态窗体调用方式

运行环境Visual Studio 2022 c# cad2016 一、模态窗体调用方式&#xff1a; 当一个模态窗体打开时&#xff0c;它会阻塞主窗体的所有输入&#xff0c;直到关闭该模态窗体为止。例如&#xff0c;弹出一个对话框让用户必须完成某些操作后才能继续使用主程序。 [CommandMethod(&q…

C++正则表达式笔记

最近翻了翻正则表达式的一些资料&#xff0c;做个记录。 1、微软官方 <regex> 函数 | Microsoft Learn 2、正则表达式语法简介 正则表达式语法简介 - 简书 3、正则表达式基础语法大全 正则表达式基础语法大全_正则表达式语法大全-CSDN博客 4、练习 &#xff08;1…

HarmonyOS - 实现多设备协同开发实战教程~

前言 现在随着个人设备越来越多&#xff0c;越来越需要多个设备之间相互感知和连接&#xff0c;设备和设备之间可以相互联动&#xff0c;形成互联互通的场景&#xff0c;而搭载HarmonyOS的设备恰好可以满足这一点 。下面通过开发一个HarmonyOS的多端分布式表白应用来实现设备之…

python coding with ChatGPT 打卡第21天| 二叉树:最近公共祖先

相关推荐 python coding with ChatGPT 打卡第12天| 二叉树&#xff1a;理论基础 python coding with ChatGPT 打卡第13天| 二叉树的深度优先遍历 python coding with ChatGPT 打卡第14天| 二叉树的广度优先遍历 python coding with ChatGPT 打卡第15天| 二叉树&#xff1a;翻转…

hope实验室预备役第4次测试题解

目录 1.Foreign Exchange 2.Takahashi Gets Lost 3.Sasha and the Beautiful Array 4.Sasha and the Drawing 5.Sasha and the Casino 6.Only one of two 7.村村通 8.传送门 1.Foreign Exchange 原题链接 Sample 1 InputcopyOutputcopy 4 5 7 0 3 2 2 4 3 5 25 Sample…

如何解决AI场景下的冯诺伊曼陷阱?

既然聊到冯诺伊曼陷阱在AI场景中的解决方案&#xff0c;那咱们就来个脑洞大开的比喻。假设我们正在构建一个超级智能的大脑&#xff08;AI系统&#xff09;&#xff0c;它需要处理海量的学习资料和数据——就像一位知识狂魔每天要消化成吨的信息。 传统的冯诺伊曼架构下&#x…

【AI绘画】Stable Diffusion简介_stable diffusion变现

手把手教你入门绘图超强的AI绘画&#xff0c;用户只需要输入一段图片的文字描述&#xff0c;即可生成精美的绘画。给大家带来了全新保姆级教程资料包 &#xff08;文末可获取&#xff09; Stable Diffusion是2022年发布的深度学习文本到图像生成模型&#xff0c;它主要用于根据…

ncnn之三(补充):window环境下vs2022安装ncnn+protobuf

启动VS2022 下面的 x64 Native Tools Command Prompt for VS2022 protobuf git clone gitgithub.com:protocolbuffers/protobuf.git# 或者 下载 https://github.com/google/protobuf/archive/v3.11.2.zip cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPERelease -D…

HTML的特殊字符

HTML的特殊字符 有些特殊的字符在 html 文件中是不能直接表示的&#xff0c;例如: 空格&#xff0c;小于号(<)&#xff0c;大于号(>)&#xff0c;按位与(&)。 空格 示例代码&#xff1a; 运行结果&#xff1a; 由于html 标签就是用 < > 表示的&#xff0…