一、本文大纲:
1.Python内置函数计算期权的价格
2.numpy加速数值计算
3.SciPy进行仿真模拟
4.SciPy求解器计算隐含波动率
5.matplotlib绘图
二、案例
(看不懂,略)
三、numpy加速数值计算
3.1使用循环的方式(对于这些不懂的或者升级的,代码都要仔细敲下来,加深印象)
import time
import numpy as np
port_test_size=range(1,10000,500)
timespent=[]
for size in port_teset_size:
now=time.time()
strikes=np.linspace(2.0,3.0,size)
` for i in range(size):
res=call_option_pricer(spot,strikes[i],maturity,r,vol)
timespent.append(time.time()-now)
从下图中可以看出,计算时间的增长可以说是随着组合规模的增长线性上升。
from matplotlib import pylab
import seaborn as sns
font.set_size(15)
sns.set(style="ticks")
pylab.figure(figsize = (12,8))
pylab.bar(portfolioSize, timeSpent, color = 'r', width =300)
pylab.grid(True)
pylab.title(u'期权计算时间耗时(单位:秒)', fontproperties = font, f
ontsize = 18)
pylab.ylabel(u'时间(s)', fontproperties = font, fontsize = 15)
pylab.xlabel(u'组合数量', fontproperties = font, fontsize = 15)