繁体   English   中英

类型错误:只能将元组(不是“浮动”)连接到元组

[英]TypeError: can only concatenate tuple (not "float") to tuple

我是 python 新手,所以问题可能很简单,无论如何,感谢您的耐心:

当我试图调用 newton-raphson 方法来计算 Black-Scholes 看涨/看跌期权定价公式中的隐含波动率时,首先,scipy.optimize 中的 newton 方法似乎计算函数的零点,但在 Black-斯科尔斯公式,我希望函数的值是期权价格,而不是零。 (我是编程新手,所以我不确定某些技术。)我是否应该编写另一个函数来执行以下操作:

def f(sigma, price):
    return bsformula(S0,K,r,T,q,sigma) - price

然后,在调用 newton 方法时,它将 args=() 作为函数中的一个参数,我这样写:

value = newton(bsprice2, 0.5, args=price)

但收到此错误消息:

File "BS.py", line 36, in bsimpvol
    value = newton(bsprice2, 0.5, args=float(price))
  File "/usr/lib/python2.7/dist-packages/scipy/optimize/zeros.py", line 143, in newton
    q0 = func(*((p0,) + args))
TypeError: can only concatenate tuple (not "float") to tuple

你能告诉我这是为什么吗? 如何解决? 非常感激。

Newton-Raphson 方法不是计算隐含波动率的好方法,因为导数(“vega”)在某些点可能太小,这使得该方法寻找并永远找不到解决方案。

使用二分法,从 0 和一些对于您的特定应用程序/目标市场来说非常高的波动性。 如果您愿意,您可以使用 1000%/年,如果您的典型波动率为 25%/年,找到解决方案只会慢一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM