Python和MATLAB及C++资产价格看涨看跌对冲模型和微积分

2024-05-07 18:44

本文主要是介绍Python和MATLAB及C++资产价格看涨看跌对冲模型和微积分,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

🎯要点

  1. 🎯资产价格动态数学随机模型:🖊价格几何布朗运动过程积分 | 🖊布朗运动和几何布朗运动随时间概率密度 | 🖊几何布朗运动离散过程 | 🖊电动车历史股票价值及预期。
  2. 🎯金融衍生品估值偏微分方程:🖊期权合约 | 🖊计算看涨期权期权面,显示对冲参数及预期价格 | 🖊计算看跌期权的期权面 | 🖊对冲看涨期权投资组合 | 🖊再平衡频率对投资组合方差的影响。
  3. 🎯期权价格与隐含概率密度函数关系模型:🖊看涨期权隐含波动率 | 🖊看涨期权敏感度值曲面 | 🖊隐含波动率曲面 | 🖊看涨期权价值函数偏微分变化趋势 | 🖊看涨期权价格执行价格对比 | 🖊哈根隐含波动率参数化下的不同隐含波动率形状 | 🖊外汇市场报价数据插值 | 🖊局部波动模型模拟。
  4. 🎯价格泊松过程中偏积分微分方程:🖊价格跳跃扩散的蒙特卡罗路径和补偿泊松过程 | 🖊默顿模型,跳跃扩散过程 | 🖊跳跃扩散过程概率密度三维分布和二维动态 | 🖊默顿跳跃扩散模型对隐含波动率影响 | 🖊对冲看涨期权价格波动 | 🖊不同对冲频率对损益方差的影响。
  5. 🎯傅立叶余弦级数和风险中性估值期权定价方法 | 🎯多维期权定价和风险中性措施
  6. 🎯C++和Python计算金融数学方程算法模型

🍇Python风险中性资产定价

β = 1 / ( 1 + ρ ) \beta=1 /(1+\rho) β=1/(1+ρ) 为跨期贴现因子,其中 ρ \rho ρ 是主体对未来贴现的利率。为一单位除息资产定价的基本风险中性资产定价方程为
p t = β E t [ d t + 1 + p t + 1 ] p_t=\beta E _t\left[d_{t+1}+p_{t+1}\right] pt=βEt[dt+1+pt+1]
这里 E t [ y ] E _t[y] Et[y] 表示 y y y 的最佳预测,以时间 t t t 可用的信息为条件。

最简单的情况是恒定、非随机股息流的风险中性价格 d t = d > 0 d_t=d>0 dt=d>0。从上式中删除期望并向前迭代得出,
p t = β ( d + p t + 1 ) = β ( d + β ( d + p t + 2 ) ) ⋮ = β ( d + β d + β 2 d + ⋯ + β k − 2 d + β k − 1 p t + k ) \begin{aligned} p_t & =\beta\left(d+p_{t+1}\right) \\ & =\beta\left(d+\beta\left(d+p_{t+2}\right)\right) \\ & \vdots \\ & =\beta\left(d+\beta d+\beta^2 d+\cdots+\beta^{k-2} d+\beta^{k-1} p_{t+k}\right) \end{aligned} pt=β(d+pt+1)=β(d+β(d+pt+2))=β(d+βd+β2d++βk2d+βk1pt+k)
如果 lim ⁡ k → + ∞ β k − 1 p t + k = 0 \lim _{k \rightarrow+\infty} \beta^{k-1} p_{t+k}=0 limk+βk1pt+k=0,该序列收敛为
p ˉ : = β d 1 − β \bar{p}:=\frac{\beta d}{1-\beta} pˉ:=1ββd
这是股息不变情况下的均衡价格。

考虑一个增长的非随机股息过程 d t + 1 = g d t d_{t+1}=g d_t dt+1=gdt,其中 0 < g β < 1 0<g \beta<1 0<gβ<1。虽然当股息随着时间的推移而增长时,价格通常不会保持不变,但价格股息率却可以。

