0
4.081687878300656
1.6000410648454846
0.5024316862043037
0
所以我想知道这是否是一个特殊的子列表吗? sum(Callpayoff)
不能正常工作。任何帮助将不胜感激。
def Generate_asset_price(S,v,r,dt):
return (1 + r * dt + v * sqrt(dt) * np.random.normal(0,1))
def Call_Poff(S,T):
return max(stream[-1] - S,0)
# initial values
S = 100
v = 0.2
r = 0.05
T = 1
N = 2 # number of steps
dt = 0.00396825
simulations = 5
for x in range(simulations):
stream = [100]
Callpayoffs = []
t = 0
for n in range(N):
s = stream[t] * Generate_asset_price(S,v,r,dt)
stream.append(s)
t += 1
Callpayoff = Call_Poff(S,T)
print(Callpayoff)
plt.plot(stream)
答案 0 :(得分:0)
现在,您没有将值附加到列表中,只是在每次迭代中替换class MyClass {
String name;
@JsonProperty("final")
String someName;
}
的值并进行打印。在每次迭代时,它都打印在新行上,因此看起来像一个“垂直列表”。
您需要做的是使用Callpayoff
而不是Callpayoffs.append(Call_Poff(S,T))
。
现在,在Callpayoff = Call_Poff(S,T)
循环的每次迭代中,都会向Callpayoffs
添加一个新元素。
然后,您可以使用for
打印列表,或使用print(Callpayoffs)
打印总和
所有print(sum(Callpayoffs))
循环应如下所示:
for
输出:
for x in range(simulations):
stream = [100]
Callpayoffs = []
t = 0
for n in range(N):
s = stream[t] * Generate_asset_price(S,v,r,dt)
stream.append(s)
t += 1
Callpayoffs.append(Call_Poff(S,T))
print(Callpayoffs,"sum:",sum(Callpayoffs))