Python Forum
xlwings UDF showing name error
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
xlwings UDF showing name error
#1
Hi,

I'm trying to write a simple UDF using xlwings. Note that I don't have much experience with Python.

The Python code that I'm trying to call via xlwings is:

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 
I have then called the function on Excel (via xlwings) with the formula =BSPutOptionImpVol(45,32,1,127,0.95)

Unfortunately, it's returning a very long error message

Error:
"NameError: name 'norm' is not defined call = self.underlyingPrice * norm.cdf(self._d1_) - \ File ""C:\Users\...\anaconda3\lib\site-packages\mibian\__init__.py"", line 307, in _price [self.callPrice, self.putPrice] = self._price() File ""C:\Users\...\anaconda3\lib\site-packages\mibian\__init__.py"", line 276, in __init__ estimate = eval(className)(args, volatility=mid, performance=True).putPrice File ""C:\Users\...\anaconda3\lib\site-packages\mibian\__init__.py"", line 29, in impliedVolatility self.__class__.__name__, args, putPrice=self.putPrice) File ""C:\Users\...\anaconda3\lib\site-packages\mibian\__init__.py"", line 293, in __init__ c = mibian.BS([underlyingPrice, strike, interestRate, expiryDays], putPrice=premium) File ""c:\users\...\documents\python scripts\BSPutImVol.py"", line 6, in BSPutOptionImpVol ret = func(*args) File ""C:\Users\...\anaconda3\lib\site-packages\xlwings\udfs.py"", line 298, in call_udf res = call_udf(script, fname, args, this_workbook, FromVariant(caller)) File ""C:\Users\...\anaconda3\lib\site-packages\xlwings\server.py"", line 195, in CallUDF return func(*args) File ""C:\Users\...\anaconda3\lib\site-packages\win32com\server\policy.py"", line 586, in _invokeex_ return S_OK, -1, self._invokeex_(dispid, lcid, wFlags, args, None, None) File ""C:\Users\...\anaconda3\lib\site-packages\win32com\server\policy.py"", line 283, in _invoke_ return self._invoke_(dispid, lcid, wFlags, args) File ""C:\Users\...\anaconda3\lib\site-packages\win32com\server\policy.py"", line 278, in _Invoke_"
Any one has an idea what I've done wrong? Thanks.
Reply


Messages In This Thread
xlwings UDF showing name error - by pwt - May-29-2020, 04:34 AM
RE: xlwings UDF showing name error - by buran - May-29-2020, 04:53 AM
RE: xlwings UDF showing name error - by pwt - May-29-2020, 04:56 AM
RE: xlwings UDF showing name error - by buran - May-29-2020, 05:08 AM
RE: xlwings UDF showing name error - by pwt - May-29-2020, 05:18 AM
RE: xlwings UDF showing name error - by buran - May-29-2020, 06:12 AM
RE: xlwings UDF showing name error - by pwt - May-29-2020, 06:28 AM
RE: xlwings UDF showing name error - by buran - May-29-2020, 06:31 AM
RE: xlwings UDF showing name error - by pwt - May-29-2020, 07:09 AM
RE: xlwings UDF showing name error - by buran - May-29-2020, 06:42 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  xlwings error when reading a workbook Mishal0488 1 1,126 Aug-01-2023, 02:05 AM
Last Post: deanhystad
  Help using a dynamic array excel formula with XLWings FXMonkey 2 1,301 Jun-06-2023, 09:46 PM
Last Post: FXMonkey
  Showing error Sakeeb 3 22,257 Mar-31-2020, 01:03 PM
Last Post: buran
  No output from xlwings RunPython Macro branches 0 3,036 Oct-29-2017, 04:27 PM
Last Post: branches

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020