2
我正在尝试完成此代码,但我一直收到未知错误消息。我不明白我做错了什么。对不起,我是python新手!Python - 二项选项定价码
我会感谢任何帮助!
import math
def nCr(n,r):
f = math.factorial
return f(n)/f(r)/f(n-r)
class Option(object):
def __init__(self,s0,u,d,r,t,strike):
self.s0=s0
self.u=u
self.d=d
self.r=r
self.t=t
self.strike=strike
def price(self):
q = (self.r - self.d)/(self.u - self.d)
prc = 0
temp_stock = 0
temp_payout = 0
for x in range(1,self.t+1):
temp_stock = self.strike*(self.u**(4-x))*(self.d**(x-1))
temp_payout = max(temp_stock-self.strike,0)
prc += nCr(self.t,x-1)*(q**(4-x))*((1-q)**(x-1))*temp_payout
prc = prc/(self.r**self.t)
return prc
newOption = Option(100,1.07,0.93458,1.01,3,100)
print newOption.price()
你可以显示你正在得到确切的错误信息? – munk 2013-02-26 22:06:23
你的意思是'IndentationError'或TypeError:^:'float'和'int''不支持的操作数类型吗? – Bakuriu 2013-02-26 22:07:59
发现错误,在def(价格)块之前有一个额外的空间,我现在会插入正确的代码 – user2113095 2013-02-26 22:09:41