python计算隐含波动率_用Python快速计算隐含波动率
你必须意识到隐含波动率计算的计算成本很高,如果你想要实时数据,也许python不是最好的解决方案。
这里是一个你需要的函数的例子。
import numpy as np
from scipy.stats import norm
N = norm.cdf
def bs_call(S, K, T, r, vol):
d1 = (np.log(S/K) + (r + 0.5*vol**2)*T) / (vol*np.sqrt(T))
d2 = d1 - vol * np.sqrt(T)
return S * norm.cdf(d1) - np.exp(-r * T) * K * norm.cdf(d2)
def bs_vega(S, K, T, r, sigma):
d1 = (np.log(S / K) + (r + 0.5 * sigma ** 2) * T) / (sigma * np.sqrt(T))
return S * norm.pdf(d1) * np.sqrt(T)
def find_vol(target_value, S, K, T, r, *args):
MAX_ITERATIONS = 200
PRECISION = 1.0e-5
sigma = 0.5
for i in range(0, MAX_ITERATIONS):
price = bs_call(S, K, T, r, sigma)
vega = bs_vega(S, K, T, r, sigma)
diff = target_value - price # our root
if (abs(diff) < PRECISION):
return sigma
sigma = sigma + diff/vega # f(x) / f'(x)
return sigma # value wasn't found, return best guess so far
计算一个单一的值是足够快的
S = 100
K = 100
T = 11
r = 0.01
vol = 0.25
V_market = bs_call(S, K, T, r, vol)
implied_vol = find_vol(V_market, S, K, T, r)
print ('Implied vol: %.2f%%' % (implied_vol * 100))
print ('Market price = %.2f' % V_market)
print ('Model price = %.2f' % bs_call(S, K, T, r, implied_vol))
隐含波动率:25.00%
市场价格=35.94
模型价格=35.94
但如果你试着计算很多,你会发现需要一些时间......
%%time
size = 10000
S = np.random.randint(100, 200, size)
K = S * 1.25
T = np.ones(size)
R = np.random.randint(0, 3, size) / 100
vols = np.random.randint(15, 50, size) / 100
prices = bs_call(S, K, T, R, vols)
params = np.vstack((prices, S, K, T, R, vols))
vols = list(map(find_vol, *params))
墙时间:10.5秒
python计算隐含波动率_用Python快速计算隐含波动率相关推荐
- python 概率分布模型_使用python的概率模型进行公司估值
python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...
- python 时间序列预测_使用Python进行动手时间序列预测
python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...
- 复盘:auc是怎么计算的?auc怎么快速计算?
复盘:auc是怎么计算的?auc怎么快速计算? 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 ...
- python可以用于excel计算吗_你好Python!再见Excel?
现在很多行业,都离不开Excel: 做财务的,要用Excel做报表: 做物流的,会用Excel来跟踪订单情况: 做HR的,会用Excel算工资: 做运营的,会用Excel记录数据做分析. 不知道你有没 ...
- 机械专业与python的联系_使用python进行机械设计计算
分析 这一过程的核心在于机械设计,python的编程的用途有两个 1.当作计算器,缺点在于没有casio计算器那样的自然显示,优点在于可以反复调用,使用lambda函数简化运算 2.当设计需要修改时, ...
- python计算信息增益_利用Python提取ABAQUS的计算结果(ODB)信息、体积、应变等变化(一)...
00 实例模型 一个金属长方体,我们需要对其做拉伸的加载约束示意图如图1,并在完成后采用Python命令流读取参考点的位移.体积.应变随加载时间的变化情况. 图1 金属长方体约束加载示意图 01 Py ...
- 蒙特卡洛python求解派_用蒙特卡洛方法计算派-python和R语言
标签: 用蒙特卡洛方法算pi-基于python和R语言 最近follow了MOOC上一门python课,开始学Python.同时,买来了概率论与数理统计,准备自学一下统计.(因为被鄙视过不是统计专业却 ...
- python支持强大的科学计算功能_用 Python 写高效科学计算程序设计
1.科学计算中的突出问题及需求 概括一般科学计算的特点,主要包括四方面: 数值计算种类多 对于某个问题的求解,可能需要不同种类的函数,如三角函数,积分函数,概率统计函数以及某些特殊函数. 需要大量数值 ...
- python万年历节气_用Python精确计算100年内二十四节气日期
这两天在做万年历app的项目,其中有一项需要获得二十四节气的精确日期. 因为这个二十四节气日期在项目中用到的地方比较多(主要是精确计算某一天的年月日天干这方面):而且二十四节气计算的具体情况又特别复杂 ...
- 斗拱展开面积表_斗拱怎么快速计算可视面积
斗拱怎么快速计算可视面积 一斗三 升 攒 0.095 0.214 0.232 0.334 0.319 0.455 0.594 0.752 0.854 0.928 1.163 1.5 ...
最新文章
- 3.6 权值初始化-机器学习笔记-斯坦福吴恩达教授
- ZooKeeper学习:CentOS7下ZooKeeper集群搭建
- NeurIPS 2020有哪些值得读的「图神经网络」论文?
- HDU - 6989 Didn‘t I Say to Make My Abilities Average in the Next Life?! 莫队/单调栈 + 线段树/ST表在线
- isinstanceof java_scala中的isInstanceOf和asInstanceOf
- 类文件Spring中空值的写法-java教程
- 面向对象 solid_用简单的英语解释面向对象程序设计的SOLID原理
- 看动画轻松理解「链表」实现「 LRU 缓存淘汰算法」
- vs2015连接oracle(11g)的方法
- python做计量经济学的书籍_《计量经济学》教材书单
- C51单片机引脚名词英文全称
- kettle spoon 连接mysql数据库
- ftp服务器上传文件卡顿,FlashFXP连接FTP服务器很慢,原因可能是这样
- c语言 称重系统设计,智能称重系统设计-文献综述.doc
- r语言rank降序_常见排序分析方法及R语言实现
- 制作excle报盘模板
- 最近很火的在线文件预览txt、doc、ppt、pdf、excel、jpg、png、zip、tar.gz等各种文件及压缩文件在线解压和预览,包括前后端设计和源码,编写搜索引擎多关键词检索名称和内容(四)
- 2022年蓝桥杯:第十三届蓝桥杯大赛软件赛省赛C/C++大学B组真题(考后回顾,文末附真题链接)
- 一篇文章让你彻底明白区块链有哪些应用场景
- 阿里云 Redis 报出You can't read against a non-read redis.解决方案