量化分析师的Python日记【Q Quant 之初出江湖】
本篇中,作为Quant中的Q宗(P Quant 和 Q Quant 到底哪个是未来?),我们将尝试把之前的介绍的工具串联起来,小试牛刀。
您将可以体验到:
- 如何使用python内置的数学函数计算期权的价格;
- 利用
numpy
加速数值计算; - 利用
scipy
进行仿真模拟; - 使用
scipy
求解器计算隐含波动率;
穿插着,我们也会使用matplotlib
绘制精美的图标。
1. 关心的问题
我们想知道下面的一只期权的价格:
- 当前价
spot
: 2.45 - 行权价
strike
: 2.50 - 到期期限
maturity
: 0.25 - 无风险利率
r
: 0.05 - 波动率
vol
: 0.25
关于这样的简单欧式期权的定价,有经典的Black - Scholes [1] 公式:
其中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做仿真计算
期权价格的计算方法中有一类称为 蒙特卡洛 方法。这是利用随机抽样的方法,模拟标的股票价格随机游走,计算期权价格(未来的期望)。假设股票价格满足以下的随机游走:
仿真的方法可以模拟到期日的股票价格
这里的z是一个符合标准正态分布的随机数。这样我们可以计算最后的期权价格:
标准正态分布的随机数获取,可以方便的求助于 scipy
库:
因为篇幅有限,更多的请看
量化分析师的Python日记【Q Quant 之初出江湖】相关推荐
- 量化分析师的Python日记 系列
量化分析师的Python日记 系列 转发,原作者 薛昆Kelvin 为方便学习,整理一下学习材料.持续更新. [第1天:谁来给我讲讲Python?] https://uqer.io/community ...
- 量化分析师的Python日记-CSDN公开课-专题视频课程
量化分析师的Python日记-7882人已学习 课程介绍 以完全初学者的角度入手来认识Python这个在量化领域日益重要的语言. 课程收益 课程先从介绍Python本身一些基本 ...
- 量化分析师的Python日记【Q Quant兵器谱之偏微分方程2】
这是量化分析师的偏微分方程系列的第二篇,在这一篇中我们将解决上一篇显式格式留下的稳定性问题.本篇将引入隐式差分算法,读者可以学到: 隐式差分格式描述 三对角矩阵求解 如何使用scipy加速算法实现 在 ...
- 量化分析师的Python日记【Q Quant兵器谱之二叉树】
通过之前几天的学习,Q Quant们应该已经熟悉了Python的基本语法,也了解了Python中常用数值库的算法.到这里为止,小Q们也许早就对之前简单的例子不满意,希望能在Python里面玩票大的!O ...
- 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 ...
- 量化分析师的Python日记【Q Quant兵器谱 -之偏微分方程1】
从今天开始我们将进入一个系列 -- 偏微分方程.作为这一系列的开篇,我们以热传导方差为引子,引出: 如何提一个偏微分方程的初边值问题: 利用差分格式将偏微分方程离散化: 显示差分格式: 显示差分格式的 ...
- 量化分析师的Python日记【Q Quant兵器谱之函数插值】
在本篇中,我们将介绍Q宽客常用工具之一:函数插值.接着将函数插值应用于一个实际的金融建模场景中:波动率曲面构造. 通过本篇的学习您将学习到: 如何在scipy中使用函数插值模块:interpolate ...
- 量化分析师的Python日记【Q Quant兵器谱之偏微分方程3的具体金融学运用】
欢迎来到 Black - Scholes - Merton 的世界!本篇中我们将把第11天学习到的知识应用到这个金融学的具体方程之上! import numpy as np import math i ...
- 量化分析师的python日记_量化分析师的Python日记【第1天:谁来给我讲讲Python?】...
"谁来给我讲讲Python?" 作为无基础的初学者,只想先大概了解一下Python,随便编个小程序,并能看懂一般的程序,那些什么JAVA啊.C啊.继承啊.异常啊通通不懂怎么办,于是 ...
最新文章
- 世界卫生组织发布新冠密切接触者追踪技术应用伦理指南,智源《AI伦理译丛》发布中文版...
- 基于Transformer的高效、低延时、流式语音识别模型
- Refuses to install for WTP10
- 使用Ant实现打包jar包上传到服务器
- 友邦人寿引入阿里云PolarDB云数据库 支撑保险业务系统加速上云
- python3.5文档
- 多地GitHub账号使用受限;Python之父考虑重构解释器;62岁程序员埋逻辑炸弹 | 开发者周刊...
- Linux on-the-fly kernel patching without LKM
- 从.NET未来趋势发展的两则PPT而来的乱语
- 袋鼠云服务案例系列 | 从DB2到MySQL,某传统金融平台的互联网转型之路
- 游戏场景设计探究:冬夏季节光色模型
- HTML+CSS美食静态网页设计
- SOA、RPC/REST 和六边形架构
- CDN加速是什么?具体有什么用?
- linux vi文件提示swp,如何解决非正常关闭vi编辑器时生成.swp文件问题
- linux字符串加引号,请问 命令行中写路径,加引号和不加有什么区别?
- 算法岗面经总结(快看漫画)
- 王小川谈创业必须突破的六大槛:人、产品、渠道、体制、资本、移动
- 腾讯 Matrix 增量编译 bug 解决之路,PR 已通过
- Windows下如何给C盘扩容 (已更新提取码)