Алгоритм поиска областей поддержки на графике свечей - PullRequest
1 голос
/ 12 мая 2019

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

enter image description here

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

[1555286400, 83.7, 84.63, 83.7, 84.27]

Я структурировал алгоритм для работы следующим образом:

1.) Список значений 6000+ TOHLC разделен на подсписки из 30 значений TOHLC (30 - число, которое я выбрал произвольно).Самая низкая низкая цена (LLP) затем получается из каждого из этих подсписков.Цель использования этого метода - найти области на графике, где цены падают.

2.) Следующий шаг - определить, насколько высоко цена выросла от каждого из этих минимумов.Для этого я беру следующие 30 значений свечей с минимума и определяю, какова максимальная цена (HHP).Тогда, если HHP / LLP> = 1.03, принимается низкая цена, в противном случае она отбрасывается.Опять же, 1.03 - это значение, которое я произвольно выбрал, проанализировав график акций вручную и определив, насколько цена в среднем выросла от этих минимумов.

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

Поэтому у меня есть вопрос: есть ли у кого-нибудь какие-либо улучшения, которые он может предложить для этого алгоритма, или указать на какие-либо недостатки в нем?

Спасибо!

1 Ответ

1 голос
/ 12 мая 2019

Возможно, я понял неправильно, однако из вашего объяснения кажется, что вы делаете вычисления в отдельных 30-ти подсписках и затем объединяете их вместе.

Итак, что, если LLP является 30-м элементом подсписка N, а HHP является 1-м элементом подсписка N + 1? Если вы приняли это во внимание, тогда все в порядке.

  1. Если вы не приняли это во внимание, я бы предложил использовать подход с подвижным окном при чтении этих данных. Итак, вы начинаете с 0-го элемента 6000+ TOHLC и начинаете с размера окна 30 и сдвигаете его 1 на 1. Таким образом, вы не пропустите ни одного значения.

  2. Некоторые из выбранных синих точек имеют более высокий провал, чем другие. Это почему? Я бы разделил их на другой классификатор. Если вы будете хранить их в объекте, сохраняйте также скорость погружения.

  3. Числа с плавающей точкой не предлагаются в финансах. Если возможно, я бы использовал другой подход и, возможно, классификатор, используя только целые числа. Это может не беспокоить вас или ваш проект на данный момент, но, несомненно, он начнет давать ложные результаты, когда цифры складываются в будущем.

...