我正在尝试获得不同股票价格的期权看涨期权价格。我一直收到一个错误,说明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
答案 0 :(得分:1)
您将c
设置为浮动:
c = 0.0
然后在for循环中,您将其作为词典访问:
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
答案 1 :(得分:0)
应该是
c[i] = mibian.BS([price[i], 100, 0,5], volatility=20)