0

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

import mibian

price = [100,101,102,103,104]




c = 0.0
for i in price:
    #BS([underlyingPrice, strikePrice, interestRate, daysToExpiration], volatility=x, callPrice=y, putPrice=z)
    c[i] = mibian.BS([price, 100, 0,5], volatility=20)
print c.callPrice

这是错误代码:

self.underlyingPrice = float(args[0])
TypeError: float() argument must be a string or a number
4

2 回答 2

1

您设置c为浮动:

c = 0.0

然后在 for 循环中,您将其作为 dict 访问:

c[i] = mibian.BS([price, 100, 0, 5], volatility=20)

然后在 for 循环之后,您可以像访问对象一样访问它:

print c.callPrice

这段代码不可能工作。请更新您的问题以包括您想要完成的任务。

编辑:通过阅读您对我的回答的评论,这就是我认为您想要的。注意:c是由 . 返回的对象的字典mibian.BS

import mibian

price = [100,101,102,103,104]
c = {}
for i in price:
    c[i] = mibian.BS([price, 100, 0,5], volatility=20)
    print c[i].callPrice
于 2014-09-08T02:58:34.773 回答
0

它应该是

c[i] = mibian.BS([price[i], 100, 0,5], volatility=20)

于 2017-03-24T11:16:42.520 回答