Я хочу найти максимумы и минимумы колебаний в данных фондового рынка. Я хочу иметь возможность добавлять каждую точку в столбец. Пример.) Создайте столбец для значений isHigh и isLow, который совпадает со столбцом цены закрытия. Таким образом, каждый день, если цена не является максимумом или минимумом колебания, она будет возвращать False в столбце isHigh/isLow. Если это колебания максимума или минимума, он вернет True.
Мне удалось найти максимумы/минимумы или точки разворота в данных фондового рынка, но все, что они возвращают, — это количество точек разворота или количество каждой точки.
У меня возникли проблемы с извлечением фактических баллов по отношению к цене.
Я использовал numpy и scipy argrelextrema.
```
import matplotlib
from scipy import signal
import numpy as np
import matplotlib.pyplot as plt
#Generate random data.
data_x = df['close']
data_y = df['close']
#Find peaks(max).
peak_indexes = signal.argrelextrema(data_y.to_numpy(), np.greater)
peak_indexes = peak_indexes[0]
#Find valleys(min).
valley_indexes = signal.argrelextrema(data_y.to_numpy(), np.less)
valley_indexes = valley_indexes[0]
**peak_indexes and valley_indexes only returns a numbered list of the points in numerical order.**
---
и я пробовал.
close = df['Adj Close']
def turningpoints(close):
dx = np.diff(close)
return np.sum(dx[1:] * dx[:-1] < 0)```
Это возвращает число 646, которое представляет собой общее количество пиков и спадов.
Любая помощь приветствуется, спасибо