我试图编写一个Excel,使用xlwing从Mibian库返回财务选项计算。我已经试过下面的代码了。
import xlwings as xw
import mibian
@xw.func
def BSPutOptionImpVol(underlyingPrice,strike,interestRate,expiryDays,premium):
c = mibian.BS([underlyingPrice, strike, interestRate, expiryDays], putPrice=premium)
return c.impliedVolatility然后,我使用下面的=BSPutOptionImpVol(45,32,1,127,0.95)调用该函数
它返回以下错误:
""C:\Users...\anaconda3\lib\site-packages\mibian__init__.py"",
"NameError:名称'norm‘是未定义的call = self.underlyingPrice * norm.cdf(self.d1) -\ File NameError行307,在_price self.callPrice中,self.putPrice = self._price() File ""C:\Users...\anaconda3\lib\site-packages\mibian__init__.py"",第276行,在""C:\Users...\anaconda3\lib\site-packages\mibian__init__.py"",第29行中,在init估计=(ClassName)( args,volatility=mid,performance=True)中,在impliedVolatility args,putPrice=self.putPrice中,文件""C:\Users...\anaconda3\lib\site-packages\mibian__init__.py"",第293行,在init c= mibian.BS(underlyingPrice,strike,interestRate,expiryDays,putPrice=premium)文件“c:\user.\\pythonscripts\BSPutImVol.py”中,第6行在BSPutOptionImpVol ret = func(* args ) File 第298行中,在call_udf res =call_udf(脚本、fname、args、this_workbook )中(调用者)文件""C:\Users...\anaconda3\lib\site-packages\xlwings\server.py"",第195行,在CallUDF返回函数( args )文件""C:\Users...\anaconda3\lib\site-packages\win32com\server\policy.py"",行586中,在_invokeex_返回S_OK中,-1,self._invokeex_(dispid,lcid,wFlags,args),无,(无)文件""C:\Users...\anaconda3\lib\site-packages\win32com\server\policy.py"",行283,在_invoke_中返回self._invoke_(dispid,lcid,wFlags,args)文件""C:\Users...\anaconda3\lib\site-packages\win32com\server\policy.py"",第278行(_Invoke_)“
我还尝试过只调用函数而不传递参数(即输入值在python代码中),但仍然会出现相同的错误。
但是,如果我注释掉xlwing,然后按下面的方式从Spyder运行Python代码,它就能工作。
#import xlwings as xw
import mibian
#@xw.func
def BSPutOptionImpVol(underlyingPrice,strike,interestRate,expiryDays,premium):
c = mibian.BS([underlyingPrice, strike, interestRate, expiryDays], putPrice=premium)
# return c.impliedVolatility
print(c.impliedVolatility)我是Python的新手,所以感谢您的帮助和建议。谢谢。
发布于 2020-12-03 22:43:08
试试..。
from scipy.stats import norm发布于 2020-08-06 06:59:27
试着添加
import scipy你的密码。这解决了我的“规范”问题。
发布于 2022-10-10 14:39:49
这对我来说很管用
pip uninstall numpy scipy然后
pip install -U numpy scipyhttps://stackoverflow.com/questions/62112930
复制相似问题