下面的代码计算从 $100 开始的 Compounding
值和百分比收益 gains
。下面的代码从一开始,整个增益数组 [20,3,4,55,6.5,-10,20,-60,5]
导致 96.25
结束,然后去掉第一个索引并重新计算复合值 [3,5]
导致 { {1}}。它会这样做直到增益数组 80.20
的末尾。我想编写一个代码来计算最大回撤,因为它正在计算 [5]
。这将是 f
f
的第一次迭代的复合结果,如果它低于初始资本 [120.,123.6,128.544,199.243,212.194008 190.9746072,229.16952864,91.66781146,96.25120203]
值,我想记录一个值。因此,第一次迭代中的最小值为 Amount
,因此这将是输出,而在第二次迭代中,它将是 91.67
。由于在最后一次迭代中有 76.37
导致 [5]
的复合输出,因此没有低于 100 的值,因此它是 105
作为输出。我如何才能在下面的代码中实现这一点并获得预期的输出?
None
预期输出:
import numpy as np
Amount = 100
def moneyrisk(array):
f = lambda array: Amount*np.cumprod(array/100 + 1,1)
rep = array[None].repeat(len(array),0)
rep_t = np.triu(rep,k=0)
final = f(rep_t)[:,-1]
gains= np.array([20,5])