蒙特卡洛法与BS模型法分别实现欧式期权定价
并且可以通过逐渐增大蒙特卡洛法的路径数量以及每一条模拟路径的步数(缩小步长)来验证蒙特卡洛方法最终结果会收敛于BS模型计算结果。

# -*- coding: utf-8 -*-
"""
Created on Tue Sep 13 16:57:43 2022@author: liangshanliao
"""import math
import numpy as np
from scipy.stats import norm
from numpy.random import standard_normal
import matplotlib.pyplot as plt
#from tqdm import tqdm
# 解决中文显示问题,在开头加入下面一句
plt.rcParams['font.sans-serif'] = ['STLiti']  # 用来正常显示中文标签,字体名称为win中中文字体对应的英文名
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号def MonteCarlo(S0,r,T,K,sigma,M,I):'''S0 : 标的资产初始价格K : 期权执行价格r : 无风险利率sigma : 预期波动率T:到期期限/剩余期限M :模拟步数I:模拟路径条数'''dt=T/MS=np.zeros((M+1,I))S[0]=S0for t in range(1,M+1):S[t]=S[t-1]*np.exp((r-0.5*sigma**2)*dt+sigma*np.sqrt(dt)*standard_normal(I))outcome=sum(np.maximum(0,S[-1]-K))*(np.exp(-r*T))/Ireturn outcome,SS_m,S=MonteCarlo(50,0.1,0.5,52,0.4,100,1000)
plt.figure(figsize=(10,8))
plt.hist(S[-1],bins=50)
plt.xlabel(u'到期日时几何布朗运动模拟的股票价格')
plt.ylabel(u'频率')plt.figure(figsize=(10,8))
plt.plot(S[:100],lw=1.5)
plt.xlabel(u'时间')
plt.ylabel(u'股票价格')
plt.title(u'几何布朗运动下的股票价格路径')def BS(St,K,sigma,T,r,t):'''BS模型计算期权的价格St:标的资产的价格;K:期权的执行价格;sigma:基础资产价格百分比变化的年化波动率;r:无风险收益率;T:期权合约最长期限t:现时期限;'''# 计算一些常量d1=(np.log((St)/K)+(r+0.5*sigma**2)*(T-t))/(sigma*np.sqrt(T-t))d2=d1-sigma*np.sqrt(T-t)# if option=='call':#     value=St*norm.cdf(d1)-K*np.exp(-r*(T-t)*norm.cdf(d2))# elif option=='put':#     value=K*np.exp(-r*(T-t))*norm.cdf(-d2)-(St)*norm.cdf(-d1)value=St*norm.cdf(d1)-K*np.exp(-r*(T-t))*norm.cdf(d2)return valueS_bs=BS(50,52,0.4,0.5,0.1,0)
print("蒙特卡洛法计算结果是:",S_m)
print("BS模型计算结果是:",S_bs)

