Определение периодов ожидания во временном ряду, данные о запасах

#python #pandas #dataframe #data-analysis #stock

#python #pandas #фрейм данных #анализ данных #запас

Вопрос:

Как определить (медвежьи) периоды во временном ряду, когда снижение цен превышает определенный порог, в течение определенного промежутка времени, а время передачи данных не является периодическим?

Например, идентифицированные (медвежьи) периоды должны снизиться в цене на 3 процента или более в течение 2 часов.

 import yfinance as yf
import pandas as pd
from datetime import datetime
import random

def random_times(stime, etime, n):
    frmt = '%Y-%m-%d %H:%M:%S'
    stime = datetime.strptime(stime, frmt)
    etime = datetime.strptime(etime, frmt)
    td = etime - stime
    return [random.random() * td   stime for _ in range(n)]

# Getting historical, daily ohlc data from yfinance
msft = yf.Ticker("MSFT")
hist = msft.history(period="max")

# Generating random datetimes for rows in yfinance data
datetimes = random_times('2020-01-01 00:00:00','2021-01-30 00:00:00',len(hist.index))
datetimes = pd.to_datetime(datetimes)
datetimes = datetimes.sort_values()

# Dataframe with random datetimes and real MSTF close prices
df = pd.DataFrame({ 'time': datetimes,
                    'close': hist['Close']})
df = df.set_index('time')

df.plot(figsize=(50,30))
 

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

Комментарии:

1. Анализ данных о запасах с помощью Python может вам помочь. Там есть раздел об обнаружении медвежьих тенденций.

2. Спасибо @TrentonMcKinney! Читая статью по вашей ссылке, я нашел информацию о том, как определять медвежьи периоды только на основе скользящих средних, не принимая во внимание степень снижения цен и временные ограничения. Однако было много другой полезной информации, так что еще раз большое вам спасибо 🙂