В фрейме данных Pandas, как «определить» тренд/фактор гипотезы о цене акций, но с совершенно разными ценовыми диапазонами?

#python #pandas #finance #stock #quantitative-finance

Вопрос:

просто заранее говорю, что это, вероятно, математический вопрос применяя его в Панд Python, заранее приношу извинения, если я спрашиваю не в том месте.

Я изучаю движение цен на акции, каждая из которых имеет разный ценовой диапазон. Три примера биржевых тикеров и их ценовых движений за последнее время.

КАРВ: от 2,75 до 9,25 долларов

SGOC: от $ 2,39 до $18,8

СНЕГ: от $ 251,00 до $272,00

Есть индикатор, в котором я пытаюсь найти период минимального движения, например, период в белом квадрате ниже.

введите описание изображения здесь

Моя гипотеза состоит в том, что когда движение цены низкое и когда эти затененные зеленые/коричневые области «тонкие», это период «консолидации». Затененные области образованы двумя линиями, называемыми spanA и spanB. Сначала я беру вертикальное расстояние между spanA и spanB, затем делю расстояние на spanB, используя последнее в качестве «якоря».

Эта зелено-коричневая область обозначена как «кумо», часть индикатора ишимоку. Как ни хитро здесь, эти spanA и spanB отображаются на графиках на 26 «периодов» в будущее. Поэтому, чтобы получить цифры spanA spanB для каждой ценовой свечи, отображаемой на графиках, в файле Excel ниже, вам нужно взять 26 строк за ценой закрытия текущей строки. Например, цифры spanA и spanB цены закрытия строки 127 находятся в строке 100. Формула для получения «толщины кумо» и % в python выглядит следующим образом:

 def kumothickness(df):
    df.loc[:, 'kumothickness'] = abs(df.span_a.shift(26) - df.span_b.shift(26))
    df.loc[:, 'kumothick%'] = abs(df.span_a.shift(26) - df.span_b.shift(26))/df.span_b.shift(26)
    return df
 

Моя проблема в том, что, когда формула применяется к другим акциям с разными ценовыми диапазонами, то, что считается подходящим ценовым диапазоном, скажем, для CARV, совершенно не подходит для SGOC или SNOW.

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

enter image description here

However, I found the % range to for SGOC and SNOW to be 7% and 0.15% respectively.

Is there a way to compare the same variable (price in this case) but for different ranges?

Charts and corresponding tables below, followed by the EXCEL file of the dataset: SGOC enter image description here

enter image description here

SNOW enter image description here

введите описание изображения здесь

Файл Excel: https://1drv.ms/x/s!Aj99irJinMf5g41cs1341uhAEVPTog?e=NEFoWF