傅里叶系列 P1 的定价选项

  • 如果您想了解更多信息,请查看第 2 部分和第 3 部分。

一、说明

        这是第一篇文章,我将帮助您获得如何使用这个新的强大工具来解决金融中的半分析问题并取代您的蒙特卡洛方法的直觉。

        我们都知道并喜欢蒙特卡洛数字积分方法,但是如果我告诉你你可以用虚数和傅里叶级数来代替蒙特卡洛呢?
        主要好处是速度,这在期权定价中非常重要。这非常重要,因为用于定价股票期权的赫斯顿模型需要数字积分,蒙特卡罗大约需要 100 毫秒,傅里叶级数需要几毫秒。

二、第 1 部分:但是什么是傅里叶级数?

        对于任何函数 f 和区间 a,b,我们可以将 f(x) 近似为余弦和正弦的无限和,L = b-a

三、第 2 部分:将数学公式应用于 Python


def get_fourier_approx(f, x:np.array, a:float, b:float, N:int):fa = lambda x, n : f(x) * cos((2*pi*n*x)/(b - a))fb = lambda x, n : f(x) * sin((2*pi*n*x)/(b - a))A0 = 1/(b - a) * quad(f, a, b, limit=200)[0]Cosine_Sine_Sum = np.zeros_like(x)for n in range(1, N+1):A = 2/(b - a) * quad(fa, a, b, args=(n), limit=200)[0]B = 2/(b - a) * quad(fb, a, b, args=(n), limit=200)[0]Cosine_Sine_Sum += A*cos((2*pi*n*x)/(b - a)) + B*sin((2*pi*n*x)/(b - a))fx = A0 + Cosine_Sine_Sumreturn fx
a = -6
b = 6
x = np.linspace(a, b, 1_000)
y = f(x)fig, (ax1, ax2) = plt.subplots(2, figsize=(20,12))
blue_shades = ['#0000FF', '#3399FF', '#66B2FF', '#99CCFF', '#CCE5FF']avg_residuals = []
Ns = [8, 16, 32, 64, 128]
for i, N in enumerate(Ns):fx = get_fourier_approx(f=f, x=x, a=a, b=b, N=N)ax1.plot(x,fx, blue_shades[i], label=f'N = {N}')ax2.plot(x,y-fx, blue_shades[i], label=f'N = {N}')avg_residuals.append(np.abs(y-fx).mean())ax1.set_title('Fourier Transform of f(x)')
ax1.plot(x,y,'tab:red', linestyle='--')
ax2.set_title('Residuals')
plt.tight_layout() ; ax1.legend();ax2.legend() ; plt.show()pd.Series(avg_residuals, index=Ns, name='Avg Residual')

3.1 方形功能:

来源:笔记本

N      Avg. Residual
--------------------
8      1.311711
16     0.784683
32     0.440387
64     0.268449
128    0.154604

3.2 线路功能:

来源:笔记本

N      Avg. Residual
--------------------
8      0.447389
16     0.264635
32     0.153540
64     0.088745
128    0.052147

3.3 正态分布

  • 在 [0, 12] 中缩放 y,其中:
    - 平均值 = 100- 标准 = 0.1 *sqrt(5)*100- a = 100 -12 * 标准
    - b = 100

    +12 * 标准

来源:笔记本

N      Avg. Residual
--------------------
8      1.092374e-01
16     8.326020e-05
32     6.878539e-14
64     5.721031e-14
128    5.170898e-14

3.3 议论

  1. 所有分布都按比例缩放,使 y 范围从 [0,12] 开始,因此我们可以比较残差的大小。
  2. 从绘图和残差可以看出,函数的曲线越大,傅里叶级数收敛到正确值的速度就越快。我们将此属性用作正态,并且对数正态不需要很多项来计算,在我们的近似中具有足够的准确性。
  3. 数据开头和结尾的误差明显更高。因此,最好包含比预期使用的限制更高的限制。例如,当您需要 ±4 时计算 ±3std。这使得深度价外期权更难计算。

四、第3部分  S(T)的对数正态分布

        S_T遵循 Q 下的简单 GBM,我们可以使用以下等式推导出S_T的概率密度:

        现在我们可以使用以下函数在 Python 中定义 f(S_T),并将下限定义为 ( 0, S_0*exp(r*T) + 12 * sigma*sqrt(T)*S_0 )

S0      = 100
r       = 0.05
sigma   = 0.1
T       = 5.0Z = lambda St : np.where(St > 0, ((log(St/S0) - (r - .5*sigma)*T)/(sqrt(T)*sigma)), -np.inf)
f = lambda x : norm.pdf(Z(x))a   = S0*exp(r*T) - 12 * sigma*sqrt(T)*S0
b   = S0*exp(r*T) + 12 * sigma*sqrt(T)*S0

Source: Notebook

