Я пытаюсь найти кумулятивную сумму пиковых протуберанцев в питоне только с левыми основаниями для ценового ряда.Другими словами, это сумма обратной просадки или восстановления .
Сначала я попробовал следующее:
from scipy.signal import find_peaks, peak_prominences
import matplotlib.pyplot as plt
x = np.linspace(0, 6 * np.pi, 1000)
x = np.sin(x) + 0.6 * np.sin(2.6 * x)
peaks, _ = find_peaks(x)
prominences = peak_prominences(x, peaks)[0]
prominences
contour_heights = x[peaks] - prominences
plt.plot(x)
plt.plot(peaks, x[peaks], "x")
plt.vlines(x=peaks, ymin=contour_heights, ymax=x[peaks])
plt.show()
Результат исюжет был хорошей отправной точкой.Но некоторые проблемы заключаются в следующем:
- пики сравниваются с левыми и правыми самыми низкими значениями.Мне нужно сравнение только с левым нижним значением. Пики
- следует сравнивать только с предыдущим желобом / низким значением, а не с самым низким значением в желобе
- , если пики сравниваются с предыдущим желобом /самое низкое значение в корыте, тогда промежуточное значение должно игнорироваться.
то, что я получил из кода в качестве отправной точки
мой требуемый результат
после того, как все будет подтверждено визуально, мне нужно рассчитать сумму всех выступов пика (расстояние от пика до впадины).Пожалуйста, помогите.