Выявление незначительных колебаний с помощью крупных колебаний - Графики ценPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Выявление незначительных колебаний с помощью крупных колебаний - Графики цен

Сообщение Anonymous »


Я разрабатываю программу анализа акций на Python

Одна из фундаментальных вещей, которые мне нужно, — это распознавать колебания цен (данные открытия, максимума, минимума и закрытия)

Ценовые данные по своей природе фрактальны: более мелкие структуры находятся внутри более крупных структур.


Изображение


В моем случае я ищу небольшие колебания внутри больших колебаний. Т.е. незначительные колебания внутри крупных колебаний. На приведенном выше примере диаграммы показана моя цель.

Несколько определений на всякий случай. Каждые качели состоят из двух ног/частей – импульсной и реактивной

Импульсный этап будет по направлению движения рынка

Нога реакции направлена ​​против направления импульса

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


Изображение



Изображение


Следующее важное определение — это понимание максимумов и минимумов. Новый максимум подтверждает новый минимум, а новый минимум подтверждает новый максимум. Это иллюстрируется приведенной ниже моделью


Изображение


Ниже показано, как я подошел к этому вопросу в Python

импортировать numpy как np из scipy.signal импортировать argrelextrema защита get_pivots (цена: np.ndarray): максимумы = argrelextrema(цена, np.больше) минимумы = argrelextrema(цена, np.less) return np.concatenate((цена[максимум], цена[минимум])) Для простоты я буду передавать в приведенную выше функцию сплющенный одномерный массив numpy. argrelextrema помогает определить, где находятся опорные точки. Т.е. определяет, где разворачивается цена.

Мне интересно, как мне найти вложение опорных точек для формирования мелких и крупных колебаний.

Я хочу создать список, который примерно похож на эту структуру.

[значительное колебание [незначительное колебание1], [незначительное колебание2], [незначительное колебание3 [микро-качели1], [микро качели2] ] ] Пример данных, которые я создал:

data = [5,6,7,8,9,10,11,12,13,14,16,17,18,19,20, # AB(Основной) импульс 19,18,17,16,15,14,13,12,11,10,9,8, # BC (основная) реакция 9,10,11,12,13, 14,15, #C0C1 (Минорный) импульс 14,13,12,11,10, # C1C2 (минорная) реакция 11, 12, 13, 14, 15, 16, 17, 18, #C2C3 (Минорный) импульс 17, 16, 15, 15, 14, 13, 12, # C3C4 (Минорная) реакция 13, 14, 15, 16, 17, 18, 19, 20, 21, #C4C5 (Минорный) импульс 20, 19, 18, 17, 16, 15, 14, # C5C6 (Минорная) реакция 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 # CD (мажорный) импульс ] Я считаю, что какая-то рекурсивная реализация может помочь. Я не совсем знаком с реализацией с использованием этой парадигмы
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»