我希望算出股票曲线的前5个跌幅。最大跌幅是最大负收益的度量。
请参阅 Start, End and Duration of Maximum Drawdown in Python
提款由drawdown = cummax - cummax.cummax()
现在,我将使用上面的代码(因为我不知道如何跟进帖子),所以我们得出一个系列xs
n = 1000
xs = np.random.randn(n).cumsum()
现在,我们可以计算出达到峰值的时间段
i = np.argmax(np.maximum.accumulate(xs) - xs) # end of the period
j = np.argmax(xs[:i]) # start of period
并绘制结果
plt.plot(xs)
plt.plot([i, j], [xs[i], xs[j]], 'o', color='Red', markersize=10)
这是链接中的代码。不是我自己的,但现在适合。
现在,此代码将仅向我们显示最大下拉菜单,但我想对前5个下拉菜单执行相同的操作;这可能吗?即我不仅要找到arg max,还要找到前5个argmax。
尽管此链接是相关的,但它仅专注于最大的单个亏损,而不是最大的五个亏损 Calculate max draw down with a vectorized solution in python
答案 0 :(得分:0)
在计算了当前时间序列的最大缩编以及开始日期和结束日期之后,删除此缩编周期并将两个端点连接到一个新的时间序列中。然后重新计算此新时间序列的缩编,依此类推。 请记住使用返回时间序列来确保两个端点可以连接。否则,如果您使用水平价格,则亏损将被错误计算。