我已经开始了关于熊选项的问题,但我不确定如何继续工厂功能部分:
a( 熊市期权有回报见图片
我必须编写一个返回收益值的 python 函数。
def bear(S,K):
if S <= K:
value = K
elif K < S and S < 2*K:
value = 2*K - S
else:
value = 0
return value
下一部分... b("还要编写一个工厂函数,它返回一个变量的熊期权收益函数,K固定。
我找不到工厂函数是什么的简单解释,我刚刚开始编码,我的笔记还没有提到工厂函数。任何指向网页,提示或解释的链接将不胜感激!
他们希望您做的是编写一个返回另一个函数的函数,该函数可用于计算固定值 K 的bear(S, K)
。
def bear_for_k(K):
return lambda S: bear(S, K)
演示:
>>> bear(21, 17)
13
>>> bear_for_k17 = bear_for_k(17)
>>> bear_for_k17(21)
13
>>> bear(112, 81)
50
>>> bear_for_k81 = bear_for_k(81)
>>> bear_for_k81(112)
50
编辑以回应评论:
请尝试以下文件:
def bear(S,K):
if S <= K:
value = K
elif K < S and S < 2*K:
value = 2*K - S
else:
value = 0
return value
def bear_for_k(K):
return lambda S: bear(S, K)
#test:
print(bear_for_k(17)(21))
这将在 Python2 和 Python3 中打印 13,没有错误。