【发布时间】:2021-03-16 04:53:47
【问题描述】:
我想使用 scipy 优化布伦特根查找算法计算隐含波动率:
def calcimpliedvol(S,K,T,r,marketoptionPrice):
d1=(np.log(S/K)+(r-0.5*sigma**2)*T)/(sigma*np.sqrt(T))
d2=d1-(sigma*np.sqrt(T))
BSprice_call=S*si.norm.cdf(d1,0,1)-K*np.exp(-r*T)*si.norm.cdf(d2,0,1)
fx=BSprice_call-marketoptionPrice
return optimize.brentq(fx,0,1,maxiter=1000)
但是,当我运行该函数并为其指定所有输入 K=6,S=8,T=0.25,r=0,OptionPrice=4 时,我收到一条错误消息,提示未定义 sigma。 Sigma是我想用优化算法找到的。
有人可以告诉我在定义函数时我做错了什么吗?
【问题讨论】:
标签: optimization scipy