本篇中,作为Quant中的Q宗(P Quant 和 Q Quant 到底哪个是未来?),我们将尝试把之前的介绍的工具串联起来,小试牛刀。

您将可以体验到:

  1. 如何使用python内置的数学函数计算期权的价格;
  2. 利用 numpy 加速数值计算;
  3. 利用 scipy 进行仿真模拟;
  4. 使用 scipy 求解器计算隐含波动率;

穿插着,我们也会使用matplotlib绘制精美的图标。

1. 关心的问题

我们想知道下面的一只期权的价格:

  • 当前价 spot : 2.45
  • 行权价 strike : 2.50
  • 到期期限 maturity : 0.25
  • 无风险利率 r : 0.05
  • 波动率 vol : 0.25

关于这样的简单欧式期权的定价,有经典的Black - Scholes [1] 公式:

Call(S,K,r,τ,σ)d1d2= SN(d1)−Ke−rτN(d2),=ln(S/K)+(r+12σ2)τστ√,=d1−στ√.

其中S为标的价格,K为执行价格,r为无风险利率,τ=T−t为剩余到期时间。 N(x)为标准正态分布的累积概率密度函数。Call(S,K,r,τ,σ)为看涨期权的价格。

观察上面的公式,需要使用一些数学函数,我们把它分为两部分:

  • log,sqrt,exp,这三个函数我们可以从标准库math中找到
  • 标准正态分布的累计概率密度函数,我们使用scipy库中的stats.norm.cdf函数

我们可以使用这个函数计算我们关注期权的结果:

2. 使用numpy加速批量计算

大部分的时候,我们不止关心一个期权的价格,而是关心一个组合(成千上万)的期权。我们想知道, 随着期权组合数量的增长,我们计算时间的增长会有多块?

2.1 使用循环的方式

2.2 使用numpy向量计算

numpy的内置数学函数可以天然的运用于向量:

利用 numpy 的数学函数,我们可以重写原先的计算公式 call_option_pricer,使得它接受向量参数。

再观察一下计算耗时,虽然时间仍然是随着规模的增长线性上升,但是增长的速度要慢许多:

让我们把两次计算时间进行比对,更清楚的了解 numpy 计算效率的提升!

3. 使用scipy做仿真计算

期权价格的计算方法中有一类称为 蒙特卡洛 方法。这是利用随机抽样的方法,模拟标的股票价格随机游走,计算期权价格(未来的期望)。假设股票价格满足以下的随机游走:

dS=rSdt+σSdW(t).

仿真的方法可以模拟到期日的股票价格

ST=S0exp((r−12σ2)T+zσT‾‾√)

这里的z是一个符合标准正态分布的随机数。这样我们可以计算最后的期权价格:

price=exp(−rT)∑i=1Nmax(ST,i−K,0)

标准正态分布的随机数获取,可以方便的求助于 scipy 库:

因为篇幅有限,更多的请看

