问题标签 [mibian]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1104 浏览

python - Pandas DataFrame.apply() 和 mibian

我正在尝试使用包含不同选项数据的 pandas 数据框来计算隐含波动率。对于隐含波动率,我使用mibian。这是代码:

当我运行所有这些时,它在 optionsData 中的第一个元素上设置 impvol,但似乎随后给了我这个错误:

我必须错过一些简单的东西。当我将它们传递给 mibian 时,我尝试将每个值包装在 float() 中,但仍然遇到同样的问题。我非常感谢任何指导。

此外,如果您知道使用数据框计算隐含波动率的更有效方法,我会全力以赴。

0 投票
2 回答
103 浏览

python - 尝试遍历列表,但我不断收到错误

我正在尝试获取不同股票价格的期权看涨价格。我不断收到一条错误消息,指出 float() 参数必须是字符串或数字。这是代码:

这是错误代码:

0 投票
1 回答
2078 浏览

python - Mibian 期权似乎不适用于不同的波动率值 Python

我正在使用一个名为 Mibian 的 Python 模块来计算看涨期权和看跌期权。Mibians Black-Scholes 公式的参数如下:

假设我计算 AAPL (Apple.inc) 股票的看涨期权,标的价格为 143.14,执行价格为 100,利率为 1%,到期 17 天,波动率为 19.42。

AAPL 的卖价为 43.50。所以这两个值非常接近。但是,如果我将波动率更改为任何值,除非它非常大,例如 120,否则它会完全改变。使用 Black-Scholes 公式的看涨和看跌期权应该对波动率的变化非常敏感,但对于米边来说,它几乎没有变化。它对所有参数的变化都很敏感,除了波动性。

我希望以后能够仅更改波动率值,以便在之前的看涨期权和看跌期权之间进行比较。我在这里遗漏了什么,还是 Mibian 方程不能正常工作?希望我只是一个假人。对澄清这个问题有任何帮助吗?非常感谢。

0 投票
2 回答
3705 浏览

python-3.7 - 与 xlwings 一起使用时,Mibian 返回“NameError: name 'norm' is not defined...”

我试图使用 xlwings 编写一个 Excel UDF,以从 Mibian 库返回财务选项计算​​。我试过下面的代码。

从 Excel 中,然后我使用以下命令调用该函数=BSPutOptionImpVol(45,32,1,127,0.95)

它返回以下错误:

“NameError:名称'norm'未定义 call = self.underlyingPrice * norm.cdf(self.d1 ) - \ File ""C:\Users...\anaconda3\lib\site-packages\mibian__init__.py"" ,第 307 行,在 _price [self.callPrice, self.putPrice] = self._price() 文件 ""C:\Users...\anaconda3\lib\site-packages\mibian__init__.py"",第 276 行,在init 估计 = eval(className)(args,volatility=mid,performance=True).putPrice File ""C:\Users...\anaconda3\lib\site-packages\mibian__init__.py"",第 29 行,隐含波动率self.class.name , args , putPrice = self.putPrice ) 文件 ""C:\Users...\anaconda3\lib\site-packages\mibian__init__.py"",第 293 行,在初始化 c = mibian.BS([underlyingPrice, strike, interestRate, expiryDays], putPrice=premium) File ""c:\users...\documents\python scripts\BSPutImVol.py"",第 6 行,在 BSPutOptionImpVol ret = func (*args) 文件 ""C:\Users...\anaconda3\lib\site-packages\xlwings\udfs.py"",第 298 行,在 call_udf res = call_udf(script, fname, args, this_workbook, FromVariant( caller)) 文件 ""C:\Users...\anaconda3\lib\site-packages\xlwings\server.py"",第 195 行,在 CallUDF return func(args) 文件 ""C:\Users...\anaconda3\lib\site-packages\win32com\server\policy.py"",第 586 行,在 _invokeex_ 中返回 S_OK, -1, self._invokeex_(dispid, lcid, wFlags, args, None, None) 文件 ""C:\Users...\anaconda3\lib\site-packages\win32com\server\policy.py"",第 283 行,在 _invoke_ return self._invoke_(dispid, lcid , wFlags, args) 文件 ""C:\Users...\anaconda3\lib\site-packages\win32com\server\policy.py"",第 278 行,在 _Invoke_"

我也试过只调用函数而不传递参数(即输入值在python代码中),但我仍然得到同样的错误。

但是,如果我注释掉 xlwings 并从 Spyder 运行 Python 代码,如下所示,它可以工作。

我是 Python 的新手,所以感谢任何帮助和建议。谢谢。