Нахождение минимального максимума биржевой диаграммы

stock

Существуют ли какие-либо конкретные алгоритмы, которые позволят мне найти минимальные и максимальные точки на картинке выше?

У меня есть данные в текстовом формате, поэтому мне не нужно их искать в изображение. Проблема с акциями состоит в том, что у них так много локальных минимумов и максимумов, простые производные не работают.

Я думаю об использовании цифровых фильтров (домен z) и сглаживании графика, но у меня все еще осталось слишком много локализованные минимумы и максимумы.

Я также пытался использовать скользящее среднее, чтобы сгладить график, но опять же у меня слишком много максимумов и минимумов.

РЕДАКТИРОВАТЬ:

Я прочитал некоторые комментарии и просто случайно не обвел некоторые минимумы и максимумы.

Думаю, я придумал алгоритм, который может работать.Сначала найдите точки минимума и максимума (максимум дня и минимум дня). Затем нарисуйте три линии: от открытия до максимума или минимума, в зависимости от того, что наступит раньше, затем линию от минимума до максимума или от максимума до минимума и, наконец, до закрытия. Затем в каждой из этих трех областей найдите точку, которая наиболее удалена от линии, как мой максимум и минимум, и затем повторите цикл.

22
задан JoshVarty 21 November 2012 в 21:22
поделиться

1 ответ

Этот код Python обнаруживает локальные экстремумы в диапазоне 5. df должен содержать столбцы OHLC

df['H_5'], df['L_5'] =  df['H'].shift(-5), df['L'].shift(-5)
df['MAXH5'] = df['H'].rolling(window=5).max()
df['MINL5'] = df['L'].rolling(window=5).min()
df['MAXH_5'] = df['H_5'].rolling(window=5).max()
df['MINL_5'] = df['L_5'].rolling(window=5).min()
df.eval(" maximum5 = (MAXH5==H) & (MAXH_5==H)   ")
df.eval(" minimum5 = (MINL5==L) & (MINL_5==L)   ")
df.eval(" is_extremum_range5 = maximum5 | minimum5  ")

, результат находится в столбце is_extremum_range5 = {Верен | Ложь}

0
ответ дан 29 November 2019 в 05:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: