蒙特卡洛模拟估计欧式看涨期权的价值

蒙特卡洛模拟是金融学和数值计算科学中最重要的算法之一,它在期权的定价和风险的管理上有很重要的作用,蒙特卡洛方法很容易处理高维度问题,在这种问题上复杂度和计算需求通常以线性方式增长.蒙特卡洛方法的缺点是:本身的高计算需求

主要参考Black-Scholes-Merton(BSM)模型,在模型中到期的指数水平是一个随机变量,通过到期指数公式计算:
              ST=S0exp((r−12σ2)T+σT‾‾√z)S_T = S_0 exp((r - \frac{1}{2}\sigma^2) T + \sigma\sqrt{T}z)

其中z是一个服从标准正态分布的随机变量.
蒙特卡洛算法的描述:
1.生成 I 个服从标准正态分布的随机数,ziz_i, i={1,2,3,,,I}, I为随机模拟的次数
2.通过上面的到期指数计算公式,计算出所有模拟结果的到期指数ST(i)S_T(i)
3.计算到期期权的每一个模拟可能的内在价值hT(i)h_T(i)
          
              hT(i)=max(ST(i)−K,0)h_T(i) = max(S_T(i) - K, 0)

4.通过蒙特卡洛估算公式计算出期权现值

             C0≈e−rT1T∑IihT(i)C_0 \approx e^{-rT} \frac{1}{T} \sum_i^{I}h_T(i)

import numpy as np
import matplotlib.pyplot as plt
# 对计算要用到的一些数据进行初始化
S_0 = 100.0       # 股票的初始的指数水平
K = 105.0         # 看涨的行权价格
T = 1.0           # 到期的年限
r = 0.05          # 固定无风险利率
sigma = 0.2       # 固定波动率(收益的标准差)
I = 1000      # 随机数的个数,模拟计算到期指数的次数
z = np.random.standard_normal(I)
# 股票到期指数水平
S_T = S_0 * np.exp((r - 0.5 * sigma ** 2)* T + sigma * np.sqrt(T) * z)
# 期权的内在价值
h_T = np.maximum(S_T - K, 0)
# 期权现值
C = np.exp(-r * T)* np.sum(h_T)/I

期权现值

# 期权现值
print 'value of the European call option %.6f'%C
value of the European call option 7.988801
def draw_pic(position,y,label,plt):plt.subplot(position)plt.plot(y, label=label)plt.grid(True)plt.legend(loc=0)plt.ylabel(label)

到期指数水平
到期期权内在价值

%matplotlib inline
plt.figure(figsize=(12,7))
draw_pic(211, S_T, 'S_T', plt)
draw_pic(212, h_T, 'h_T', plt)

