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 ...
最新文章
- SQL repeat()函数
- 学计算机一般要off,必须要学的电脑知识
- python培训班价格-成都Python课程
- C++STL 常用 函数 用法
- Python socket的客户端
- 归属地的判断规则有吗_IPO|创业板注册制规则-详解股权激励新规
- MapReduce编程(四) 求均值
- OneinStack一键安装tomcat,jdk,mysql到Linux
- 关于ios 里面碰到内存错误的两种设置
- java 元数据 注解_Java元数据总结:Java注释的使用和定义
- 【CSS3】 线性渐变
- oracle用户口令已失效
- android出现anr(application not response)的分析
- hdu 2094 “产生冠军”——set容器的应用
- [ecshop调试]ecshop 数据库查询缓存详解 有三种缓存,query_cache(数据库查询缓存)、static_cache(静态缓存)和cache(普通的缓存)
- 仅需6步!虹科教你如何在第三方软件CODESYS中配置PCAN
- 16款分形图像软件为你创造出惊人的艺术效果
- 手绘类短视频怎么制作?从剪辑到配音,后期制作也很重要
- Android AdMob教程
- 同时安装 瑞星、金山、腾讯、百度和360这五大杀毒软件
热门文章
- JAVA并发系列十九:深入理解ThreadLocal(三)–详解ThreadLocal内存泄漏问题
- matlab带未知数的劳斯判据,自动控制原理实验用Matlab软件编制劳斯判据程序并解题(《学习辅导》例4.3.5)...
- 多多自走棋服务器不稳定,《多多自走棋》将登陆Epic平台 PC版数据将与移动版互通...
- 菜鸟程序员成长之路(七)——2020年,你奋斗了吗?
- 双网卡双线路DNS解析分析
- 猿创征文|2022全球程序员薪资排行一览
- 对接ERP和MES,使用低代码定制生产计划管理(APS)系统
- 零基础学习云计算需要准备什么?
- JS中this的四种调用方法
- 教学向|比较难的人体构造建模,用zbrush构建脸部与肌肉形状