量化分析师的Python日记【Q Quant 之初出江湖】相关推荐

  1. 量化分析师的Python日记 系列

    量化分析师的Python日记 系列 转发,原作者 薛昆Kelvin 为方便学习,整理一下学习材料.持续更新. [第1天:谁来给我讲讲Python?] https://uqer.io/community ...

  2. 量化分析师的Python日记-CSDN公开课-专题视频课程

    量化分析师的Python日记-7882人已学习 课程介绍         以完全初学者的角度入手来认识Python这个在量化领域日益重要的语言. 课程收益     课程先从介绍Python本身一些基本 ...

  3. 量化分析师的Python日记【Q Quant兵器谱之偏微分方程2】

    这是量化分析师的偏微分方程系列的第二篇,在这一篇中我们将解决上一篇显式格式留下的稳定性问题.本篇将引入隐式差分算法,读者可以学到: 隐式差分格式描述 三对角矩阵求解 如何使用scipy加速算法实现 在 ...

  4. 量化分析师的Python日记【Q Quant兵器谱之二叉树】

    通过之前几天的学习,Q Quant们应该已经熟悉了Python的基本语法,也了解了Python中常用数值库的算法.到这里为止,小Q们也许早就对之前简单的例子不满意,希望能在Python里面玩票大的!O ...

  5. python量化分析系列(第一篇)_量化分析师的 Python 日记 [第 1 天:谁来给我讲讲 Python?]...

    45 条回复 • 2016-05-25 11:10:23 +08:00 1 2015-04-08 21:42:42 +08:00 这里竟然有Quant 2 2015-04-08 22:49:51 +0 ...

  6. 量化分析师的Python日记【Q Quant兵器谱 -之偏微分方程1】

    从今天开始我们将进入一个系列 -- 偏微分方程.作为这一系列的开篇,我们以热传导方差为引子,引出: 如何提一个偏微分方程的初边值问题: 利用差分格式将偏微分方程离散化: 显示差分格式: 显示差分格式的 ...

  7. 量化分析师的Python日记【Q Quant兵器谱之函数插值】

    在本篇中,我们将介绍Q宽客常用工具之一:函数插值.接着将函数插值应用于一个实际的金融建模场景中:波动率曲面构造. 通过本篇的学习您将学习到: 如何在scipy中使用函数插值模块:interpolate ...

  8. 量化分析师的Python日记【Q Quant兵器谱之偏微分方程3的具体金融学运用】

    欢迎来到 Black - Scholes - Merton 的世界!本篇中我们将把第11天学习到的知识应用到这个金融学的具体方程之上! import numpy as np import math i ...

  9. 量化分析师的python日记_量化分析师的Python日记【第1天:谁来给我讲讲Python?】...

    "谁来给我讲讲Python?" 作为无基础的初学者,只想先大概了解一下Python,随便编个小程序,并能看懂一般的程序,那些什么JAVA啊.C啊.继承啊.异常啊通通不懂怎么办,于是 ...

最新文章

  1. 世界卫生组织发布新冠密切接触者追踪技术应用伦理指南,智源《AI伦理译丛》发布中文版...
  2. 基于Transformer的高效、低延时、流式语音识别模型
  3. Refuses to install for WTP10
  4. 使用Ant实现打包jar包上传到服务器
  5. 友邦人寿引入阿里云PolarDB云数据库 支撑保险业务系统加速上云
  6. python3.5文档
  7. 多地GitHub账号使用受限;Python之父考虑重构解释器;62岁程序员埋逻辑炸弹 | 开发者周刊...
  8. Linux on-the-fly kernel patching without LKM
  9. 从.NET未来趋势发展的两则PPT而来的乱语
  10. 袋鼠云服务案例系列 | 从DB2到MySQL,某传统金融平台的互联网转型之路
  11. 游戏场景设计探究:冬夏季节光色模型
  12. HTML+CSS美食静态网页设计
  13. SOA、RPC/REST 和六边形架构
  14. CDN加速是什么?具体有什么用?
  15. linux vi文件提示swp,如何解决非正常关闭vi编辑器时生成.swp文件问题
  16. linux字符串加引号,请问 命令行中写路径,加引号和不加有什么区别?
  17. 算法岗面经总结(快看漫画)
  18. 王小川谈创业必须突破的六大槛:人、产品、渠道、体制、资本、移动
  19. 腾讯 Matrix 增量编译 bug 解决之路,PR 已通过
  20. Windows下如何给C盘扩容 (已更新提取码)

热门文章

  1. delete和delete[]
  2. Apache hop web构建及部署
  3. 微创新:5种微笑改变创造伟大产品
  4. Proxmox VE同时配置NAT共享IP和独立IP虚拟机
  5. 什么是期权激励_理解激励股票期权的快速指南
  6. MYSQL内存请求一直不释放_MySQL内存不释放分析
  7. 剑指offer 27. 二叉树的镜像
  8. python整钱兑换零钱_LeetCode 零钱兑换
  9. 全球与中国纳米压印光刻系统市场发展调研及投资价值报告2022-2028年版
  10. 【刷题】阿里20200330笔试