蒙特卡洛估值计算(欧式期权)相关推荐

  1. 欧式期权matlab编码蒙特卡罗方法,基于MATLAB的金融工程方法与实践第七章 基于蒙特卡洛方法的期权定价.ppt...

    蒙特卡洛的优缺点 MCMC方法的优点 分布假设更一般,描述市场因素可能变化的统计分布既可以是正态.对数正态的,也可以是带跳的扩散分布.t分布等. 随机生成风险因素的各种各样的未来假想情景,可在模型中融 ...

  2. 蒙特卡洛 欧式期权 matlab,大家好,问大家一个蒙特卡洛期权定价的matlab程序,谢谢大家...

    欧式期权是对的,美式期权定出的价格差距就很大,不知道哪里问题,是理论出问题了吗?谢谢大家 if AoE  %欧式期权 P(1,:)=exp(-r*T)*P(N+1,:); else if type P ...

  3. 使用Java编写欧式期权理论理论计算公式

    Java版本欧式期权计算器 使用Java编写欧式期权计算器 先看一下欧式期权计算公式 完整Java代码 使用Java编写欧式期权计算器 目前公司一个小程序项目需要用到欧式期权器,计算看涨期权与看跌期权 ...

  4. 美式期权、欧式期权比较分析——定价与风险管理

    一.美式期权.欧式期权定义 期权是一种金融合约,这一合约赋予其持有人在约定的时间以约定的价格买入或卖出标的资产的权利.期权的执行方式主要有美式和欧式.美式期权指期权的买方在合约到期日之前任意交易日都可 ...

  5. 第2节 二叉树计算欧式和美式期权价格

    第2节 二叉树计算欧式和美式期权价格 2.1 简介 2.2 二叉树计算期权价格算法 2.3 计算过程 Python 代码实现 2.4 相关说明 2.4.1 计算例子 2.4.2 树形定价收敛情况 1. ...

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

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

  7. Matlab看跌期权二叉树,欧式期权二叉树MATLAB程序

    欧式期权二叉树MATLAB程序 function EXS() S=input('请输入当前股价:\n'); K=input('请输入股票执行价格:\n'); r=input('请输入无风险利率:\n' ...

  8. java中使用几率_Java中使用蒙特卡洛算法计算德州扑克成牌概率(二)- 计算牌面分值...

    德州扑克中比较重要的一个算法就是计算牌面的得分,不仅仅关乎概率计算的结果,同时也需要很高的性能.蒙特卡洛算法计算的次数越多结果越准确,因此算法的性能至关重要.下面是一个高性能的牌面java计算算法. ...

  9. 怎样用python计算π的值_IV.python初探日记:python实现蒙特卡洛方法计算π值

    早上中级微观经济学课上复习泰勒展开和麦克劳林展开,顺带讲到了用蒙特卡洛方法实现计算π值,于是下午着手用python尝试着实现了一下,并用matplotlib输出了一部分数据. 完整的代码在文末,本文适 ...

  10. python学习之 利用蒙特卡洛方法计算PI值

    使用环境为python IDLE3.5. #利用蒙特卡洛方法计算PI值 from random import random from math import sqrt from time import ...

最新文章

  1. USEARCH —— 最简单易学的扩增子分析流程
  2. m 文件 dll matlab 中调用_Java与MatLab混编
  3. 基于 K8s 做应用发布的工具那么多, 阿里为啥选择灰姑娘般的 Tekton ?
  4. python 生成pdf收据_python如何与以太坊交互并将区块链信息写入SQLite
  5. android contentDescription的使用
  6. 确定S中最接近中位数的k个元素(算法导论第三版9.3-7)
  7. gm怎么刷东西 rust_RUST:2020年7月第三周 修补和更新
  8. 转 从20秒到0.5秒:一个使用Rust语言来优化Python性能的案例
  9. QUdpSocket
  10. Python:如何安装与使用 pip
  11. 网上邻居不能正常访问的处理
  12. IE6之各种不适记录
  13. 史上最详细蝉道开源安装步骤。
  14. C语言scanf为啥有时候要输入两次(解析)
  15. weblogic 14c 的下载和安装
  16. 平板酷派Ultranote X15概述
  17. 启动tomcat闪退如何获取报错信息
  18. gin embed打包静态资源文件
  19. python抓取懂球帝部分球员数据
  20. C# 开发CAD注意事项(二)-CAD不显示注记

热门文章

  1. mysql 联合索引底层结构_MySQL联合索引底层数据结构
  2. this.controls指所有控件吗?_PPT特效制作案例:2019年小目标,你定了吗?(用文本框控件制作)...
  3. python解base64_python模块之base64
  4. 一个借口几万条数据但是只返回十条_爬虫实践之爬取10000条菜谱数据
  5. 脚本录制软件python 按键精灵 tc_GitHub - yang-dongxu/KeymouseGo: 类似按键精灵的鼠标键盘录制和自动化操作...
  6. beetl html模板,Spring Boot 2 中使用 beetl 模板引擎
  7. android实战技巧,实战技巧:Android异步指南
  8. BOM知识点全面总结(附实例、图解)
  9. win7 ASP.NET 2.0 部署
  10. RHEL6.3基本网络配置(4) 其它常用网络配置文件