计算black-scholes隐含波动率-矢量
calcbsimpvol的Python项目详细描述
CalcbsImpVol
计算black-scholes隐含波动率-向量
:)
本机python代码:)
轻量级封装:)
包含示例数据:(
不适合单个/少量选项:(
代码读取非pythonic:(
尚未彻底测试
开始
要求
- python 3.x(当前)或pypy3
- 努比
- scipy
- (matplotlib在某些示例中显示结果)
安装
当代码由单个数字函数组成时,
我建议使用pip install
方法获取代码。
这样你就可以利用错误修复,更新,
以及可能的扩展。
$ pip install calcbsimpvol
示例
将捆绑在dict
中的args
传递给您。
fromcalcbsimpvolimportcalcbsimpvolimportnumpyasnpS=np.asarray(100)K_value=np.arange(40,160,25)K=np.ones((np.size(K_value),1))K[:,0]=K_valuetau_value=np.arange(0.25,1.01,0.25)tau=np.ones((np.size(tau_value),1))tau[:,0]=tau_valuer=np.asarray(0.01)q=np.asarray(0.03)cp=np.asarray(1)P=[[59.35,34.41,10.34,0.50,0.01],[58.71,33.85,10.99,1.36,0.14],[58.07,33.35,11.50,2.12,0.40],[57.44,32.91,11.90,2.77,0.70]]P=np.asarray(P)[K,tau]=np.meshgrid(K,tau)sigma=calcbsimpvol(dict(cp=cp,P=P,S=S,K=K,tau=tau,r=r,q=q))print(sigma)# [[ nan, nan, 0.20709362, 0.21820954, 0.24188675],# [ nan, 0.22279836, 0.20240934, 0.21386148, 0.23738982],# [ nan, 0.22442837, 0.1987048 , 0.21063506, 0.23450013],# [ nan, 0.22188111, 0.19564657, 0.20798285, 0.23045406]]
example3.py中提供了更多使用示例 (需要其他样本数据,可在GitHub Repo
性能
Design a test.
Get the results you want.
k_max = 10
(默认)tolerance = 10E-12
(默认值)- 线性回归步骤被注释掉(默认值)
# assuming you did install it already git clone https://github.com/erkandem/calcbsimpvol.git cd calcbsimpvol python examples/example3.py --steps 100 --mode reference
- 每个选项15微秒
- 每个表面41毫秒
使用3.6、3.7和PyPy3进行测试
matlab -nodisplay -nosplash -nodesktop -r "run('mlb_reference_example.m');"
- 每个选项12微秒
- 每个表面34 ms
显然,这些值是每个核心(i5 4210u 1.7ghz)。
注释
好的python代码读起来像一本小说。正确的?数学也是。 在这种情况下,我更喜欢像变量名这样的短数学名称。 这使得代码与其他python代码相比可读性降低 但是docstring应该可以弥补可读性的不足。
最初,我把camelcase函数名和拼写放在适当的位置,但最终还是被惹恼了。
calcbsimpvol it is
代码来源
- 李(2006)的第一个想法(见参考文献)
- 由mark whirdy实现并发布为matlab.m-code(参见参考资料)
- 从
.m
到.py
由我命名
联系人
- 电子邮件:erkan@erkan.io
- 文档:erkandem.github.io/calcbsimpvol/
- 来源:github.com/erkandem/calcbsimpvol
- 问题:github.com/erkandem/calcbsimpvol/issues
- 作者网站:erkan.io(正在建设中)
待办事项
- 使代码与
Python 2
兼容
- 使之成为
PyPy
参考文献
李,2006,“你不必为隐含波动率而麻烦牛顿”
Matlab源代码位于:
https://www.mathworks.com/matlabcentral/fileexchange/41473-calcbsimpvol-cp-p-s-k-t-r-q
许可证
包含的python代码在MIT
License
mark whirdy的代码是根据MIT
License
译文与原作者无关,也没有原作者的赞同。