如果我们猜到这一点,将 v t = v v_t=v vt=v 代入下式以及我们的其他假设,我们得到 v = β g ( 1 + v ) v=\beta g(1+v) v=βg(1+v)​。
v t = E t [ m t + 1 d t + 1 d t ( 1 + v t + 1 ) ] v_t= E _t\left[m_{t+1} \frac{d_{t+1}}{d_t}\left(1+v_{t+1}\right)\right] vt=Et[mt+1dtdt+1(1+vt+1)]
由于 β g < 1 \beta g<1 βg<1,我们有唯一的正解:
v = β g 1 − β g v=\frac{\beta g}{1-\beta g} v=1βgβg
价格为:
p t = β g 1 − β g d t p_t=\frac{\beta g}{1-\beta g} d_t pt=1βgβgdt
在这个例子中,如果我们采用 g = 1 + κ g=1+\kappa g=1+κ 并让 ρ : = 1 / β − 1 \rho:=1 / \beta-1 ρ:=1/β1,那么价格就变成
p t = 1 + κ ρ − κ d t p_t=\frac{1+\kappa}{\rho-\kappa} d_t pt=ρκ1+κdt
这就是所谓的戈登公式。

代码实现一个著名的定价模型:

class PricingModel:def __init__(self, β=0.96, mc=None, γ=2.0, g=np.exp):self.β, self.γ = β, γself.g = g# A default process for the Markov chainif mc is None:self.ρ = 0.9self.σ = 0.02self.mc = qe.tauchen(n, self.ρ, self.σ)else:self.mc = mcself.n = self.mc.P.shape[0]def test_stability(self, Q):sr = np.max(np.abs(eigvals(Q)))if not sr < 1 / self.β:msg = f"Spectral radius condition failed with radius = {sr}"raise ValueError(msg)def tree_price(ap):# Simplify names, set up matricesβ, γ, P, y = ap.β, ap.γ, ap.mc.P, ap.mc.state_valuesJ = P * ap.g(y)**(1 - γ)# Make sure that a unique solution existsap.test_stability(J)# Compute vI = np.identity(ap.n)Ones = np.ones(ap.n)v = solve(I - β * J, β * J @ Ones)return v

这是 v v v 作为 γ \gamma γ 几个值的状态函数的图,具有正相关的马尔可夫过程和 g ( x ) = exp ⁡ ( x ) g(x)=\exp (x) g(x)=exp(x)

γs = [1.2, 1.4, 1.6, 1.8, 2.0]
ap = AssetPriceModel()
states = ap.mc.state_valuesfig, ax = plt.subplots()for γ in γs:ap.γ = γv = tree_price(ap)ax.plot(states, v, lw=2, alpha=0.6, label=rf"$\gamma = {γ}$")ax.set_title('Price-dividend ratio as a function of the state')
ax.set_ylabel("price-dividend ratio")
ax.set_xlabel("state")
ax.legend(loc='upper right')
plt.show()

参阅一:计算思维

参阅二:亚图跨际

这篇关于Python和MATLAB及C++资产价格看涨看跌对冲模型和微积分的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/968083

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

C++包装器

包装器 在 C++ 中,“包装器”通常指的是一种设计模式或编程技巧,用于封装其他代码或对象,使其更易于使用、管理或扩展。包装器的概念在编程中非常普遍,可以用于函数、类、库等多个方面。下面是几个常见的 “包装器” 类型: 1. 函数包装器 函数包装器用于封装一个或多个函数,使其接口更统一或更便于调用。例如,std::function 是一个通用的函数包装器,它可以存储任意可调用对象(函数、函数

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

06 C++Lambda表达式

lambda表达式的定义 没有显式模版形参的lambda表达式 [捕获] 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 有显式模版形参的lambda表达式 [捕获] <模版形参> 模版约束 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 含义 捕获:包含零个或者多个捕获符的逗号分隔列表 模板形参:用于泛型lambda提供个模板形参的名

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了