蒙特卡洛法与BS模型法分别实现欧式期权定价相关推荐

  1. 利用BS模型计算欧式看涨期权价格——基于中国沪深300ETF看涨期权_20200524_

    利用BS模型计算欧式看涨期权价格--基于中国沪深300ETF看涨期权验证,结果发现当期权虚值程度较深时,理论价格与现实价格差异极大.比如,在近年来沪深300很少能到4600点以上,因此理论价格几乎为零 ...

  2. 如何用MATLAB写欧氏看涨看跌期权(B-S模型)的代码

    如何用MATLAB写欧氏看涨看跌期权(B-S模型)的代码 欧式期权 (European Options) 即是指买入期权的一方必须在期权到期日当天才能行使的期权. 具体的数学模型为: 无收益欧式看涨期 ...

  3. 模型法在评级中的应用

    金融机构对于会员管理.渠道.客户管理,基本都会涉及到一个评级的内容,通过评级我们可以知晓这些群体的特点,拟定具体画像,以及给不同的人群分类等等.常规上可以通过评分卡跑一个评分等级来评级,但并不是每个场 ...

  4. 白话解析BS模型(一)

        要想不用一个数学模型只用大白话说明白Black-Scholes这个伟大的期权类衍生品定价模型,似乎与用地球语言解释火星文化一样的困难.所以我的所谓白话也不可能是真的大白话了,总要摆出几个简单的 ...

  5. linux运维-BS模型|前端|后端|数据库都是干嘛的?

    BS模型 最近陷入疯狂的画图中,模拟一个信息管理系统开发的流程,来了解运维和数据库模块的工作内容(没有项目可以做,就自己创造项目啊) 基于目前都是BS模型的web开发,即用浏览器登录系统,而不是下载客 ...

  6. 白话解析BS模型(三)

        在二叉树模型中我们考虑了买入delta份股票卖出一份看涨期权的无风险组合.提到了将分叉步数变大后,每一步的Delta值都是不同的,其任何一个微小时期内的Delta等于Δf/ΔS,而无风险收益就 ...

  7. 【TransCad】采用重力模型法实现交通分布预测

    目录 前言 回顾 准备工作 小区质心层的导入 制作小区连杆 建立质心选择集和路网文件 重力模型法进行交通分布预测 建立阻抗矩阵 修改索引 题外话 重力模型运用 写在最后 前言 明天就要上机练习重力模型 ...

  8. matlab用arch模型算隐含波动率,期权定价中的隐含波动率是用来衡量【基于MATLAB的欧式期权定价与隐含波动率应用】...

    [摘 要]期权价格依赖于标的产品的价格.执行价格.无风险利率.从目前到期权到期的时间.基础资产的波动率等变量.欧式期权定价和银行波动率的应用是金融工程领域研究的重要内容.本文利用MATLAB工具箱实现 ...

  9. alin的学习之路(Linux网络编程:十)(http协议,BS模型)

    alin的学习之路(Linux网络编程:十)(http协议,BS模型) 需求:使用B/S模型来访问主机中的文件(包括目录) 0. B/S 模型 注意事项 1. 浏览器请求ico ​ 准备一个favic ...

  10. matlab/simulink 风储调频,风电调频,一次调频,四机两区系统,采用频域模型法使得风电渗透率25%,附加虚拟惯性控制

    matlab/simulink 风储调频,风电调频,一次调频,四机两区系统,采用频域模型法使得风电渗透率25%,附加虚拟惯性控制,储能附加下垂控制,参与系统一次调频,系统频率特性优. 有SOC特性! ...

最新文章

  1. 977dh用vbs通过wsh创建桌面快捷方式,快速启动,修改ie主页的恶意代码 ...
  2. webpack学习笔记
  3. 9999元雷军新宠亮相!机器狗铁蛋,能走能遛能空翻,小米机器人实验室第一款产品...
  4. 【学习笔记】Sass入门指南
  5. MySQL数据库查询时间段的两种方法
  6. Java线程池深入理解
  7. C++ this指针初步使用,与链式编程
  8. jsp form提交到后台中文乱码_JSP与servlet之间的数据传递
  9. Sightseeing Cows(POJ-3621)
  10. 【动态规划】天上掉馅饼
  11. matlab双峰模型,为什么用MATLAB画的高斯双峰曲线不能永双高斯函数拟合?
  12. 基于Java Web的学生选课管理系统设计与实现
  13. 15个简单的JS编码标准让你的代码更整洁
  14. Drools教程(基础篇)—— Eclipse插件安装
  15. 某航研究生教务系统开题报告或中期检查表报表无法显示无法导出问题
  16. PTB-XL心电信号处理
  17. S3C2440C语言点灯
  18. 基于layui的省市镇三级联动js
  19. yolov5的混淆矩阵
  20. (九)青龙Tools 正式版/前端网页提交+后台管理/适用于所有场景/开饭开饭开饭 【2022年6月15日】【更新】

热门文章

  1. eclipse中SVN分支合并到主干
  2. Hadoop配置和启动
  3. Hadoop集群的搭建(结束)——修改hadoop配置文件以及启动集群服务
  4. 下载《阿里巴巴Java开发手册(详尽版)1.4.0》 与 码出高效,码出质量
  5. 兄弟j220怎么清零_BROTHER 兄弟一体机 复位清除计数器
  6. 高斯克吕格投影中有关带号与经度的关系
  7. 突发!ARM中国区执行董事长兼CEO被免职
  8. Linux的Vi命令详解
  9. linux如何搭建sftp服务器
  10. Web自动化测试:超详细的环境搭建步骤