N       Avg. (scaled) Residual      Avg. Residual       Execution Time (sec)
----------------------------------------------------------------------------
8       0.176429                    5.880975e-03        0.112720
16      0.004235                    1.411566e-04        0.246473
32      0.000030                    9.855127e-07        0.624209
64      0.000027                    8.918504e-07        1.936948
128     0.000026                    8.530034e-07        6.741019

4.1 言论:

  1. 我包括了缩放和非缩放残差。缩放残差对应于(不正确的)缩放概率,使得 max{y}=12,其中(正确的)非缩放,max{y}=0.4。这样做是为了将对数正态分布的拟合与上面绘制的其他函数进行比较。
  2. 我们可以推断出,由于形状不对称,对数正态分布比正态分布更难拟合。
  3. 我们可以看到,在非缩放版本中有 64 项,计算 P(S_T=x) 的预期误差非常小,小于 0.0001%。
  4. 分布集中在 T 处的期望值周围非常重要,12stds 左右对称。 我做了一个版本,其中a和b不对称,残差不均匀分布。直觉上,你会采取 a=0+,但它不会产生理想的结果。*S_T残差是针对 S_T>0 的值计算的,因为这是不可能的,我们不关心小于 0 的值。

a=1e-8 的S_T密度,在残差处表现出不良性质。来源:笔记本

4.2 限制 — 缺点 — 改进:

  1. 将前面提到的任何函数近似为傅里叶级数并使用数值积分作为计算 An 和 Bn 的手段没有任何好处。
  2. 分析计算 An 和 Bn 系数非常重要,因此唯一的数值部分是计算序列。
  3. 好处在别处。当f(x)没有显式形式并且需要数值积分时,我们可以用特征函数和傅里叶级数半解析地解决问题。
  4. 如果我们在 Python 中使用 scipy.norm 为带有标准 BS 的选项定价,大约需要 0.06 毫秒。
    但是,如果我们解析求解积分 A0、An、Bn 并使用复数版本,我们会得到大约 0.6 毫秒,这是可比的。我们将在第 3 部分中在 Heston 模型中使用它,该模型是此类期权定价的行业标准。

下一篇:第 2 部分

媒介:链接

在下一篇文章中,我们将了解如何将这些知识与特征函数(虚数的使用)结合使用,以使用标准布莱克-斯科尔斯模型计算欧洲看涨期权的值

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

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

相关文章

VS code本地安装PlantUML

