def implied_vol_call_min(S,X,T,r,c):
from scipy import log,exp,sqrt,stats
implied_vol=1.0
min_value=1000
for i in range(10000):
sigma=0.0001*(i+1)
d1=(log(S/X)+(r+sigma*sigma/2.)*T)/(sigma*sqrt(T))
d2 = d1-sigma*sqrt(T)
c2=S*stats.norm.cdf(d1)-X*exp(-r*T)*stats.norm.cdf(d2)
abs_diff=abs(c2-c)
if abs_diff<min_value:
min_value=abs_diff
implied_vol=sigma
k=i
return implied_vol
# Step 3: get call option data
c10_37_volatility_smile.py 文件源码
python
阅读 27
收藏 0
点赞 0
评论 0
评论列表
文章目录