期权定价数值方法之蒙特卡洛模拟【python量化】

期权定价数值⽅法之蒙特卡洛模拟【python量化】
期权定价数值⽅法之蒙特卡洛模拟
前⾔
蒙特卡洛模拟最重要的应⽤之⼀是对未定权益,如期权、衍⽣品、混合型⼯具的估值。在风险世界中,未定权益的价值是风险中⽴(鞅)测度下的折现后的预期收益。
⼀、蒙特卡洛模拟思路
蒙特卡洛模拟需要⽤到风险中⽴世界思想。其基本思路为:尽可能的模拟风险中性世界中标的资产价格的多种路径,计算每种路径下的期权回报均值,再贴现就可得期权价格。
①在风险中性世界⾥对S的随机路径进⾏抽样,这就给出了标的资产价格路径的⼀个实现。
②计算这条路径下的期权回报。
③重复计算步骤①、②,得到许多样本结果,即风险中性世界中的期权回报值。
ansoft
④计算这些回报的均值,得到风险中性世界中的预期期权回报值。
⑤⽤⽆风险利率进⾏贴现,得到这个期权的估计价值。
⼆、随机过程
前⽂说到,蒙特卡洛模拟⽅法需要模拟标的资产的价格路径,⽽价格路径的变化是随机的,可以通过数学上的随机过程进⾏模型。因此本部分将介绍集中主流的随机过程。
粗略地讲,随机过程是⼀个随机变量序列。但是随机数的选取⼀般不是独⽴的,⽽是依赖于前⼏次选取的结果。不过,⾦融学中使⽤的随机过程通常表现出马尔科夫特性 ——主要的含义是:明天的过程值只依赖于今天的过程状态,⽽不依赖其他任何“历史”状态,甚⾄不依赖整个路径历史。这种过程也被称做“⽆记忆过程 ”
1.⼏何布朗运动
根据Black-Scholes模型,在风险中性世界中,标的资产价格变量遵循⼏何布朗运动,⼏何布朗运动的数学公式为:
式中的Zt 是标准布朗运动,SDE被称作⼏何布朗运动。St 的值呈对数正态分布。
⼏何布朗运动的代码实现如下所⽰:
# 随机过程
# ⼏何布朗运动
S0=100
r=0.05
sigma=0.25
T=2
I=10000
M=50
dt=T/M
液基细胞学
s((M+1,I))
S[0]=S0
中国教育学刊for t in range(1,M+1):
S[t]=S[t-1]*np.exp((r-0.5*sigma**2)*dt+sigma*np.sqrt(dt)*npr.standard_normal(I)) plt.figure(figsize=(10,8))
plt.hist(S[-1],bins=50)
plt.xlabel('到期⽇时⼏何布朗运动模拟的股票价格')
plt.ylabel('频率')
plt.figure(figsize=(10,8))
plt.plot(S[:100],lw=1.5)
plt.xlabel('时间')
plt.ylabel('股票价格')
plt.title('⼏何布朗运动下的股票价格路径')
这⾥假设标的资产的初始价格为100,利率r为0.05,波动率为0.25。从图中可以看出,⼏何布朗运动模拟标的资产价格路径呈现对数正态分布,且价格路径的分析多集中在初始价格100左右,这说明模拟结果出现极端数值的概率⽐较⼩。
2.Heston随机波动率
在Black-Scholes模型中,最重要的简化假设之⼀便是波动率恒定不变。⽽在市场中,波动率不是恒定不变的,⽽是随着时间的变化⽽变化,是具有随机性的。因此随机波动率过程的提出对之前的⼏何布朗运动进⾏了改进。
Heston模型的代码实现如下所⽰:
# heston随机波动率
tpos
S0=100
r=0.05
v0=0.1
kappa=3
theta=0.25
sigma=0.1
rho=0.6
T=1
corr_s((2,2))
corr_mat[0,:]=[1,rho]
corr_mat[1,:]=[rho,1]
cho_mat=np.linalg.cholesky(corr_mat)
cho_mat
M=50
I=10000
dt=T/M
ran_num=npr.standard_normal((2,M+1,I))
s_like(ran_num[0])
s_like(v)
v[0]=v0
vh[0]=v0
for t in range(1,M+1):
ran=np.dot(cho_mat,ran_num[:,t,:])
vh[t]=(vh[t-1]+kappa*(theta-np.maximum(vh[t-1],0))*dt+sigma*np.sqrt(np.maximum(vh[t-1],0))*np.sqrt(dt)*ran[1])
v=np.maximum(vh,0)
s_like(ran_num[0])
S[0]=S0
for t in range(1,M+1):
ran=np.dot(cho_mat,ran_num[:,t,:])
S[t]=S[t-1]*np.exp((r-0.5*v[t])*dt+np.sqrt(v[t])*ran[0]*np.sqrt(dt))
fig,(ax1,ax2)=plt.subplots(1,2,figsize=(10,6))
ax1.hist(S[-1],bins=50)
ax1.set_xlabel('股票价格')
ax2.hist(v[-1],bins=50)
ax2.set_xlabel('波动率')
fig,(ax1,ax2)=plt.subplots(2,1,sharex=True,
figsize=(10,6))
ax1.plot(S[:,:100],lw=1.5)
ax1.set_ylabel('股票价格')动力学模型
ax2.plot(v[:,:100],lw=1.5)
ax2.set_ylabel('波动率')
zingtv从图中可以看出,Heston随机波动率模型对价格路径的模型情况相⽐于⼏何布朗运动⽽⾔,呈现出明显的波动性特征,且波动率过程的平均飘移值收敛于0.25(θ数值)。

本文发布于:2024-09-22 14:31:47,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/119544.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:路径   价格   过程
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议