VS code本地安装PlantUML 需要条件vs code安装插件使用常见错误 需要条件 在VS Code上安装PlantUML扩展之前,请确保您具有以下先决条件: : Java与GraphViz(点击可直接跳转下载界面); 安装省略 vs code安装插件 vs code安装以下两个插件(PlantUML,Grap…

nodejs+vue流浪猫狗救助领养elementui

第三章 系统分析 10 3.1需求分析 10 3.2可行性分析 10 3.2.1技术可行性:技术背景 10 3.2.2经济可行性 11 3.2.3操作可行性: 11 3.3性能分析 11 3.4系统操作流程 12 3.4.1管理员登录流程 12 3.4.2信息添加流程 12 3.4.3信息删除流程 13 第四章 系统设计与…

火热报名中 | 2天峰会、20+热门议题,AutoESG 2023数智低碳---中国汽车碳管理创新峰会亮点抢先看!

在碳中和的背景下,减碳之风吹遍全球,而汽车行业则由于产业链长、辐射面广、碳排放总量增长快、单车碳强度高的特点,成为各国碳排放管理的监管重点,聚焦汽车业的碳博弈也逐步升级。 2020年,国务院办公厅印发的《新能源…

Multiple CORS header ‘Access-Control-Allow-Origin‘ not allowed

今天在修改天天生鲜超市项目的时候,因为使用了前后端分离模式,前端通过网关统一转发请求到后端服务,但是第一次使用就遇到了问题,比如跨域问题: 但是,其实网关里是有配置跨域的,只是忘了把前端项…

下载盗版网站视频并将.ts视频文件合并

. 1.分析视频请求123 2.数据获取和拼接 1.分析视频请求 1 通过抓包观察我们发现视频是由.ts文件拼接成的每一个.ts文件代表一小段2 通过观察0.ts和1.ts的url我们发现他们只有最后一段不同我们网上找到url获取的包3 我们发现index.m3u8中储存着所有的.ts文件名在拼接上前面固定…

嵌入式Linux应用开发-基础知识-第十九章驱动程序基石④

嵌入式Linux应用开发-基础知识-第十九章驱动程序基石④ 第十九章 驱动程序基石④19.7 工作队列19.7.1 内核函数19.7.1.1 定义 work19.7.1.2 使用 work:schedule_work19.7.1.3 其他函数 19.7.2 编程、上机19.7.3 内部机制19.7.3.1 Linux 2.x的工作队列创建过程19.7.3…

Monkey测试

一:测试环境搭建 1:下载android-sdk_r24.4.1-windows 2:下载Java 3:配置环境变量:关于怎么配置环境变量(百度一下:monkey环境搭建,) 二:monkey测试&#xff1…

再次总结nios II 下载程序到板子上时出现 Downloading RLF Process failed的问题

之前也写过两篇关于NIOS II 出现:Downloading RLF Process failed的问题,但是总结都不是很全面,小梅哥的教程总结的比较全面特此记录。 问题:nios II 下载程序到板子上时出现 Downloading RLF Process failed的问题。 即当nios中…

基于electron25+vite4创建多窗口|vue3+electron25新开模态窗体

在写这篇文章的时候,查看了下electron最新稳定版本由几天前24.4.0升级到了25了,不得不说electron团队迭代速度之快! 前几天有分享一篇electron24整合vite4全家桶技术构建桌面端vue3应用示例程序。 https://www.cnblogs.com/xiaoyan2017/p/17…

7.JavaScript-vue

1 JavaScript html完成了架子,css做了美化,但是网页是死的,我们需要给他注入灵魂,所以接下来我们需要学习JavaScript,这门语言会让我们的页面能够和用户进行交互。 1.1 介绍 通过代码/js效果演示提供资料进行效果演…

2023 彩虹全新 SUP 模板,卡卡云模板修复版

2023 彩虹全新 SUP 模板,卡卡云模板,首页美化,登陆页美化,修复了 PC 端购物车页面显示不正常的问题。 使用教程 将这俩个数据库文件导入数据库; 其他的直接导入网站根目录覆盖就好; 若首页显示不正常&a…

游戏逆向中的 NoClip 手段和安全应对方式

文章目录 墙壁边界寻找碰撞 NoClip 是一种典型的黑客行为,允许你穿过墙壁,所以 NoClip 又可以认为是避免碰撞体积的行为 墙壁边界 游戏中设置了碰撞体作为墙壁边界,是 玩家对象 和墙壁发生了碰撞,而不是 相机 玩家对象有他的 X…

操作系统初探 - 进程的概念

目录 预备知识 冯诺依曼和现代计算机结构 操作系统的理解 进程和PCB的概念 PCB中的信息 查看进程信息的指令 - ps pid 进程状态 预备知识 在学习操作系统之前我们需要先了解一下如下的预备知识。 冯诺依曼和现代计算机结构 美籍匈牙利科学家冯诺依曼最先提出“程序存…

MARS: An Instance-aware, Modular and Realistic Simulator for Autonomous Driving

● MARS: An Instance-aware, Modular and Realistic Simulator for Autonomous Driving(基于神经辐射场的自动驾驶仿真器) ● https://github.com/OPEN-AIR-SUN/mars ● https://arxiv.org/pdf/2307.15058.pdf ● https://mp.weixin.qq.com/s/6Ion_DZGJ…

paddle2.3-基于联邦学习实现FedAVg算法-CNN

目录 1. 联邦学习介绍 2. 实验流程 3. 数据加载 4. 模型构建 5. 数据采样函数 6. 模型训练 1. 联邦学习介绍 联邦学习是一种分布式机器学习方法,中心节点为server(服务器),各分支节点为本地的client(设备&#…

cad图纸如何防止盗图(一个的制造设计型企业如何保护设计图纸文件)

在现代企业中,设计图纸是公司的重要知识产权,关系到公司的核心竞争力。然而,随着技术的发展,员工获取和传播设计图纸的途径越来越多样化,如何有效地防止员工复制设计图纸成为了企业管理的一大挑战。本文将从技术、管理…

QT常用控件介绍

QT信号与槽机制 connect (A,SIGNLA(aaa()),B, SLOT(bbb())); GUI继承简介 布局管理器 垂直布局水平布局网格布局表单布局 输出控件 Label: 标签Text Browser: 文本浏览器Graphics View : 图形视图框架Calendar Widget: 日历控件LCD Number: 液晶字体数…

VSCode 在部分 Linux 设备上终端和文本编辑器显示文本不正常的解决方法

部分Linux设备上运行VSCode时,发现文本编辑器的缩放不明显,终端字体间距过大等。 这里以Kali Linux为例,其他Linux发行版请选择对应的系统内置的等宽字体 我们依次打开 设置 -> 外观 -> 字体 这里我们可以发现,Kali Linux默…

数据结构与算法----递归

1、迷宫回溯问题 package com.yhb.code.datastructer.recursion¥5;public class MiGong {public static void main(String[] args) {// 先创建一个二维数组,模拟迷宫// 地图int[][] map new int[8][7];// 使用1 表示墙// 上下全部置为1for (int i 0; i…

SpringBoot详解

文章目录 1. Xml 和 JavaConfig1.1 什么是 JavaConfig1.2 JavaConfig 配置容器1.3 ImportResource1.4 PropertyResource 2. 注解SpringBootApplication3.Spring Boot 核心配置文件3.1 yaml格式3.2 .yml 文件3.3 多环境配置3.4 Spring Boot 自定义配置3.4.1 Value 注解 3.5 注解…